diff options
author | Maxime Curioni <maxime.curioni@gmail.com> | 2008-09-29 19:50:50 +0400 |
---|---|---|
committer | Maxime Curioni <maxime.curioni@gmail.com> | 2008-09-29 19:50:50 +0400 |
commit | 7e3a4c84e42b92c11e61a7102d29c4aa9b61291d (patch) | |
tree | 41f261cca99519121a7368ce0a521611b576f81a /source/blender/freestyle | |
parent | e71af35f58d63a1d2c3dabdc72f1742dcbb505bd (diff) |
soc-2008-mxcurioni: moved the style module and data files to Blender's standard directory (.blender/scripts/freestyle), cleaned up some useless files. As of this revision, the environment variable FREESTYLE_BLENDER_DIR is NOT needed anymore
Diffstat (limited to 'source/blender/freestyle')
111 files changed, 9 insertions, 6277 deletions
diff --git a/source/blender/freestyle/intern/app_blender/AppConfig.cpp b/source/blender/freestyle/intern/app_blender/AppConfig.cpp index c9d68963a21..049eccb54a0 100755 --- a/source/blender/freestyle/intern/app_blender/AppConfig.cpp +++ b/source/blender/freestyle/intern/app_blender/AppConfig.cpp @@ -22,20 +22,23 @@ #include <iostream> #include "../system/StringUtils.h" - using namespace std; +extern "C" { + #include "api2_2x/EXPP_interface.h" +} + namespace Config { Path* Path::_pInstance = 0; Path::Path() { // get the root directory //soc - setRootDir(getEnvVar("FREESTYLE_BLENDER_DIR")); + setRootDir( bpy_gethome(1) ); _pInstance = this; } void Path::setRootDir(const string& iRootDir) { - _ProjectDir = iRootDir; + _ProjectDir = iRootDir + string(DIR_SEP.c_str()) + "freestyle"; _ModelsPath = ""; _PatternsPath = _ProjectDir + string(DIR_SEP.c_str()) + "data" + string(DIR_SEP.c_str()) + "textures" + string(DIR_SEP.c_str()) @@ -43,9 +46,8 @@ void Path::setRootDir(const string& iRootDir) { _BrushesPath = _ProjectDir + string(DIR_SEP.c_str()) + "data" + string(DIR_SEP.c_str()) + "textures" + string(DIR_SEP.c_str()) + "brushes" + string(DIR_SEP.c_str()); - _PythonPath = _ProjectDir + string(DIR_SEP.c_str()) + "python" - + string(PATH_SEP.c_str()) + _ProjectDir + string(DIR_SEP.c_str()) - + "style_modules_blender" + string(DIR_SEP.c_str()) ; + _PythonPath = _ProjectDir + string(DIR_SEP.c_str()) ++ "style_modules" + string(DIR_SEP.c_str()) ; if (getenv("PYTHONPATH")) { _PythonPath += string(PATH_SEP.c_str()) + string(getenv("PYTHONPATH")); } diff --git a/source/blender/freestyle/intern/app_blender/api.cpp b/source/blender/freestyle/intern/app_blender/api.cpp index f1508971bc1..ae0c551e461 100644 --- a/source/blender/freestyle/intern/app_blender/api.cpp +++ b/source/blender/freestyle/intern/app_blender/api.cpp @@ -48,7 +48,7 @@ extern "C" { controller->Clear(); if( strlen(style_module) == 0 ){ - string path( pathconfig->getProjectDir() + Config::DIR_SEP + "style_modules_blender" + Config::DIR_SEP + "contour.py" ); + string path( pathconfig->getProjectDir() + Config::DIR_SEP + "style_modules" + Config::DIR_SEP + "contour.py" ); strcpy( style_module, path.c_str() ); } diff --git a/source/blender/freestyle/misc/Config.pri b/source/blender/freestyle/misc/Config.pri deleted file mode 100755 index 68763dba502..00000000000 --- a/source/blender/freestyle/misc/Config.pri +++ /dev/null @@ -1,176 +0,0 @@ -# This file should be viewed as a -*- mode: Makefile -*- - -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -# A p p l i c a t i o n & L i b r a r i e s # -# b u i l d c o n f i g u r a t i o n # -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - -# -# APPLICATION -# -####################################### - -APPNAME = Freestyle -APPVERSION_MAJ = 2 -APPVERSION_MID = 2 -APPVERSION_MIN = 0 -APPVERSION = $${APPVERSION_MAJ}.$${APPVERSION_MID}.$${APPVERSION_MIN} - -PYTHON_VERSION_MAJ = 2 -PYTHON_VERSION_MIN = 5 - -LIB3DS_VERSION_MAJ = 1 -LIB3DS_VERSION_MIN = 30 - -# -# CONFIG -# -####################################### - -CONFIG -= debug release ReleaseBuild Release build_pass precompile_header debug_and_release debug_and_release_target -CONFIG *= qt shared stl exceptions rtti thread -CONFIG *= release # debug or release -CONFIG *= warn_off # warn_off or warn_on -mac:CONFIG += x86 -#mac:CONFIG += ppc -#mac:CONFIG *= lib_bundle - -#mac:QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.4u.sdk -#message($$CONFIG) -#CONFIG *= static -#CONFIG *= profiling - - - -QT += opengl - -# -# LIBRARIES -# -####################################### - -debug{ - LIB_GEOMETRY = $${APPNAME}Geometry_d - LIB_IMAGE = $${APPNAME}Image_d - LIB_RENDERING = $${APPNAME}Rendering_d - LIB_SCENE_GRAPH = $${APPNAME}SceneGraph_d - LIB_SYSTEM = $${APPNAME}System_d - LIB_VIEW_MAP = $${APPNAME}ViewMap_d - LIB_STROKE = $${APPNAME}Stroke_d - LIB_WINGED_EDGE = $${APPNAME}WingedEdge_d -}else{ - LIB_GEOMETRY = $${APPNAME}Geometry - LIB_IMAGE = $${APPNAME}Image - LIB_RENDERING = $${APPNAME}Rendering - LIB_SCENE_GRAPH = $${APPNAME}SceneGraph - LIB_SYSTEM = $${APPNAME}System - LIB_VIEW_MAP = $${APPNAME}ViewMap - LIB_STROKE = $${APPNAME}Stroke - LIB_WINGED_EDGE = $${APPNAME}WingedEdge -} - -LIBVERSION = $${APPVERSION_MAJ}.$${APPVERSION_MID} - - -# -# FLAGS -# -####################################### - -win32:QMAKE_CXXFLAGS *= /GR /GX -win32:QMAKE_CFLAGS *= /GR /GX -irix-n32:QMAKE_CFLAGS *= -LANG:std -irix-n32:QMAKE_CXXFLAGS *= -LANG:std -linux-g++:QMAKE_CFLAGS *= -Wno-deprecated -linux-g++:QMAKE_CXXFLAGS *= -Wno-deprecated -cygwin-g++:QMAKE_CFLAGS *= -Wno-deprecated -cygwin-g++:QMAKE_CXXFLAGS *= -Wno-deprecated -mno-win32 -mac:QMAKE_CFLAGS *= -Wno-deprecated -mac:QMAKE_CXXFLAGS *= -Wno-deprecated - -linux-g++:QMAKE_CFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686 -linux-g++:QMAKE_CXXFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686 -cygwin-g++:QMAKE_CFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686 -cygwin-g++:QMAKE_CXXFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686 -mac:QMAKE_CFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686 -mac:QMAKE_CXXFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686 - -profiling { - linux-g++:QMAKE_CFLAGS_DEBUG = -pg - linux-g++:QMAKE_CXXFLAGS_DEBUG = -pg - linux-g++:QMAKE_LFLAGS_DEBUG = -pg - cygwin-g++:QMAKE_CFLAGS_DEBUG = -pg - cygwin-g++:QMAKE_CXXFLAGS_DEBUG = -pg - cygwin-g++:QMAKE_LFLAGS_DEBUG = -pg - mac:QMAKE_CFLAGS_DEBUG = -pg - mac:QMAKE_CXXFLAGS_DEBUG = -pg - mac:QMAKE_LFLAGS_DEBUG = -pg -} - -# -# DEFINES -# -####################################### - -win32:DEFINES *= WIN32 QT_DLL QT_THREAD_SUPPORT -linux-g++:DEFINES *= LINUX -cygwin-g++:DEFINES *= CYGWIN -irix-n32:DEFINES *= IRIX -mac:DEFINES *= MACOSX - -# -# BUILD DIRECTORIES (RELATIVE) -# -####################################### - -release { - win32 { - REL_OBJECTS_DIR = \\win32\\release\\obj - REL_DESTDIR = \\win32\\release - } - linux-g++ { - REL_OBJECTS_DIR = linux-g++/release/obj - REL_DESTDIR = linux-g++/release - } - cygwin-g++ { - REL_OBJECTS_DIR = cygwin-g++/release/obj - REL_DESTDIR = cygwin-g++/release - } - irix-n32 { - REL_OBJECTS_DIR = irix-n32/release/obj - REL_DESTDIR = irix-n32/release - } - mac { - REL_OBJECTS_DIR = macosx/release/obj - REL_DESTDIR = macosx/release - } -} -debug { - win32 { - REL_OBJECTS_DIR = \\win32\\debug\\obj - REL_DESTDIR = \\win32\\debug - } - linux-g++ { - REL_OBJECTS_DIR = linux-g++/debug/obj - REL_DESTDIR = linux-g++/debug - } - cygwin-g++ { - REL_OBJECTS_DIR = cygwin-g++/debug/obj - REL_DESTDIR = cygwin-g++/debug - } - irix-n32 { - REL_OBJECTS_DIR = irix-n32/debug/obj - REL_DESTDIR = irix-n32/debug - } - mac { - REL_OBJECTS_DIR = macosx/debug/obj - REL_DESTDIR = macosx/debug - } -} - -# -# INSTALL -# -####################################### - -#QMAKE_COPY_FILE = $${QMAKE_COPY} -P diff --git a/source/blender/freestyle/misc/Freestyle-vc7-debug.sln b/source/blender/freestyle/misc/Freestyle-vc7-debug.sln deleted file mode 100755 index 937f3f9faf9..00000000000 --- a/source/blender/freestyle/misc/Freestyle-vc7-debug.sln +++ /dev/null @@ -1,113 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle_d", "app\app_d.vcproj", "{0BC94A80-9E3E-40D8-B2CF-6594F96361C5}" - ProjectSection(ProjectDependencies) = postProject - {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361} - {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} - {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005} - {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE} - {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C} = {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C} - {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD} - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry_d", "geometry\geometry_d.vcproj", "{3E1C0A57-8206-402F-A12E-3B100F121DDE}" - ProjectSection(ProjectDependencies) = postProject - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage_d", "image\image_d.vcproj", "{4C44396A-8016-4360-8F5C-35CA6CC282BD}" - ProjectSection(ProjectDependencies) = postProject - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering_d", "rendering\rendering_d.vcproj", "{9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}" - ProjectSection(ProjectDependencies) = postProject - {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361} - {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE} - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph_d", "scene_graph\scene_graph_d.vcproj", "{858093EF-6B95-4D0F-AA0A-CF187C6F369F}" - ProjectSection(ProjectDependencies) = postProject - {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE} - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke_d", "stroke\stroke_d.vcproj", "{DFCED64E-AEFA-4D06-8609-DE23A69D0361}" - ProjectSection(ProjectDependencies) = postProject - {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005} - {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE} - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem_d", "system\system_d.vcproj", "{AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap_d", "view_map\view_map_d.vcproj", "{FA76B552-8A89-4A50-92F7-A77935515005}" - ProjectSection(ProjectDependencies) = postProject - {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} - {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE} - {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD} - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge_d", "winged_edge\winged_edge_d.vcproj", "{AF37DD50-8CD3-4339-AB32-C6F8F770CB30}" - ProjectSection(ProjectDependencies) = postProject - {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE} - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} - {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectDependencies) = postSolution - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.ActiveCfg = Debug|Win32 - {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.Build.0 = Debug|Win32 - {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.ActiveCfg = Debug|Win32 - {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.Build.0 = Debug|Win32 - {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.ActiveCfg = Debug|Win32 - {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.Build.0 = Debug|Win32 - {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.ActiveCfg = Debug|Win32 - {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.Build.0 = Debug|Win32 - {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.ActiveCfg = Debug|Win32 - {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.Build.0 = Debug|Win32 - {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.ActiveCfg = Debug|Win32 - {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.Build.0 = Debug|Win32 - {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.ActiveCfg = Debug|Win32 - {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.Build.0 = Debug|Win32 - {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.ActiveCfg = Debug|Win32 - {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.Build.0 = Debug|Win32 - {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.ActiveCfg = Debug|Win32 - {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.Build.0 = Debug|Win32 - {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.ActiveCfg = Debug|Win32 - {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.Build.0 = Debug|Win32 - {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.ActiveCfg = Debug|Win32 - {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.Build.0 = Debug|Win32 - {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.ActiveCfg = Debug|Win32 - {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.Build.0 = Debug|Win32 - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.ActiveCfg = Debug|Win32 - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.Build.0 = Debug|Win32 - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.ActiveCfg = Debug|Win32 - {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.Build.0 = Debug|Win32 - {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.ActiveCfg = Debug|Win32 - {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.Build.0 = Debug|Win32 - {FA76B552-8A89-4A50-92F7-A77935515005}.Release.ActiveCfg = Release|Win32 - {FA76B552-8A89-4A50-92F7-A77935515005}.Release.Build.0 = Release|Win32 - {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.ActiveCfg = Debug|Win32 - {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.Build.0 = Debug|Win32 - {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.ActiveCfg = Debug|Win32 - {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.Build.0 = Debug|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/source/blender/freestyle/misc/Freestyle-vc7-release.sln b/source/blender/freestyle/misc/Freestyle-vc7-release.sln deleted file mode 100755 index 74d5dc77f86..00000000000 --- a/source/blender/freestyle/misc/Freestyle-vc7-release.sln +++ /dev/null @@ -1,111 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle", "app\app.vcproj", "{0BC94A80-9E3E-40D8-B2CF-6594F96361C5}"
- ProjectSection(ProjectDependencies) = postProject
- {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361}
- {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}
- {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005}
- {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
- {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C} = {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}
- {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD}
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry", "geometry\geometry.vcproj", "{3E1C0A57-8206-402F-A12E-3B100F121DDE}"
- ProjectSection(ProjectDependencies) = postProject
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage", "image\image.vcproj", "{4C44396A-8016-4360-8F5C-35CA6CC282BD}"
- ProjectSection(ProjectDependencies) = postProject
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering", "rendering\rendering.vcproj", "{9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}"
- ProjectSection(ProjectDependencies) = postProject
- {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361}
- {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph", "scene_graph\scene_graph.vcproj", "{858093EF-6B95-4D0F-AA0A-CF187C6F369F}"
- ProjectSection(ProjectDependencies) = postProject
- {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke", "stroke\stroke.vcproj", "{DFCED64E-AEFA-4D06-8609-DE23A69D0361}"
- ProjectSection(ProjectDependencies) = postProject
- {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005}
- {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem", "system\system.vcproj", "{AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap", "view_map\view_map.vcproj", "{FA76B552-8A89-4A50-92F7-A77935515005}"
- ProjectSection(ProjectDependencies) = postProject
- {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}
- {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
- {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD}
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge", "winged_edge\winged_edge.vcproj", "{AF37DD50-8CD3-4339-AB32-C6F8F770CB30}"
- ProjectSection(ProjectDependencies) = postProject
- {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.ActiveCfg = Debug|Win32
- {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.Build.0 = Debug|Win32
- {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.ActiveCfg = Release|Win32
- {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.Build.0 = Release|Win32
- {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.ActiveCfg = Debug|Win32
- {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.Build.0 = Debug|Win32
- {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.ActiveCfg = Release|Win32
- {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.Build.0 = Release|Win32
- {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.ActiveCfg = Debug|Win32
- {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.Build.0 = Debug|Win32
- {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.ActiveCfg = Release|Win32
- {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.Build.0 = Release|Win32
- {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.ActiveCfg = Debug|Win32
- {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.Build.0 = Debug|Win32
- {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.ActiveCfg = Release|Win32
- {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.Build.0 = Release|Win32
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.ActiveCfg = Debug|Win32
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.Build.0 = Debug|Win32
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.ActiveCfg = Release|Win32
- {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.Build.0 = Release|Win32
- {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.ActiveCfg = Debug|Win32
- {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.Build.0 = Debug|Win32
- {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.ActiveCfg = Release|Win32
- {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.Build.0 = Release|Win32
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.ActiveCfg = Debug|Win32
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.Build.0 = Debug|Win32
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.ActiveCfg = Release|Win32
- {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.Build.0 = Release|Win32
- {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.ActiveCfg = Debug|Win32
- {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.Build.0 = Debug|Win32
- {FA76B552-8A89-4A50-92F7-A77935515005}.Release.ActiveCfg = Release|Win32
- {FA76B552-8A89-4A50-92F7-A77935515005}.Release.Build.0 = Release|Win32
- {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.ActiveCfg = Debug|Win32
- {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.Build.0 = Debug|Win32
- {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.ActiveCfg = Release|Win32
- {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
diff --git a/source/blender/freestyle/misc/Freestyle-vc8-debug.sln b/source/blender/freestyle/misc/Freestyle-vc8-debug.sln deleted file mode 100755 index 097ca30a174..00000000000 --- a/source/blender/freestyle/misc/Freestyle-vc8-debug.sln +++ /dev/null @@ -1,87 +0,0 @@ -
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem_d", "system\system_d.vcproj", "{AAAAA9BB-8C01-3BC3-9808-AB6717F08393}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry_d", "geometry\geometry_d.vcproj", "{5F60164C-8544-3259-A8CB-24636A092489}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage_d", "image\image_d.vcproj", "{28F6AC11-2A9B-3886-97DD-82FB353409CB}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph_d", "scene_graph\scene_graph_d.vcproj", "{C98C60D8-9836-30A5-BEA9-0D320E5AF308}"
- ProjectSection(ProjectDependencies) = postProject
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
- {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge_d", "winged_edge\winged_edge_d.vcproj", "{E46825D6-9581-3D8A-96FE-7C90BC188602}"
- ProjectSection(ProjectDependencies) = postProject
- {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap_d", "view_map\view_map_d.vcproj", "{6769BAB7-2894-3453-B07A-58C32D6646E3}"
- ProjectSection(ProjectDependencies) = postProject
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
- {E46825D6-9581-3D8A-96FE-7C90BC188602} = {E46825D6-9581-3D8A-96FE-7C90BC188602}
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
- {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke_d", "stroke\stroke_d.vcproj", "{EDA5F096-B8D0-336F-82DB-501B2F00C1CD}"
- ProjectSection(ProjectDependencies) = postProject
- {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
- {6769BAB7-2894-3453-B07A-58C32D6646E3} = {6769BAB7-2894-3453-B07A-58C32D6646E3}
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
- {E46825D6-9581-3D8A-96FE-7C90BC188602} = {E46825D6-9581-3D8A-96FE-7C90BC188602}
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering_d", "rendering\rendering_d.vcproj", "{D5EA771F-A1FF-3F68-A391-98EEEB407E78}"
- ProjectSection(ProjectDependencies) = postProject
- {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
- {EDA5F096-B8D0-336F-82DB-501B2F00C1CD} = {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle_d", "app\app_d.vcproj", "{606D6459-D5F6-3A09-8962-50E8551545AB}"
- ProjectSection(ProjectDependencies) = postProject
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
- {E46825D6-9581-3D8A-96FE-7C90BC188602} = {E46825D6-9581-3D8A-96FE-7C90BC188602}
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
- {6769BAB7-2894-3453-B07A-58C32D6646E3} = {6769BAB7-2894-3453-B07A-58C32D6646E3}
- {EDA5F096-B8D0-336F-82DB-501B2F00C1CD} = {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}
- {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
- {D5EA771F-A1FF-3F68-A391-98EEEB407E78} = {D5EA771F-A1FF-3F68-A391-98EEEB407E78}
- {28F6AC11-2A9B-3886-97DD-82FB353409CB} = {28F6AC11-2A9B-3886-97DD-82FB353409CB}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}.Debug|Win32.ActiveCfg = Debug|Win32
- {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}.Debug|Win32.Build.0 = Debug|Win32
- {5F60164C-8544-3259-A8CB-24636A092489}.Debug|Win32.ActiveCfg = Debug|Win32
- {5F60164C-8544-3259-A8CB-24636A092489}.Debug|Win32.Build.0 = Debug|Win32
- {28F6AC11-2A9B-3886-97DD-82FB353409CB}.Debug|Win32.ActiveCfg = Debug|Win32
- {28F6AC11-2A9B-3886-97DD-82FB353409CB}.Debug|Win32.Build.0 = Debug|Win32
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308}.Debug|Win32.ActiveCfg = Debug|Win32
- {C98C60D8-9836-30A5-BEA9-0D320E5AF308}.Debug|Win32.Build.0 = Debug|Win32
- {E46825D6-9581-3D8A-96FE-7C90BC188602}.Debug|Win32.ActiveCfg = Debug|Win32
- {E46825D6-9581-3D8A-96FE-7C90BC188602}.Debug|Win32.Build.0 = Debug|Win32
- {6769BAB7-2894-3453-B07A-58C32D6646E3}.Debug|Win32.ActiveCfg = Debug|Win32
- {6769BAB7-2894-3453-B07A-58C32D6646E3}.Debug|Win32.Build.0 = Debug|Win32
- {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}.Debug|Win32.ActiveCfg = Debug|Win32
- {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}.Debug|Win32.Build.0 = Debug|Win32
- {D5EA771F-A1FF-3F68-A391-98EEEB407E78}.Debug|Win32.ActiveCfg = Debug|Win32
- {D5EA771F-A1FF-3F68-A391-98EEEB407E78}.Debug|Win32.Build.0 = Debug|Win32
- {606D6459-D5F6-3A09-8962-50E8551545AB}.Debug|Win32.ActiveCfg = Debug|Win32
- {606D6459-D5F6-3A09-8962-50E8551545AB}.Debug|Win32.Build.0 = Debug|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/source/blender/freestyle/misc/Freestyle-vc8-release.sln b/source/blender/freestyle/misc/Freestyle-vc8-release.sln deleted file mode 100755 index 82b22ff0c3e..00000000000 --- a/source/blender/freestyle/misc/Freestyle-vc8-release.sln +++ /dev/null @@ -1,87 +0,0 @@ -
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle", "app\app.vcproj", "{B56F2464-158F-32C1-A9F7-EE85397706EC}"
- ProjectSection(ProjectDependencies) = postProject
- {555B73B2-B07B-3865-9D41-0FB69091E0C9} = {555B73B2-B07B-3865-9D41-0FB69091E0C9}
- {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759} = {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}
- {9A93A87D-09E4-3492-A68C-A7B1A38DE002} = {9A93A87D-09E4-3492-A68C-A7B1A38DE002}
- {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
- {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5} = {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}
- {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
- {0FDD8610-0785-3089-900D-53F786E9AC9B} = {0FDD8610-0785-3089-900D-53F786E9AC9B}
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry", "geometry\geometry.vcproj", "{1D57A40D-AE4B-3E40-A023-4F37C9D7446C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage", "image\image.vcproj", "{A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering", "rendering\rendering.vcproj", "{0FDD8610-0785-3089-900D-53F786E9AC9B}"
- ProjectSection(ProjectDependencies) = postProject
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
- {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
- {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
- {9A93A87D-09E4-3492-A68C-A7B1A38DE002} = {9A93A87D-09E4-3492-A68C-A7B1A38DE002}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph", "scene_graph\scene_graph.vcproj", "{35891119-E049-35BB-AB8E-8536817F5CEE}"
- ProjectSection(ProjectDependencies) = postProject
- {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke", "stroke\stroke.vcproj", "{9A93A87D-09E4-3492-A68C-A7B1A38DE002}"
- ProjectSection(ProjectDependencies) = postProject
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
- {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
- {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
- {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759} = {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}
- {555B73B2-B07B-3865-9D41-0FB69091E0C9} = {555B73B2-B07B-3865-9D41-0FB69091E0C9}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem", "system\system.vcproj", "{3804962B-1D5B-382E-B69E-96FFB2372A46}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap", "view_map\view_map.vcproj", "{F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}"
- ProjectSection(ProjectDependencies) = postProject
- {555B73B2-B07B-3865-9D41-0FB69091E0C9} = {555B73B2-B07B-3865-9D41-0FB69091E0C9}
- {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
- {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge", "winged_edge\winged_edge.vcproj", "{555B73B2-B07B-3865-9D41-0FB69091E0C9}"
- ProjectSection(ProjectDependencies) = postProject
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
- {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
- {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B56F2464-158F-32C1-A9F7-EE85397706EC}.Release|Win32.ActiveCfg = Release|Win32
- {B56F2464-158F-32C1-A9F7-EE85397706EC}.Release|Win32.Build.0 = Release|Win32
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}.Release|Win32.ActiveCfg = Release|Win32
- {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}.Release|Win32.Build.0 = Release|Win32
- {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}.Release|Win32.ActiveCfg = Release|Win32
- {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}.Release|Win32.Build.0 = Release|Win32
- {0FDD8610-0785-3089-900D-53F786E9AC9B}.Release|Win32.ActiveCfg = Release|Win32
- {0FDD8610-0785-3089-900D-53F786E9AC9B}.Release|Win32.Build.0 = Release|Win32
- {35891119-E049-35BB-AB8E-8536817F5CEE}.Release|Win32.ActiveCfg = Release|Win32
- {35891119-E049-35BB-AB8E-8536817F5CEE}.Release|Win32.Build.0 = Release|Win32
- {9A93A87D-09E4-3492-A68C-A7B1A38DE002}.Release|Win32.ActiveCfg = Release|Win32
- {9A93A87D-09E4-3492-A68C-A7B1A38DE002}.Release|Win32.Build.0 = Release|Win32
- {3804962B-1D5B-382E-B69E-96FFB2372A46}.Release|Win32.ActiveCfg = Release|Win32
- {3804962B-1D5B-382E-B69E-96FFB2372A46}.Release|Win32.Build.0 = Release|Win32
- {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}.Release|Win32.ActiveCfg = Release|Win32
- {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}.Release|Win32.Build.0 = Release|Win32
- {555B73B2-B07B-3865-9D41-0FB69091E0C9}.Release|Win32.ActiveCfg = Release|Win32
- {555B73B2-B07B-3865-9D41-0FB69091E0C9}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/source/blender/freestyle/misc/Makefile.pro b/source/blender/freestyle/misc/Makefile.pro deleted file mode 100755 index 0e64bb342c3..00000000000 --- a/source/blender/freestyle/misc/Makefile.pro +++ /dev/null @@ -1,18 +0,0 @@ -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -# W A R N I N G ! ! ! # -# a u t h o r i z e d p e r s o n a l o n l y # -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - -TEMPLATE = subdirs -SUBDIRS = system \ - image \ - geometry \ - scene_graph \ - winged_edge \ - view_map \ - stroke \ - rendering \ -# swig \ - app - - diff --git a/source/blender/freestyle/misc/build_bundle.macosx.py b/source/blender/freestyle/misc/build_bundle.macosx.py deleted file mode 100755 index e97153f269c..00000000000 --- a/source/blender/freestyle/misc/build_bundle.macosx.py +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/python - -import os,sys,string - -install_dependencies=["GLUT",\ - "QtCore", "QtGui", "QtXml", \ - "libQGLViewer", "FreestyleSystem", "FreestyleRendering",\ - "FreestyleImage","FreestyleGeometry", "FreestyleSceneGraph", "FreestyleWingedEdge",\ - "FreestyleViewMap", "FreestyleStroke"] - -if not("FREESTYLE_DIR" in os.environ): - print "FREESTYLE_DIR must be set to your Freestyle directory" - sys.exit() - -src_dir_path=os.environ['FREESTYLE_DIR'] -dest_dir_path=os.path.join(os.environ['FREESTYLE_DIR'], "freestyle.2.0.0-macosx-x86") -bundle_name="Freestyle.app" -bundle_path=os.path.join(dest_dir_path,bundle_name) -frameworks_path=os.path.join(bundle_path,"Contents/Frameworks") -exe_path=os.path.join(bundle_path, "Contents/MacOS") -original_lib_path=os.path.join(src_dir_path,"build/macosx/release/lib") -original_exe_path=os.path.join(src_dir_path,"build/macosx/release",bundle_name,"Contents/MacOS") - - - -# Builds a dictionary of dependencies for -# a given binary -# The table format is: -# "dependency name" "dependency path" -def buildDependenciesTable(binary_file, dep_table): - cmd="otool -L %s" % binary_file - #print cmd - #otool_output = os.system(cmd) - otool_output = os.popen(cmd).read().split('\n') - for dep_text in otool_output: - if (dep_text.count(":") == 0): - dep = dep_text.split(' ')[0].lstrip() - dep_base_name=os.path.basename(dep) - dep_table[dep_base_name] = dep - - -def fixPaths(dep_table): - for k,v in dep_table.items(): - if(k.count("Freestyle")): - dep_table[k] = os.path.join(src_dir_path, "build/macosx/release/lib",v) - if(k.count("QGLViewer")): - dep_table[k] = os.path.join("/usr/lib", v) - -def extractFrameworkBaseDir(framework_lib): - parts=framework_lib.split("/") - head="/" - tail="" - in_head=True - for p in parts: - if(in_head == True): - head=os.path.join(head,p) - else: - tail=os.path.join(tail,p) - if(p.count(".framework") != 0): - in_head=False - return (head,tail) - -def installDependencies(dep_table, install_dependencies, new_dep_table): - for k,v in dep_table.items(): - for d in install_dependencies: - if(k.count(d)!=0): - framework_dir_path=v - cp_option="" - head="" - tail="" - if(v.count("framework")): - (head,tail) = extractFrameworkBaseDir(v) - framework_dir_path=head - cp_option="-R" - lib_name=os.path.split(framework_dir_path)[1] - target=os.path.join(frameworks_path,lib_name) - # update new table - if(tail != ""): - new_dep_table[k] = os.path.join("@executable_path/../Frameworks",lib_name,tail) - else: - new_dep_table[k] = os.path.join("@executable_path/../Frameworks",lib_name) - if(os.path.exists(target) != True): - cmd = "cp %s %s %s" % (cp_option, framework_dir_path,frameworks_path) - print "Installing dependency:",lib_name - os.system(cmd) - -def updatePathsToDependencies(binary_file, install_dependencies, dep_table, new_dep_table): - # executable: - f_dep_table={} - buildDependenciesTable(binary_file,f_dep_table) - for k,v in f_dep_table.items(): - # is k in install_dependencies? - for ld in install_dependencies: - if(k.count(ld) != 0): - #print new_dep_table - cmd="install_name_tool -change %s %s %s" % (v,new_dep_table[k], binary_file) - os.system(cmd) - # check - cmd="otool -L %s" % binary_file - os.system(cmd) - -def cleanDir(dir, to_delete): - os.chdir(dir) - #print os.getcwd() - for d in os.listdir("."): - #print d - if(d == "Headers"): - cmd="rm -rf Headers" - to_delete.append(os.path.join(dir,d)) - #os.system(cmd) - elif(d.count("debug") != 0): - cmd="rm -rf %s"%(d) - #print cmd - to_delete.append(os.path.join(dir,d)) - #os.system(cmd) - elif(os.path.isdir(d) == True): - #print d - cleanDir(os.path.join(dir,d), to_delete) - #else: - # print d - os.chdir(os.path.join(dir,"..")) - #print os.getcwd() - - -# build bundle structure -if( os.path.exists(dest_dir_path) != True): - print "Creating directory",dest_dir_path - os.mkdir(dest_dir_path) - -if(os.path.exists(bundle_path) != True): - print "Creating the bundle structure", bundle_path - cmd = "cp -R %s %s" % (os.path.join(src_dir_path, "build/macosx/release/",bundle_name), bundle_path) - os.system(cmd) - os.mkdir(os.path.join(bundle_path,"Contents/Frameworks")) - - -dep_table = {} -new_dep_table = {} -# Executable -for f in os.listdir(original_exe_path): - if(f[0] == '.'): - continue - exe_file_path=os.path.join(original_exe_path, f) - buildDependenciesTable(exe_file_path, dep_table) - -# Frameworks -for f in os.listdir(original_lib_path): - if (f.count("framework") == 0): - continue - f_name=f.split('.')[0] - fwk_path=os.path.join(original_lib_path, "%s.framework" % f_name,f_name) - buildDependenciesTable(fwk_path, dep_table) - -# Fix ad-hoc paths -fixPaths(dep_table) - -# install dependent libs -installDependencies(dep_table, install_dependencies, new_dep_table) - -# update paths to installed dependencies -for f in os.listdir(exe_path): - if(f[0] == '.'): - continue - updatePathsToDependencies(os.path.join(exe_path,f), install_dependencies, dep_table, new_dep_table) - -# Frameworks -for f in os.listdir(frameworks_path): - if (f.count("framework") == 0): - continue - f_name=f.split('.')[0] - fwk_path=os.path.join(frameworks_path, "%s.framework" % f_name,f_name) - updatePathsToDependencies(fwk_path, install_dependencies, dep_table, new_dep_table) - - -# Clean-up -# Remove debug libs -print "Cleaning..." -to_delete=[] -cleanDir(bundle_path, to_delete) -for f in to_delete: - cmd = "rm -rf %s"%f - print cmd - os.system(cmd) diff --git a/source/blender/freestyle/misc/libconfig.pri b/source/blender/freestyle/misc/libconfig.pri deleted file mode 100755 index 6fec8878694..00000000000 --- a/source/blender/freestyle/misc/libconfig.pri +++ /dev/null @@ -1,110 +0,0 @@ -# This file should be viewed as a -*- mode: Makefile -*- - -contains( CONFIG, 3ds1.20 ) { - message ("Using 3ds 1.2.0 module") - linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE/LINUX - linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -l3ds - cygwin-g++:INCLUDEPATH *= /usr/lib/lib3ds-1.2.0 - cygwin-g++:LIBS *= -L/usr/lib/lib3ds-1.2.0/lib3ds -l3ds - mac:INCLUDEPATH *= /usr/local/include - mac:LIBS *= -l3ds - mac:QMAKE_LIBDIR *= /usr/local/lib - win32: INCLUDEPATH *= C:\include\lib3ds\1.2.0 - win32: QMAKE_LIBDIR *= C:\lib\lib3ds\1.2.0 - win32:debug: LIBS *= lib3ds-120sd.lib - win32:release: LIBS *= lib3ds-120s.lib -} - -contains( CONFIG, 3ds1.30 ) { - message ("Using 3ds 1.3.0 module") - linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE/LINUX - linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -l3ds - cygwin-g++:INCLUDEPATH *= /usr/lib/lib3ds-1.3.0 - cygwin-g++:LIBS *= -L/usr/lib/lib3ds-1.3.0/lib3ds -l3ds - mac:INCLUDEPATH *= /usr/local/include - mac:LIBS *= -l3ds - mac:QMAKE_LIBDIR *= /usr/local/lib - win32: INCLUDEPATH *= C:\include\lib3ds\1.3.0 - win32: QMAKE_LIBDIR *= C:\lib\lib3ds\1.3.0 - win32:debug: LIBS *= lib3ds-1_3d.lib - win32:release: LIBS *= lib3ds-1_3.lib -} - -contains( CONFIG, qglviewer ) { - message ("Using QGLViewer module") - CONFIG *= qt thread opengl glut - linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE - linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -lQGLViewer - cygwin-g++:LIBS *= -lQGLViewer - win32: INCLUDEPATH *= $(HOME)\INCLUDE - win32: QMAKE_LIBDIR *= $(HOME)\LIB - win32: LIBS *= QGLViewer.lib -} - -contains( CONFIG, python2.3) { - message ("Using python 2.3 module") - linux-g++:INCLUDEPATH *= /usr/include/python2.3 - linux-g++:LIBS *= -lpthread -lm -lutil - linux-g++:LIBS *= -L/usr/local/lib/ -lpython2.3 -L$(HOME)/LIB/LINUX - win32: INCLUDEPATH *= C:\python23\include - win32: QMAKE_LIBDIR *= C:\python23\libs - win32: LIBS *= python23.lib -} - -contains( CONFIG, python2.4) { - message ("Using python 2.4 module") - linux-g++:INCLUDEPATH *= /usr/include/python2.4 - linux-g++:LIBS *= -lpthread -lm -lutil - linux-g++:LIBS *= -L/usr/local/lib/ -lpython2.4 -L$(HOME)/LIB/LINUX - cygwin-g++:INCLUDEPATH *= /usr/include/python2.4 - cygwin-g++:LIBS *= -lpthread -lm -lutil - cygwin-g++:LIBS *= -L/usr/lib/python2.4/config -lpython2.4 - win32: INCLUDEPATH *= C:\python24\include - win32: QMAKE_LIBDIR *= C:\python24\libs - win32: LIBS *= python24.lib -} - -contains( CONFIG, python2.5) { - message ("Using python 2.5 module") - linux-g++:INCLUDEPATH *= /usr/include/python2.5 - linux-g++:LIBS *= -lpthread -lm -lutil - linux-g++:LIBS *= -L/usr/local/lib/ -lpython2.5 -L$(HOME)/LIB/LINUX - mac: INCLUDEPATH *= /usr/include/python2.5 - mac: LIBS *= -L/usr/lib/python2.5/config -lpython2.5 - cygwin-g++:INCLUDEPATH *= /usr/include/python2.5 - cygwin-g++:LIBS *= -lpthread -lm -lutil - cygwin-g++:LIBS *= -L/usr/lib/python2.5/config -lpython2.5 - win32: INCLUDEPATH *= C:\python25\include - win32: QMAKE_LIBDIR *= C:\python25\libs - win32: LIBS *= python25.lib -} - - -contains( CONFIG, glut) { - message ("Using glut module") - linux-g++:LIBS *= -lglut -lXi - cygwin-g++:LIBS *= -lglut -lXi - mac: LIBS *= -framework Glut - win32:INCLUDEPATH *= C:\include - win32: QMAKE_LIBDIR *= C:\lib\glut - win32: LIBS *= glut32.lib -} - -contains( CONFIG, qglviewer2 ) { - message ("Using QGLViewer module") - CONFIG *= qt thread opengl glut - linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE - linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -lQGLViewer - mac: LIBS *= -lQGLViewer - cygwin-g++:LIBS *= -lQGLViewer2 - win32: INCLUDEPATH *= C:\include\QGLViewer\2.2.5 - win32{ - release{ - QMAKE_LIBDIR *= C:\lib\QGLViewer\release - } - debug{ - QMAKE_LIBDIR *= C:\lib\QGLViewer\debug - } - } - win32: LIBS *= QGLViewer2.lib -} diff --git a/source/blender/freestyle/misc/makedsp.vcnet.debug.bat b/source/blender/freestyle/misc/makedsp.vcnet.debug.bat deleted file mode 100755 index e19ca52b4f7..00000000000 --- a/source/blender/freestyle/misc/makedsp.vcnet.debug.bat +++ /dev/null @@ -1,25 +0,0 @@ -@echo off -for /D %%d in (*) do call :FOR2 %%d -rem cd .. -goto :EOF - -:FOR2 -set componentpath=%1 -set dirname=%~n1 -for %%p in (%componentpath%\*.pro) do if exist %%p call :DSP %%p - -goto :EOF - -:DSP -set drive=%~d1 -set filepath=%~p1 -cd %drive%%filepath% -rem echo %drive%%filepath% -set filename=%~n1 -echo creating %filename%_d.vcproj from %filename%.pro ... -if %filename% == app ( - qmake -t vcapp -win32 -o %filename%_d %filename%.pro -) else ( - qmake -t vclib -win32 -o %filename%_d %filename%.pro -) -cd.. diff --git a/source/blender/freestyle/misc/makedsp.vcnet.release.bat b/source/blender/freestyle/misc/makedsp.vcnet.release.bat deleted file mode 100755 index 3050a2fe4ea..00000000000 --- a/source/blender/freestyle/misc/makedsp.vcnet.release.bat +++ /dev/null @@ -1,25 +0,0 @@ -@echo off -for /D %%d in (*) do call :FOR2 %%d -rem cd .. -goto :EOF - -:FOR2 -set componentpath=%1 -set dirname=%~n1 -for %%p in (%componentpath%\*.pro) do if exist %%p call :DSP %%p - -goto :EOF - -:DSP -set drive=%~d1 -set filepath=%~p1 -cd %drive%%filepath% -rem echo %drive%%filepath% -set filename=%~n1 -echo creating %filename%.vcproj from %filename%.pro ... -if %filename% == app ( - qmake -t vcapp -win32 -o %filename% %filename%.pro -) else ( - qmake -t vclib -win32 -o %filename% %filename%.pro -) -cd.. diff --git a/source/blender/freestyle/style_modules_blender/ChainingIterators.py b/source/blender/freestyle/style_modules_blender/ChainingIterators.py deleted file mode 100755 index 30488c9ef30..00000000000 --- a/source/blender/freestyle/style_modules_blender/ChainingIterators.py +++ /dev/null @@ -1,739 +0,0 @@ -# -# Filename : ChainingIterators.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Chaining Iterators to be used with chaining operators -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * - -## the natural chaining iterator -## It follows the edges of same nature following the topology of -## objects with preseance on silhouettes, then borders, -## then suggestive contours, then everything else. It doesn't chain the same ViewEdge twice -## You can specify whether to stay in the selection or not. -class pyChainSilhouetteIterator(ChainingIterator): - def __init__(self, stayInSelection=1): - ChainingIterator.__init__(self, stayInSelection, 1,None,1) - def getExactTypeName(self): - return "pyChainSilhouetteIterator" - def init(self): - pass - def traverse(self, iter): - winner = None - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for i in range(len(natures)): - currentNature = self.getCurrentEdge().getNature() - if(natures[i] & currentNature): - count=0 - while(it.isEnd() == 0): - visitNext = 0 - oNature = it.getObject().getNature() - if(oNature & natures[i] != 0): - if(natures[i] != oNature): - for j in range(i): - if(natures[j] & oNature != 0): - visitNext = 1 - break - if(visitNext != 0): - break - count = count+1 - winner = it.getObject() - it.increment() - if(count != 1): - winner = None - break - return winner - -## the natural chaining iterator -## It follows the edges of same nature on the same -## objects with preseance on silhouettes, then borders, -## then suggestive contours, then everything else. It doesn't chain the same ViewEdge twice -## You can specify whether to stay in the selection or not. -## You can specify whether to chain iterate over edges that were -## already visited or not. -class pyChainSilhouetteGenericIterator(ChainingIterator): - def __init__(self, stayInSelection=1, stayInUnvisited=1): - ChainingIterator.__init__(self, stayInSelection, stayInUnvisited,None,1) - def getExactTypeName(self): - return "pyChainSilhouetteGenericIterator" - def init(self): - pass - def traverse(self, iter): - winner = None - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for i in range(len(natures)): - currentNature = self.getCurrentEdge().getNature() - if(natures[i] & currentNature): - count=0 - while(it.isEnd() == 0): - visitNext = 0 - oNature = it.getObject().getNature() - ve = it.getObject() - if(ve.getId() == self.getCurrentEdge().getId()): - it.increment() - continue - if(oNature & natures[i] != 0): - if(natures[i] != oNature): - for j in range(i): - if(natures[j] & oNature != 0): - visitNext = 1 - break - if(visitNext != 0): - break - count = count+1 - winner = ve - it.increment() - if(count != 1): - winner = None - break - return winner - -class pyExternalContourChainingIterator(ChainingIterator): - def __init__(self): - ChainingIterator.__init__(self, 0, 1,None,1) - self._isExternalContour = ExternalContourUP1D() - - def getExactTypeName(self): - return "pyExternalContourIterator" - - def init(self): - self._nEdges = 0 - self._isInSelection = 1 - - def checkViewEdge(self, ve, orientation): - if(orientation != 0): - vertex = ve.B() - else: - vertex = ve.A() - it = AdjacencyIterator(vertex,1,1) - while(it.isEnd() == 0): - ave = it.getObject() - if(self._isExternalContour(ave)): - return 1 - it.increment() - print "pyExternlContourChainingIterator : didn't find next edge" - return 0 - def traverse(self, iter): - winner = None - it = AdjacencyIterator(iter) - while(it.isEnd() == 0): - ve = it.getObject() - if(self._isExternalContour(ve)): - if (ve.getTimeStamp() == GetTimeStampCF()): - winner = ve - it.increment() - - self._nEdges = self._nEdges+1 - if(winner == None): - orient = 1 - it = AdjacencyIterator(iter) - while(it.isEnd() == 0): - ve = it.getObject() - if(it.isIncoming() != 0): - orient = 0 - good = self.checkViewEdge(ve,orient) - if(good != 0): - winner = ve - it.increment() - return winner - -## the natural chaining iterator -## with a sketchy multiple touch -class pySketchyChainSilhouetteIterator(ChainingIterator): - def __init__(self, nRounds=3,stayInSelection=1): - ChainingIterator.__init__(self, stayInSelection, 0,None,1) - self._timeStamp = GetTimeStampCF()+nRounds - self._nRounds = nRounds - def getExactTypeName(self): - return "pySketchyChainSilhouetteIterator" - def init(self): - self._timeStamp = GetTimeStampCF()+self._nRounds - def traverse(self, iter): - winner = None - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for i in range(len(natures)): - currentNature = self.getCurrentEdge().getNature() - if(natures[i] & currentNature): - count=0 - while(it.isEnd() == 0): - visitNext = 0 - oNature = it.getObject().getNature() - ve = it.getObject() - if(ve.getId() == self.getCurrentEdge().getId()): - it.increment() - continue - if(oNature & natures[i] != 0): - if(natures[i] != oNature): - for j in range(i): - if(natures[j] & oNature != 0): - visitNext = 1 - break - if(visitNext != 0): - break - count = count+1 - winner = ve - it.increment() - if(count != 1): - winner = None - break - if(winner == None): - winner = self.getCurrentEdge() - if(winner.getChainingTimeStamp() == self._timeStamp): - winner = None - return winner - - -# Chaining iterator designed for sketchy style. -# can chain several times the same ViewEdge -# in order to produce multiple strokes per ViewEdge. -class pySketchyChainingIterator(ChainingIterator): - def __init__(self, nRounds=3, stayInSelection=1): - ChainingIterator.__init__(self, stayInSelection, 0,None,1) - self._timeStamp = GetTimeStampCF()+nRounds - self._nRounds = nRounds - def getExactTypeName(self): - return "pySketchyChainingIterator" - - def init(self): - self._timeStamp = GetTimeStampCF()+self._nRounds - - def traverse(self, iter): - winner = None - it = AdjacencyIterator(iter) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == self.getCurrentEdge().getId()): - it.increment() - continue - winner = ve - it.increment() - if(winner == None): - winner = self.getCurrentEdge() - if(winner.getChainingTimeStamp() == self._timeStamp): - return None - return winner - - -## Chaining iterator that fills small occlusions -## percent -## The max length of the occluded part -## expressed in % of the total chain length -class pyFillOcclusionsRelativeChainingIterator(ChainingIterator): - def __init__(self, percent): - ChainingIterator.__init__(self, 0, 1,None,1) - self._length = 0 - self._percent = float(percent) - def getExactTypeName(self): - return "pyFillOcclusionsChainingIterator" - def init(self): - # each time we're evaluating a chain length - # we try to do it once. Thus we reinit - # the chain length here: - self._length = 0 - def traverse(self, iter): - winner = None - winnerOrientation = 0 - print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond() - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for nat in natures: - if(self.getCurrentEdge().getNature() & nat != 0): - count=0 - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getNature() & nat != 0): - count = count+1 - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - it.increment() - if(count != 1): - winner = None - break - if(winner != None): - # check whether this edge was part of the selection - if(winner.getTimeStamp() != GetTimeStampCF()): - #print "---", winner.getId().getFirst(), winner.getId().getSecond() - # if not, let's check whether it's short enough with - # respect to the chain made without staying in the selection - #------------------------------------------------------------ - # Did we compute the prospective chain length already ? - if(self._length == 0): - #if not, let's do it - _it = pyChainSilhouetteGenericIterator(0,0) - _it.setBegin(winner) - _it.setCurrentEdge(winner) - _it.setOrientation(winnerOrientation) - _it.init() - while(_it.isEnd() == 0): - ve = _it.getObject() - #print "--------", ve.getId().getFirst(), ve.getId().getSecond() - self._length = self._length + ve.getLength2D() - _it.increment() - if(_it.isBegin() != 0): - break; - _it.setBegin(winner) - _it.setCurrentEdge(winner) - _it.setOrientation(winnerOrientation) - if(_it.isBegin() == 0): - _it.decrement() - while ((_it.isEnd() == 0) and (_it.isBegin() == 0)): - ve = _it.getObject() - #print "--------", ve.getId().getFirst(), ve.getId().getSecond() - self._length = self._length + ve.getLength2D() - _it.decrement() - - # let's do the comparison: - # nw let's compute the length of this connex non selected part: - connexl = 0 - _cit = pyChainSilhouetteGenericIterator(0,0) - _cit.setBegin(winner) - _cit.setCurrentEdge(winner) - _cit.setOrientation(winnerOrientation) - _cit.init() - while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())): - ve = _cit.getObject() - #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond() - connexl = connexl + ve.getLength2D() - _cit.increment() - if(connexl > self._percent * self._length): - winner = None - return winner - -## Chaining iterator that fills small occlusions -## size -## The max length of the occluded part -## expressed in pixels -class pyFillOcclusionsAbsoluteChainingIterator(ChainingIterator): - def __init__(self, length): - ChainingIterator.__init__(self, 0, 1,None,1) - self._length = float(length) - def getExactTypeName(self): - return "pySmallFillOcclusionsChainingIterator" - def init(self): - pass - def traverse(self, iter): - winner = None - winnerOrientation = 0 - #print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond() - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for nat in natures: - if(self.getCurrentEdge().getNature() & nat != 0): - count=0 - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getNature() & nat != 0): - count = count+1 - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - it.increment() - if(count != 1): - winner = None - break - if(winner != None): - # check whether this edge was part of the selection - if(winner.getTimeStamp() != GetTimeStampCF()): - #print "---", winner.getId().getFirst(), winner.getId().getSecond() - # nw let's compute the length of this connex non selected part: - connexl = 0 - _cit = pyChainSilhouetteGenericIterator(0,0) - _cit.setBegin(winner) - _cit.setCurrentEdge(winner) - _cit.setOrientation(winnerOrientation) - _cit.init() - while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())): - ve = _cit.getObject() - #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond() - connexl = connexl + ve.getLength2D() - _cit.increment() - if(connexl > self._length): - winner = None - return winner - - -## Chaining iterator that fills small occlusions -## percent -## The max length of the occluded part -## expressed in % of the total chain length -class pyFillOcclusionsAbsoluteAndRelativeChainingIterator(ChainingIterator): - def __init__(self, percent, l): - ChainingIterator.__init__(self, 0, 1,None,1) - self._length = 0 - self._absLength = l - self._percent = float(percent) - def getExactTypeName(self): - return "pyFillOcclusionsChainingIterator" - def init(self): - # each time we're evaluating a chain length - # we try to do it once. Thus we reinit - # the chain length here: - self._length = 0 - def traverse(self, iter): - winner = None - winnerOrientation = 0 - print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond() - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for nat in natures: - if(self.getCurrentEdge().getNature() & nat != 0): - count=0 - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getNature() & nat != 0): - count = count+1 - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - it.increment() - if(count != 1): - winner = None - break - if(winner != None): - # check whether this edge was part of the selection - if(winner.getTimeStamp() != GetTimeStampCF()): - #print "---", winner.getId().getFirst(), winner.getId().getSecond() - # if not, let's check whether it's short enough with - # respect to the chain made without staying in the selection - #------------------------------------------------------------ - # Did we compute the prospective chain length already ? - if(self._length == 0): - #if not, let's do it - _it = pyChainSilhouetteGenericIterator(0,0) - _it.setBegin(winner) - _it.setCurrentEdge(winner) - _it.setOrientation(winnerOrientation) - _it.init() - while(_it.isEnd() == 0): - ve = _it.getObject() - #print "--------", ve.getId().getFirst(), ve.getId().getSecond() - self._length = self._length + ve.getLength2D() - _it.increment() - if(_it.isBegin() != 0): - break; - _it.setBegin(winner) - _it.setCurrentEdge(winner) - _it.setOrientation(winnerOrientation) - if(_it.isBegin() == 0): - _it.decrement() - while ((_it.isEnd() == 0) and (_it.isBegin() == 0)): - ve = _it.getObject() - #print "--------", ve.getId().getFirst(), ve.getId().getSecond() - self._length = self._length + ve.getLength2D() - _it.decrement() - - # let's do the comparison: - # nw let's compute the length of this connex non selected part: - connexl = 0 - _cit = pyChainSilhouetteGenericIterator(0,0) - _cit.setBegin(winner) - _cit.setCurrentEdge(winner) - _cit.setOrientation(winnerOrientation) - _cit.init() - while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())): - ve = _cit.getObject() - #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond() - connexl = connexl + ve.getLength2D() - _cit.increment() - if((connexl > self._percent * self._length) or (connexl > self._absLength)): - winner = None - return winner - -## Chaining iterator that fills small occlusions without caring about the -## actual selection -## percent -## The max length of the occluded part -## expressed in % of the total chain length -class pyFillQi0AbsoluteAndRelativeChainingIterator(ChainingIterator): - def __init__(self, percent, l): - ChainingIterator.__init__(self, 0, 1,None,1) - self._length = 0 - self._absLength = l - self._percent = float(percent) - def getExactTypeName(self): - return "pyFillOcclusionsChainingIterator" - def init(self): - # each time we're evaluating a chain length - # we try to do it once. Thus we reinit - # the chain length here: - self._length = 0 - def traverse(self, iter): - winner = None - winnerOrientation = 0 - print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond() - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getId() == mateVE.getId() ): - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for nat in natures: - if(self.getCurrentEdge().getNature() & nat != 0): - count=0 - while(it.isEnd() == 0): - ve = it.getObject() - if(ve.getNature() & nat != 0): - count = count+1 - winner = ve - if(it.isIncoming() == 0): - winnerOrientation = 1 - else: - winnerOrientation = 0 - it.increment() - if(count != 1): - winner = None - break - if(winner != None): - # check whether this edge was part of the selection - if(winner.qi() != 0): - #print "---", winner.getId().getFirst(), winner.getId().getSecond() - # if not, let's check whether it's short enough with - # respect to the chain made without staying in the selection - #------------------------------------------------------------ - # Did we compute the prospective chain length already ? - if(self._length == 0): - #if not, let's do it - _it = pyChainSilhouetteGenericIterator(0,0) - _it.setBegin(winner) - _it.setCurrentEdge(winner) - _it.setOrientation(winnerOrientation) - _it.init() - while(_it.isEnd() == 0): - ve = _it.getObject() - #print "--------", ve.getId().getFirst(), ve.getId().getSecond() - self._length = self._length + ve.getLength2D() - _it.increment() - if(_it.isBegin() != 0): - break; - _it.setBegin(winner) - _it.setCurrentEdge(winner) - _it.setOrientation(winnerOrientation) - if(_it.isBegin() == 0): - _it.decrement() - while ((_it.isEnd() == 0) and (_it.isBegin() == 0)): - ve = _it.getObject() - #print "--------", ve.getId().getFirst(), ve.getId().getSecond() - self._length = self._length + ve.getLength2D() - _it.decrement() - - # let's do the comparison: - # nw let's compute the length of this connex non selected part: - connexl = 0 - _cit = pyChainSilhouetteGenericIterator(0,0) - _cit.setBegin(winner) - _cit.setCurrentEdge(winner) - _cit.setOrientation(winnerOrientation) - _cit.init() - while((_cit.isEnd() == 0) and (_cit.getObject().qi() != 0)): - ve = _cit.getObject() - #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond() - connexl = connexl + ve.getLength2D() - _cit.increment() - if((connexl > self._percent * self._length) or (connexl > self._absLength)): - winner = None - return winner - - -## the natural chaining iterator -## It follows the edges of same nature on the same -## objects with preseance on silhouettes, then borders, -## then suggestive contours, then everything else. It doesn't chain the same ViewEdge twice -## You can specify whether to stay in the selection or not. -class pyNoIdChainSilhouetteIterator(ChainingIterator): - def __init__(self, stayInSelection=1): - ChainingIterator.__init__(self, stayInSelection, 1,None,1) - def getExactTypeName(self): - return "pyChainSilhouetteIterator" - def init(self): - pass - def traverse(self, iter): - winner = None - it = AdjacencyIterator(iter) - nextVertex = self.getVertex() - if(nextVertex.getNature() & Nature.T_VERTEX != 0): - tvertex = nextVertex.castToTVertex() - mateVE = tvertex.mate(self.getCurrentEdge()) - while(it.isEnd() == 0): - ve = it.getObject() - feB = self.getCurrentEdge().fedgeB() - feA = ve.fedgeA() - vB = feB.vertexB() - vA = feA.vertexA() - if vA.getId().getFirst() == vB.getId().getFirst(): - winner = ve - break - feA = self.getCurrentEdge().fedgeA() - feB = ve.fedgeB() - vB = feB.vertexB() - vA = feA.vertexA() - if vA.getId().getFirst() == vB.getId().getFirst(): - winner = ve - break - feA = self.getCurrentEdge().fedgeB() - feB = ve.fedgeB() - vB = feB.vertexB() - vA = feA.vertexB() - if vA.getId().getFirst() == vB.getId().getFirst(): - winner = ve - break - feA = self.getCurrentEdge().fedgeA() - feB = ve.fedgeA() - vB = feB.vertexA() - vA = feA.vertexA() - if vA.getId().getFirst() == vB.getId().getFirst(): - winner = ve - break - it.increment() - else: - ## case of NonTVertex - natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE] - for i in range(len(natures)): - currentNature = self.getCurrentEdge().getNature() - if(natures[i] & currentNature): - count=0 - while(it.isEnd() == 0): - visitNext = 0 - oNature = it.getObject().getNature() - if(oNature & natures[i] != 0): - if(natures[i] != oNature): - for j in range(i): - if(natures[j] & oNature != 0): - visitNext = 1 - break - if(visitNext != 0): - break - count = count+1 - winner = it.getObject() - it.increment() - if(count != 1): - winner = None - break - return winner - diff --git a/source/blender/freestyle/style_modules_blender/Functions0D.py b/source/blender/freestyle/style_modules_blender/Functions0D.py deleted file mode 100755 index f5ff106c340..00000000000 --- a/source/blender/freestyle/style_modules_blender/Functions0D.py +++ /dev/null @@ -1,81 +0,0 @@ -from freestyle_init import * - - -class pyInverseCurvature2DAngleF0D(UnaryFunction0DDouble): - def getName(self): - return "InverseCurvature2DAngleF0D" - - def __call__(self, inter): - func = Curvature2DAngleF0D() - c = func(inter) - return (3.1415 - c) - -class pyCurvilinearLengthF0D(UnaryFunction0DDouble): - def getName(self): - return "CurvilinearLengthF0D" - - def __call__(self, inter): - i0d = inter.getObject() - s = i0d.getExactTypeName() - if (string.find(s, "CurvePoint") == -1): - print "CurvilinearLengthF0D: not implemented yet for %s" % (s) - return -1 - cp = castToCurvePoint(i0d) - return cp.t2d() - -## estimate anisotropy of density -class pyDensityAnisotropyF0D(UnaryFunction0DDouble): - def __init__(self,level): - UnaryFunction0DDouble.__init__(self) - self.IsoDensity = ReadCompleteViewMapPixelF0D(level) - self.d0Density = ReadSteerableViewMapPixelF0D(0, level) - self.d1Density = ReadSteerableViewMapPixelF0D(1, level) - self.d2Density = ReadSteerableViewMapPixelF0D(2, level) - self.d3Density = ReadSteerableViewMapPixelF0D(3, level) - def getName(self): - return "pyDensityAnisotropyF0D" - def __call__(self, inter): - c_iso = self.IsoDensity(inter) - c_0 = self.d0Density(inter) - c_1 = self.d1Density(inter) - c_2 = self.d2Density(inter) - c_3 = self.d3Density(inter) - cMax = max( max(c_0,c_1), max(c_2,c_3)) - cMin = min( min(c_0,c_1), min(c_2,c_3)) - if ( c_iso == 0 ): - v = 0 - else: - v = (cMax-cMin)/c_iso - return (v) - -## Returns the gradient vector for a pixel -## l -## the level at which one wants to compute the gradient -class pyViewMapGradientVectorF0D(UnaryFunction0DVec2f): - def __init__(self, l): - UnaryFunction0DVec2f.__init__(self) - self._l = l - self._step = pow(2,self._l) - def getName(self): - return "pyViewMapGradientVectorF0D" - def __call__(self, iter): - p = iter.getObject().getPoint2D() - gx = ReadCompleteViewMapPixelCF(self._l, int(p.x()+self._step), int(p.y()))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y())) - gy = ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()+self._step))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y())) - return Vec2f(gx, gy) - -class pyViewMapGradientNormF0D(UnaryFunction0DDouble): - def __init__(self, l): - UnaryFunction0DDouble.__init__(self) - self._l = l - self._step = pow(2,self._l) - def getName(self): - return "pyViewMapGradientNormF0D" - def __call__(self, iter): - p = iter.getObject().getPoint2D() - gx = ReadCompleteViewMapPixelCF(self._l, int(p.x()+self._step), int(p.y()))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y())) - gy = ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()+self._step))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y())) - grad = Vec2f(gx, gy) - return grad.norm() - - diff --git a/source/blender/freestyle/style_modules_blender/Functions1D.py b/source/blender/freestyle/style_modules_blender/Functions1D.py deleted file mode 100755 index 308486bc6a7..00000000000 --- a/source/blender/freestyle/style_modules_blender/Functions1D.py +++ /dev/null @@ -1,45 +0,0 @@ -from freestyle_init import * -from Functions0D import * -import string - -class pyGetInverseProjectedZF1D(UnaryFunction1DDouble): - def getName(self): - return "pyGetInverseProjectedZF1D" - - def __call__(self, inter): - func = GetProjectedZF1D() - z = func(inter) - return (1.0 - z) - -class pyGetSquareInverseProjectedZF1D(UnaryFunction1DDouble): - def getName(self): - return "pyGetInverseProjectedZF1D" - - def __call__(self, inter): - func = GetProjectedZF1D() - z = func(inter) - return (1.0 - z*z) - -class pyDensityAnisotropyF1D(UnaryFunction1DDouble): - def __init__(self,level, integrationType=IntegrationType.MEAN, sampling=2.0): - UnaryFunction1DDouble.__init__(self, integrationType) - self._func = pyDensityAnisotropyF0D(level) - self._integration = integrationType - self._sampling = sampling - def getName(self): - return "pyDensityAnisotropyF1D" - def __call__(self, inter): - v = integrateDouble(self._func, inter.pointsBegin(self._sampling), inter.pointsEnd(self._sampling), self._integration) - return v - -class pyViewMapGradientNormF1D(UnaryFunction1DDouble): - def __init__(self,l, integrationType, sampling=2.0): - UnaryFunction1DDouble.__init__(self, integrationType) - self._func = pyViewMapGradientNormF0D(l) - self._integration = integrationType - self._sampling = sampling - def getName(self): - return "pyViewMapGradientNormF1D" - def __call__(self, inter): - v = integrateDouble(self._func, inter.pointsBegin(self._sampling), inter.pointsEnd(self._sampling), self._integration) - return v diff --git a/source/blender/freestyle/style_modules_blender/PredicatesB1D.py b/source/blender/freestyle/style_modules_blender/PredicatesB1D.py deleted file mode 100755 index d4c1cace3fe..00000000000 --- a/source/blender/freestyle/style_modules_blender/PredicatesB1D.py +++ /dev/null @@ -1,70 +0,0 @@ -from freestyle_init import * -from Functions1D import * -from random import * - -class pyZBP1D(BinaryPredicate1D): - def getName(self): - return "pyZBP1D" - - def __call__(self, i1, i2): - func = GetZF1D() - return (func(i1) > func(i2)) - -class pyZDiscontinuityBP1D(BinaryPredicate1D): - def __init__(self, iType = IntegrationType.MEAN): - BinaryPredicate1D.__init__(self) - self._GetZDiscontinuity = ZDiscontinuityF1D(iType) - - def getName(self): - return "pyZDiscontinuityBP1D" - - def __call__(self, i1, i2): - return (self._GetZDiscontinuity(i1) > self._GetZDiscontinuity(i2)) - -class pyLengthBP1D(BinaryPredicate1D): - def getName(self): - return "LengthBP1D" - - def __call__(self, i1, i2): - return (i1.getLength2D() > i2.getLength2D()) - -class pySilhouetteFirstBP1D(BinaryPredicate1D): - def getName(self): - return "SilhouetteFirstBP1D" - - def __call__(self, inter1, inter2): - bpred = SameShapeIdBP1D() - if (bpred(inter1, inter2) != 1): - return 0 - if (inter1.getNature() & Nature.SILHOUETTE): - return (inter2.getNature() & Nature.SILHOUETTE) - return (inter1.getNature() == inter2.getNature()) - -class pyNatureBP1D(BinaryPredicate1D): - def getName(self): - return "NatureBP1D" - - def __call__(self, inter1, inter2): - return (inter1.getNature() & inter2.getNature()) - -class pyViewMapGradientNormBP1D(BinaryPredicate1D): - def __init__(self,l, sampling=2.0): - BinaryPredicate1D.__init__(self) - self._GetGradient = pyViewMapGradientNormF1D(l, IntegrationType.MEAN) - def getName(self): - return "pyViewMapGradientNormBP1D" - def __call__(self, i1,i2): - print "compare gradient" - return (self._GetGradient(i1) > self._GetGradient(i2)) - -class pyShuffleBP1D(BinaryPredicate1D): - def __init__(self): - BinaryPredicate1D.__init__(self) - seed(1) - def getName(self): - return "pyNearAndContourFirstBP1D" - - def __call__(self, inter1, inter2): - r1 = uniform(0,1) - r2 = uniform(0,1) - return (r1<r2) diff --git a/source/blender/freestyle/style_modules_blender/PredicatesU0D.py b/source/blender/freestyle/style_modules_blender/PredicatesU0D.py deleted file mode 100755 index 42cde5c222f..00000000000 --- a/source/blender/freestyle/style_modules_blender/PredicatesU0D.py +++ /dev/null @@ -1,103 +0,0 @@ -from freestyle_init import * -from Functions0D import * - -class pyHigherCurvature2DAngleUP0D(UnaryPredicate0D): - def __init__(self,a): - UnaryPredicate0D.__init__(self) - self._a = a - - def getName(self): - return "HigherCurvature2DAngleUP0D" - - def __call__(self, inter): - func = Curvature2DAngleF0D() - a = func(inter) - return ( a > self._a) - -class pyUEqualsUP0D(UnaryPredicate0D): - def __init__(self,u, w): - UnaryPredicate0D.__init__(self) - self._u = u - self._w = w - - def getName(self): - return "UEqualsUP0D" - - def __call__(self, inter): - func = pyCurvilinearLengthF0D() - u = func(inter) - return ( ( u > (self._u-self._w) ) and ( u < (self._u+self._w) ) ) - -class pyVertexNatureUP0D(UnaryPredicate0D): - def __init__(self,nature): - UnaryPredicate0D.__init__(self) - self._nature = nature - - def getName(self): - return "pyVertexNatureUP0D" - - def __call__(self, inter): - v = inter.getObject() - nat = v.getNature() - if(nat & self._nature): - return 1; - return 0 - -## check whether an Interface0DIterator -## is a TVertex and is the one that is -## hidden (inferred from the context) -class pyBackTVertexUP0D(UnaryPredicate0D): - def __init__(self): - UnaryPredicate0D.__init__(self) - self._getQI = QuantitativeInvisibilityF0D() - def getName(self): - return "pyBackTVertexUP0D" - def __call__(self, iter): - v = iter.getObject() - nat = v.getNature() - if(nat & Nature.T_VERTEX == 0): - return 0 - next = iter - if(next.isEnd()): - return 0 - if(self._getQI(next) != 0): - return 1 - return 0 - -class pyParameterUP0DGoodOne(UnaryPredicate0D): - def __init__(self,pmin,pmax): - UnaryPredicate0D.__init__(self) - self._m = pmin - self._M = pmax - #self.getCurvilinearAbscissa = GetCurvilinearAbscissaF0D() - - def getName(self): - return "pyCurvilinearAbscissaHigherThanUP0D" - - def __call__(self, inter): - #s = self.getCurvilinearAbscissa(inter) - u = inter.u() - #print u - return ((u>=self._m) and (u<=self._M)) - -class pyParameterUP0D(UnaryPredicate0D): - def __init__(self,pmin,pmax): - UnaryPredicate0D.__init__(self) - self._m = pmin - self._M = pmax - #self.getCurvilinearAbscissa = GetCurvilinearAbscissaF0D() - - def getName(self): - return "pyCurvilinearAbscissaHigherThanUP0D" - - def __call__(self, inter): - func = Curvature2DAngleF0D() - c = func(inter) - b1 = (c>0.1) - #s = self.getCurvilinearAbscissa(inter) - u = inter.u() - #print u - b = ((u>=self._m) and (u<=self._M)) - return b and b1 - - diff --git a/source/blender/freestyle/style_modules_blender/PredicatesU1D.py b/source/blender/freestyle/style_modules_blender/PredicatesU1D.py deleted file mode 100755 index 5d1b594a109..00000000000 --- a/source/blender/freestyle/style_modules_blender/PredicatesU1D.py +++ /dev/null @@ -1,381 +0,0 @@ -from freestyle_init import * -from Functions1D import * - -count = 0 -class pyNFirstUP1D(UnaryPredicate1D): - def __init__(self, n): - UnaryPredicate1D.__init__(self) - self.__n = n - def __call__(self, inter): - global count - count = count + 1 - if count <= self.__n: - return 1 - return 0 - -class pyHigherLengthUP1D(UnaryPredicate1D): - def __init__(self,l): - UnaryPredicate1D.__init__(self) - self._l = l - - def getName(self): - return "HigherLengthUP1D" - - def __call__(self, inter): - return (inter.getLength2D() > self._l) - -class pyNatureUP1D(UnaryPredicate1D): - def __init__(self,nature): - UnaryPredicate1D.__init__(self) - self._nature = nature - self._getNature = CurveNatureF1D() - - def getName(self): - return "pyNatureUP1D" - - def __call__(self, inter): - if(self._getNature(inter) & self._nature): - return 1 - return 0 - -class pyHigherNumberOfTurnsUP1D(UnaryPredicate1D): - def __init__(self,n,a): - UnaryPredicate1D.__init__(self) - self._n = n - self._a = a - - def getName(self): - return "HigherNumberOfTurnsUP1D" - - def __call__(self, inter): - count = 0 - func = Curvature2DAngleF0D() - it = inter.verticesBegin() - while(it.isEnd() == 0): - if(func(it) > self._a): - count = count+1 - if(count > self._n): - return 1 - it.increment() - return 0 - -class pyDensityUP1D(UnaryPredicate1D): - def __init__(self,wsize,threshold, integration = IntegrationType.MEAN, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._wsize = wsize - self._threshold = threshold - self._integration = integration - self._func = DensityF1D(self._wsize, self._integration, sampling) - - def getName(self): - return "pyDensityUP1D" - - def __call__(self, inter): - if(self._func(inter) < self._threshold): - return 1 - return 0 - -class pyLowSteerableViewMapDensityUP1D(UnaryPredicate1D): - def __init__(self,threshold, level,integration = IntegrationType.MEAN): - UnaryPredicate1D.__init__(self) - self._threshold = threshold - self._level = level - self._integration = integration - - def getName(self): - return "pyLowSteerableViewMapDensityUP1D" - - def __call__(self, inter): - func = GetSteerableViewMapDensityF1D(self._level, self._integration) - v = func(inter) - print v - if(v < self._threshold): - return 1 - return 0 - -class pyLowDirectionalViewMapDensityUP1D(UnaryPredicate1D): - def __init__(self,threshold, orientation, level,integration = IntegrationType.MEAN): - UnaryPredicate1D.__init__(self) - self._threshold = threshold - self._orientation = orientation - self._level = level - self._integration = integration - - def getName(self): - return "pyLowDirectionalViewMapDensityUP1D" - - def __call__(self, inter): - func = GetDirectionalViewMapDensityF1D(self._orientation, self._level, self._integration) - v = func(inter) - #print v - if(v < self._threshold): - return 1 - return 0 - -class pyHighSteerableViewMapDensityUP1D(UnaryPredicate1D): - def __init__(self,threshold, level,integration = IntegrationType.MEAN): - UnaryPredicate1D.__init__(self) - self._threshold = threshold - self._level = level - self._integration = integration - self._func = GetSteerableViewMapDensityF1D(self._level, self._integration) - def getName(self): - return "pyHighSteerableViewMapDensityUP1D" - - def __call__(self, inter): - - v = self._func(inter) - if(v > self._threshold): - return 1 - return 0 - -class pyHighDirectionalViewMapDensityUP1D(UnaryPredicate1D): - def __init__(self,threshold, orientation, level,integration = IntegrationType.MEAN, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._threshold = threshold - self._orientation = orientation - self._level = level - self._integration = integration - self._sampling = sampling - def getName(self): - return "pyLowDirectionalViewMapDensityUP1D" - - def __call__(self, inter): - func = GetDirectionalViewMapDensityF1D(self._orientation, self._level, self._integration, self._sampling) - v = func(inter) - if(v > self._threshold): - return 1 - return 0 - -class pyHighViewMapDensityUP1D(UnaryPredicate1D): - def __init__(self,threshold, level,integration = IntegrationType.MEAN, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._threshold = threshold - self._level = level - self._integration = integration - self._sampling = sampling - self._func = GetCompleteViewMapDensityF1D(self._level, self._integration, self._sampling) # 2.0 is the smpling - - def getName(self): - return "pyHighViewMapDensityUP1D" - - def __call__(self, inter): - #print "toto" - #print func.getName() - #print inter.getExactTypeName() - v= self._func(inter) - if(v > self._threshold): - return 1 - return 0 - -class pyDensityFunctorUP1D(UnaryPredicate1D): - def __init__(self,wsize,threshold, functor, funcmin=0.0, funcmax=1.0, integration = IntegrationType.MEAN): - UnaryPredicate1D.__init__(self) - self._wsize = wsize - self._threshold = float(threshold) - self._functor = functor - self._funcmin = float(funcmin) - self._funcmax = float(funcmax) - self._integration = integration - - def getName(self): - return "pyDensityFunctorUP1D" - - def __call__(self, inter): - func = DensityF1D(self._wsize, self._integration) - res = self._functor(inter) - k = (res-self._funcmin)/(self._funcmax-self._funcmin) - if(func(inter) < self._threshold*k): - return 1 - return 0 - -class pyZSmallerUP1D(UnaryPredicate1D): - def __init__(self,z, integration=IntegrationType.MEAN): - UnaryPredicate1D.__init__(self) - self._z = z - self._integration = integration - def getName(self): - return "pyZSmallerUP1D" - - def __call__(self, inter): - func = GetProjectedZF1D(self._integration) - if(func(inter) < self._z): - return 1 - return 0 - -class pyIsOccludedByUP1D(UnaryPredicate1D): - def __init__(self,id): - UnaryPredicate1D.__init__(self) - self._id = id - def getName(self): - return "pyIsOccludedByUP1D" - def __call__(self, inter): - func = GetShapeF1D() - shapes = func(inter) - for s in shapes: - if(s.getId() == self._id): - return 0 - it = inter.verticesBegin() - itlast = inter.verticesEnd() - itlast.decrement() - v = it.getObject() - vlast = itlast.getObject() - tvertex = v.castToTVertex() - if(tvertex != None): - #print "TVertex: [ ", tvertex.getId().getFirst(), ",", tvertex.getId().getSecond()," ]" - eit = tvertex.edgesBegin() - while(eit.isEnd() == 0): - ve = eit.getObject().first - if(ve.shape_id() == self._id): - return 1 - #print "-------", ve.getId().getFirst(), "-", ve.getId().getSecond() - eit.increment() - tvertex = vlast.castToTVertex() - if(tvertex != None): - #print "TVertex: [ ", tvertex.getId().getFirst(), ",", tvertex.getId().getSecond()," ]" - eit = tvertex.edgesBegin() - while(eit.isEnd() == 0): - ve = eit.getObject().first - if(ve.shape_id() == self._id): - return 1 - #print "-------", ve.getId().getFirst(), "-", ve.getId().getSecond() - eit.increment() - return 0 - -class pyIsInOccludersListUP1D(UnaryPredicate1D): - def __init__(self,id): - UnaryPredicate1D.__init__(self) - self._id = id - def getName(self): - return "pyIsInOccludersListUP1D" - def __call__(self, inter): - func = GetOccludersF1D() - occluders = func(inter) - for a in occluders: - if(a.getId() == self._id): - return 1 - return 0 - -class pyIsOccludedByItselfUP1D(UnaryPredicate1D): - def __init__(self): - UnaryPredicate1D.__init__(self) - self.__func1 = GetOccludersF1D() - self.__func2 = GetShapeF1D() - def getName(self): - return "pyIsOccludedByItselfUP1D" - def __call__(self, inter): - lst1 = self.__func1(inter) - lst2 = self.__func2(inter) - for vs1 in lst1: - for vs2 in lst2: - if vs1.getId() == vs2.getId(): - return 1 - return 0 - -class pyIsOccludedByIdListUP1D(UnaryPredicate1D): - def __init__(self, idlist): - UnaryPredicate1D.__init__(self) - self._idlist = idlist - self.__func1 = GetOccludersF1D() - def getName(self): - return "pyIsOccludedByIdListUP1D" - def __call__(self, inter): - lst1 = self.__func1(inter) - for vs1 in lst1: - for id in self._idlist: - if vs1.getId() == id: - return 1 - return 0 - -class pyShapeIdListUP1D(UnaryPredicate1D): - def __init__(self,idlist): - UnaryPredicate1D.__init__(self) - self._idlist = idlist - self._funcs = [] - for id in idlist : - self._funcs.append(ShapeUP1D(id.getFirst(), id.getSecond())) - - def getName(self): - return "pyShapeIdUP1D" - def __call__(self, inter): - for func in self._funcs : - if(func(inter) == 1) : - return 1 - return 0 - -## deprecated -class pyShapeIdUP1D(UnaryPredicate1D): - def __init__(self,id): - UnaryPredicate1D.__init__(self) - self._id = id - def getName(self): - return "pyShapeIdUP1D" - def __call__(self, inter): - func = GetShapeF1D() - shapes = func(inter) - for a in shapes: - if(a.getId() == self._id): - return 1 - return 0 - -class pyHighDensityAnisotropyUP1D(UnaryPredicate1D): - def __init__(self,threshold, level, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._l = threshold - self.func = pyDensityAnisotropyF1D(level, IntegrationType.MEAN, sampling) - def getName(self): - return "pyHighDensityAnisotropyUP1D" - def __call__(self, inter): - return (self.func(inter) > self._l) - -class pyHighViewMapGradientNormUP1D(UnaryPredicate1D): - def __init__(self,threshold, l, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._threshold = threshold - self._GetGradient = pyViewMapGradientNormF1D(l, IntegrationType.MEAN) - def getName(self): - return "pyHighViewMapGradientNormUP1D" - def __call__(self, inter): - gn = self._GetGradient(inter) - #print gn - return (gn > self._threshold) - -class pyDensityVariableSigmaUP1D(UnaryPredicate1D): - def __init__(self,functor, sigmaMin,sigmaMax, lmin, lmax, tmin, tmax, integration = IntegrationType.MEAN, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._functor = functor - self._sigmaMin = float(sigmaMin) - self._sigmaMax = float(sigmaMax) - self._lmin = float(lmin) - self._lmax = float(lmax) - self._tmin = tmin - self._tmax = tmax - self._integration = integration - self._sampling = sampling - - def getName(self): - return "pyDensityUP1D" - - def __call__(self, inter): - sigma = (self._sigmaMax-self._sigmaMin)/(self._lmax-self._lmin)*(self._functor(inter)-self._lmin) + self._sigmaMin - t = (self._tmax-self._tmin)/(self._lmax-self._lmin)*(self._functor(inter)-self._lmin) + self._tmin - if(sigma<self._sigmaMin): - sigma = self._sigmaMin - self._func = DensityF1D(sigma, self._integration, self._sampling) - d = self._func(inter) - if(d<t): - return 1 - return 0 - -class pyClosedCurveUP1D(UnaryPredicate1D): - def __call__(self, inter): - it = inter.verticesBegin() - itlast = inter.verticesEnd() - itlast.decrement() - vlast = itlast.getObject() - v = it.getObject() - print v.getId().getFirst(), v.getId().getSecond() - print vlast.getId().getFirst(), vlast.getId().getSecond() - if(v.getId() == vlast.getId()): - return 1 - return 0 diff --git a/source/blender/freestyle/style_modules_blender/anisotropic_diffusion.py b/source/blender/freestyle/style_modules_blender/anisotropic_diffusion.py deleted file mode 100755 index 2f8739329b9..00000000000 --- a/source/blender/freestyle/style_modules_blender/anisotropic_diffusion.py +++ /dev/null @@ -1,75 +0,0 @@ -# -# Filename : anisotropic_diffusion.py -# Author : Fredo Durand -# Date : 12/08/2004 -# Purpose : Smoothes lines using an anisotropic diffusion scheme -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * -from vector import * -from PredicatesU0D import * -from math import * - -## thickness modifiers - -normalInfo=Normal2DF0D() -curvatureInfo=Curvature2DAngleF0D() - -def edgestopping(x, sigma): - return exp(- x*x/(2*sigma*sigma)) - -class pyDiffusion2Shader(StrokeShader): - def __init__(self, lambda1, nbIter): - StrokeShader.__init__(self) - self._lambda = lambda1 - self._nbIter = nbIter - def getName(self): - return "pyDiffusionShader" - def shade(self, stroke): - for i in range (1, self._nbIter): - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v=it.getObject() - p1 = v.getPoint() - p2 = normalInfo(it.castToInterface0DIterator())*self._lambda*curvatureInfo(it.castToInterface0DIterator()) - v.setPoint(p1+p2) - it.increment() - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D()) -Operators.select( upred ) -bpred = TrueBP1D(); -Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(upred) ) -shaders_list = [ - ConstantThicknessShader(4), - StrokeTextureShader("smoothAlpha.bmp", Stroke.OPAQUE_MEDIUM, 0), - SamplingShader(2), - pyDiffusion2Shader(-0.03, 30), - IncreasingColorShader(1.0,0.0,0.0,1, 0, 1, 0, 1) - ] -Operators.create(TrueUP1D(), shaders_list) - - - diff --git a/source/blender/freestyle/style_modules_blender/apriori_and_causal_density.py b/source/blender/freestyle/style_modules_blender/apriori_and_causal_density.py deleted file mode 100755 index 9f866a37581..00000000000 --- a/source/blender/freestyle/style_modules_blender/apriori_and_causal_density.py +++ /dev/null @@ -1,45 +0,0 @@ -# -# Filename : apriori_and_causal_density.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Selects the lines with high a priori density and -# subjects them to the causal density so as to avoid -# cluttering -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -Operators.select(AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.3,4) ) ) -bpred = TrueBP1D() -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.3,4)) -Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - ConstantThicknessShader(2), - ConstantColorShader(0.0, 0.0, 0.0,1) - ] -Operators.create(pyDensityUP1D(1,0.1, IntegrationType.MEAN), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/apriori_density.py b/source/blender/freestyle/style_modules_blender/apriori_density.py deleted file mode 100755 index 5ff6c58e77f..00000000000 --- a/source/blender/freestyle/style_modules_blender/apriori_density.py +++ /dev/null @@ -1,43 +0,0 @@ -# -# Filename : apriori_density.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws lines having a high a priori density -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -Operators.select(AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.1,5))) -bpred = TrueBP1D() -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.0007,5)) -Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - ConstantThicknessShader(2), - ConstantColorShader(0.0, 0.0, 0.0,1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/backbone_stretcher.py b/source/blender/freestyle/style_modules_blender/backbone_stretcher.py deleted file mode 100755 index 8a6b9d71a66..00000000000 --- a/source/blender/freestyle/style_modules_blender/backbone_stretcher.py +++ /dev/null @@ -1,36 +0,0 @@ -# -# Filename : backbone_stretcher.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Stretches the geometry of visible lines -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [TextureAssignerShader(4), ConstantColorShader(0.5, 0.5, 0.5), BackboneStretcherShader(20)] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/blueprint_circles.py b/source/blender/freestyle/style_modules_blender/blueprint_circles.py deleted file mode 100755 index 7f3a7564cfe..00000000000 --- a/source/blender/freestyle/style_modules_blender/blueprint_circles.py +++ /dev/null @@ -1,46 +0,0 @@ -# -# Filename : blueprint_circles.py -# Author : Emmanuel Turquin -# Date : 04/08/2005 -# Purpose : Produces a blueprint using circular contour strokes -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D()) -bpred = SameShapeIdBP1D() -Operators.select(upred) -Operators.bidirectionalChain(ChainPredicateIterator(upred,bpred), NotUP1D(upred)) -Operators.select(pyHigherLengthUP1D(200)) -shaders_list = [ - ConstantThicknessShader(5), - pyBluePrintCirclesShader(3), - pyPerlinNoise1DShader(0.1, 15, 8), - TextureAssignerShader(4), - IncreasingColorShader(0.8, 0.8, 0.3, 0.4, 0.3, 0.3, 0.3, 0.1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/blueprint_ellipses.py b/source/blender/freestyle/style_modules_blender/blueprint_ellipses.py deleted file mode 100755 index a5cfe4ec30b..00000000000 --- a/source/blender/freestyle/style_modules_blender/blueprint_ellipses.py +++ /dev/null @@ -1,46 +0,0 @@ -# -# Filename : blueprint_ellipses.py -# Author : Emmanuel Turquin -# Date : 04/08/2005 -# Purpose : Produces a blueprint using elliptic contour strokes -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D()) -bpred = SameShapeIdBP1D() -Operators.select(upred) -Operators.bidirectionalChain(ChainPredicateIterator(upred,bpred), NotUP1D(upred)) -Operators.select(pyHigherLengthUP1D(200)) -shaders_list = [ - ConstantThicknessShader(5), - pyBluePrintEllipsesShader(3), - pyPerlinNoise1DShader(0.1, 10, 8), - TextureAssignerShader(4), - IncreasingColorShader(0.6, 0.3, 0.3, 0.7, 0.3, 0.3, 0.3, 0.1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/blueprint_squares.py b/source/blender/freestyle/style_modules_blender/blueprint_squares.py deleted file mode 100755 index 7798acc7d47..00000000000 --- a/source/blender/freestyle/style_modules_blender/blueprint_squares.py +++ /dev/null @@ -1,45 +0,0 @@ -# Filename : blueprint_squares.py -# Author : Emmanuel Turquin -# Date : 04/08/2005 -# Purpose : Produces a blueprint using square contour strokes -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D()) -bpred = SameShapeIdBP1D() -Operators.select(upred) -Operators.bidirectionalChain(ChainPredicateIterator(upred,bpred), NotUP1D(upred)) -Operators.select(pyHigherLengthUP1D(200)) -shaders_list = [ - ConstantThicknessShader(8), - pyBluePrintSquaresShader(2, 20), - pyPerlinNoise1DShader(0.07, 10, 8), - TextureAssignerShader(4), - IncreasingColorShader(0.6, 0.3, 0.3, 0.7, 0.6, 0.3, 0.3, 0.3), - ConstantThicknessShader(4) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/cartoon.py b/source/blender/freestyle/style_modules_blender/cartoon.py deleted file mode 100755 index 6ace7e0585a..00000000000 --- a/source/blender/freestyle/style_modules_blender/cartoon.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : cartoon.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws colored lines. The color is automatically -# infered from each object's material in a cartoon-like -# fashion. -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - BezierCurveShader(3), - ConstantThicknessShader(4), - pyMaterialColorShader(0.8) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/contour.py b/source/blender/freestyle/style_modules_blender/contour.py deleted file mode 100755 index ddf186d27ce..00000000000 --- a/source/blender/freestyle/style_modules_blender/contour.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : contour.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws each object's visible contour -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -import freestyle_init -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -Operators.select(AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D() ) ) -bpred = SameShapeIdBP1D(); -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D()) -Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - ConstantThicknessShader(5.0), - IncreasingColorShader(0.8,0,0,1,0.1,0,0,1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/curvature2d.py b/source/blender/freestyle/style_modules_blender/curvature2d.py deleted file mode 100755 index f699e2186ef..00000000000 --- a/source/blender/freestyle/style_modules_blender/curvature2d.py +++ /dev/null @@ -1,60 +0,0 @@ -# -# Filename : curvature2d.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : The stroke points are colored in gray levels and depending -# on the 2d curvature value -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -class py2DCurvatureColorShader(StrokeShader): - def getName(self): - return "py2DCurvatureColorShader" - - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - func = Curvature2DAngleF0D() - while it.isEnd() == 0: - it0D = it.castToInterface0DIterator() - sv = it.getObject() - att = sv.attribute() - c = func(it0D) - if (c<0): - print "negative 2D curvature" - color = 10.0 * c/3.1415 - att.setColor(color,color,color); - it.increment() - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - StrokeTextureShader("smoothAlpha.bmp", Stroke.OPAQUE_MEDIUM, 0), - ConstantThicknessShader(5), - py2DCurvatureColorShader() - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/external_contour.py b/source/blender/freestyle/style_modules_blender/external_contour.py deleted file mode 100755 index 2a39b79a410..00000000000 --- a/source/blender/freestyle/style_modules_blender/external_contour.py +++ /dev/null @@ -1,43 +0,0 @@ -# -# Filename : external_contour.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the external contour of the scene -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from ChainingIterators import * -from shaders import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D()) -Operators.select(upred ) -bpred = TrueBP1D(); -Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(upred)) -shaders_list = [ - ConstantThicknessShader(3), - ConstantColorShader(0.0, 0.0, 0.0,1) - ] -Operators.create(TrueUP1D(), shaders_list)
\ No newline at end of file diff --git a/source/blender/freestyle/style_modules_blender/external_contour_sketchy.py b/source/blender/freestyle/style_modules_blender/external_contour_sketchy.py deleted file mode 100755 index 8a4c570b279..00000000000 --- a/source/blender/freestyle/style_modules_blender/external_contour_sketchy.py +++ /dev/null @@ -1,48 +0,0 @@ -# -# Filename : external_contour_sketchy.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the external contour of the scene using a sketchy -# chaining iterator (in particular each ViewEdge can be drawn -# several times -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D()) -Operators.select(upred) -Operators.bidirectionalChain(pySketchyChainingIterator(), NotUP1D(upred)) -shaders_list = [ - SamplingShader(4), - SpatialNoiseShader(10, 150, 2, 1, 1), - IncreasingThicknessShader(4, 10), - SmoothingShader(400, 0.1, 0, 0.2, 0, 0, 0, 1), - IncreasingColorShader(1,0,0,1,0,1,0,1), - TextureAssignerShader(4) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/external_contour_smooth.py b/source/blender/freestyle/style_modules_blender/external_contour_smooth.py deleted file mode 100755 index 201dc271388..00000000000 --- a/source/blender/freestyle/style_modules_blender/external_contour_smooth.py +++ /dev/null @@ -1,44 +0,0 @@ -# -# Filename : external_contour_smooth.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws a smooth external contour -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * -from ChainingIterators import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D()) -Operators.select(upred) -bpred = TrueBP1D(); -Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(upred)) -shaders_list = [ - SamplingShader(2), - IncreasingThicknessShader(4,20), - IncreasingColorShader(1.0, 0.0, 0.5,1, 0.5,1, 0.3, 1), - SmoothingShader(100, 0.05, 0, 0.2, 0, 0, 0, 1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/extra-lines.sml b/source/blender/freestyle/style_modules_blender/extra-lines.sml deleted file mode 100755 index c63cd40945d..00000000000 --- a/source/blender/freestyle/style_modules_blender/extra-lines.sml +++ /dev/null @@ -1,3 +0,0 @@ -1suggestive.py -1ridges.py -1nor_suggestive_or_ridges.py diff --git a/source/blender/freestyle/style_modules_blender/freestyle_init.py b/source/blender/freestyle/style_modules_blender/freestyle_init.py deleted file mode 100644 index 504aad25b87..00000000000 --- a/source/blender/freestyle/style_modules_blender/freestyle_init.py +++ /dev/null @@ -1,459 +0,0 @@ -from Blender.Mathutils import Vector -import Blender.Freestyle - -class BBox(Blender.Freestyle.BBox): - pass - -class BinaryPredicate0D(Blender.Freestyle.BinaryPredicate0D): - pass - -class BinaryPredicate1D(Blender.Freestyle.BinaryPredicate1D): - pass - -class FrsMaterial(Blender.Freestyle.FrsMaterial): - pass - -class Id(Blender.Freestyle.Id): - pass - -class IntegrationType(Blender.Freestyle.IntegrationType): - pass - -class Interface0D(Blender.Freestyle.Interface0D): - pass - -class Interface1D(Blender.Freestyle.Interface1D): - pass - -class Iterator(Blender.Freestyle.Iterator): - pass - -class MediumType(Blender.Freestyle.MediumType): - pass - -class Nature(Blender.Freestyle.Nature): - pass - -class FrsNoise(Blender.Freestyle.FrsNoise): - pass - -class Operators(Blender.Freestyle.Operators): - pass - -class SShape(Blender.Freestyle.SShape): - pass - -class StrokeAttribute(Blender.Freestyle.StrokeAttribute): - pass - -class StrokeShader(Blender.Freestyle.StrokeShader): - pass - -class UnaryFunction0D(Blender.Freestyle.UnaryFunction0D): - pass - -class UnaryFunction1D(Blender.Freestyle.UnaryFunction1D): - pass - -class UnaryPredicate0D(Blender.Freestyle.UnaryPredicate0D): - pass - -class UnaryPredicate1D(Blender.Freestyle.UnaryPredicate1D): - pass - -class ViewMap(Blender.Freestyle.ViewMap): - pass - -class ViewShape(Blender.Freestyle.ViewShape): - pass - -class FalseBP1D(Blender.Freestyle.FalseBP1D): - pass - -class Length2DBP1D(Blender.Freestyle.Length2DBP1D): - pass - -class SameShapeIdBP1D(Blender.Freestyle.SameShapeIdBP1D): - pass - -class TrueBP1D(Blender.Freestyle.TrueBP1D): - pass - -class ViewMapGradientNormBP1D(Blender.Freestyle.ViewMapGradientNormBP1D): - pass - -class CurvePoint(Blender.Freestyle.CurvePoint): - pass - -class SVertex(Blender.Freestyle.SVertex): - pass - -class ViewVertex(Blender.Freestyle.ViewVertex): - pass - -class FrsCurve(Blender.Freestyle.FrsCurve): - pass - -class FEdge(Blender.Freestyle.FEdge): - pass - -class Stroke(Blender.Freestyle.Stroke): - pass - -class ViewEdge(Blender.Freestyle.ViewEdge): - pass - -class AdjacencyIterator(Blender.Freestyle.AdjacencyIterator): - pass - -class ChainingIterator(Blender.Freestyle.ChainingIterator): - pass - -class ChainPredicateIterator(Blender.Freestyle.ChainPredicateIterator): - pass - -class ChainSilhouetteIterator(Blender.Freestyle.ChainSilhouetteIterator): - pass - -class CurvePointIterator(Blender.Freestyle.CurvePointIterator): - pass - -class Interface0DIterator(Blender.Freestyle.Interface0DIterator): - pass - -class orientedViewEdgeIterator(Blender.Freestyle.orientedViewEdgeIterator): - pass - -class StrokeVertexIterator(Blender.Freestyle.StrokeVertexIterator): - pass - -class SVertexIterator(Blender.Freestyle.SVertexIterator): - pass - -class ViewEdgeIterator(Blender.Freestyle.ViewEdgeIterator): - pass - -class BackboneStretcherShader(Blender.Freestyle.BackboneStretcherShader): - pass - -class BezierCurveShader(Blender.Freestyle.BezierCurveShader): - pass - -class CalligraphicShader(Blender.Freestyle.CalligraphicShader): - pass - -class ColorNoiseShader(Blender.Freestyle.ColorNoiseShader): - pass - -class ColorVariationPatternShader(Blender.Freestyle.ColorVariationPatternShader): - pass - -class ConstantColorShader(Blender.Freestyle.ConstantColorShader): - pass - -class ConstantThicknessShader(Blender.Freestyle.ConstantThicknessShader): - pass - -class ConstrainedIncreasingThicknessShader(Blender.Freestyle.ConstrainedIncreasingThicknessShader): - pass - -class fstreamShader(Blender.Freestyle.fstreamShader): - pass - -class GuidingLinesShader(Blender.Freestyle.GuidingLinesShader): - pass - -class IncreasingColorShader(Blender.Freestyle.IncreasingColorShader): - pass - -class IncreasingThicknessShader(Blender.Freestyle.IncreasingThicknessShader): - pass - -class PolygonalizationShader(Blender.Freestyle.PolygonalizationShader): - pass - -class SamplingShader(Blender.Freestyle.SamplingShader): - pass - -class SmoothingShader(Blender.Freestyle.SmoothingShader): - pass - -class SpatialNoiseShader(Blender.Freestyle.SpatialNoiseShader): - pass - -class streamShader(Blender.Freestyle.streamShader): - pass - -class StrokeTextureShader(Blender.Freestyle.StrokeTextureShader): - pass - -class TextureAssignerShader(Blender.Freestyle.TextureAssignerShader): - pass - -class ThicknessNoiseShader(Blender.Freestyle.ThicknessNoiseShader): - pass - -class ThicknessVariationPatternShader(Blender.Freestyle.ThicknessVariationPatternShader): - pass - -class TipRemoverShader(Blender.Freestyle.TipRemoverShader): - pass - -class UnaryFunction0DDouble(Blender.Freestyle.UnaryFunction0DDouble): - pass - -class UnaryFunction0DEdgeNature(Blender.Freestyle.UnaryFunction0DEdgeNature): - pass - -class UnaryFunction0DFloat(Blender.Freestyle.UnaryFunction0DFloat): - pass - -class UnaryFunction0DId(Blender.Freestyle.UnaryFunction0DId): - pass - -class UnaryFunction0DMaterial(Blender.Freestyle.UnaryFunction0DMaterial): - pass - -class UnaryFunction0DUnsigned(Blender.Freestyle.UnaryFunction0DUnsigned): - pass - -class UnaryFunction0DVec2f(Blender.Freestyle.UnaryFunction0DVec2f): - pass - -class UnaryFunction0DVec3f(Blender.Freestyle.UnaryFunction0DVec3f): - pass - -class UnaryFunction0DVectorViewShape(Blender.Freestyle.UnaryFunction0DVectorViewShape): - pass - -class UnaryFunction0DViewShape(Blender.Freestyle.UnaryFunction0DViewShape): - pass - -class UnaryFunction1DDouble(Blender.Freestyle.UnaryFunction1DDouble): - pass - -class UnaryFunction1DEdgeNature(Blender.Freestyle.UnaryFunction1DEdgeNature): - pass - -class UnaryFunction1DFloat(Blender.Freestyle.UnaryFunction1DFloat): - pass - -class UnaryFunction1DUnsigned(Blender.Freestyle.UnaryFunction1DUnsigned): - pass - -class UnaryFunction1DVec2f(Blender.Freestyle.UnaryFunction1DVec2f): - pass - -class UnaryFunction1DVec3f(Blender.Freestyle.UnaryFunction1DVec3f): - pass - -class UnaryFunction1DVectorViewShape(Blender.Freestyle.UnaryFunction1DVectorViewShape): - pass - -class UnaryFunction1DVoid(Blender.Freestyle.UnaryFunction1DVoid): - pass - -class FalseUP0D(Blender.Freestyle.FalseUP0D): - pass - -class TrueUP0D(Blender.Freestyle.TrueUP0D): - pass - -class ContourUP1D(Blender.Freestyle.ContourUP1D): - pass - -class DensityLowerThanUP1D(Blender.Freestyle.DensityLowerThanUP1D): - pass - -class EqualToChainingTimeStampUP1D(Blender.Freestyle.EqualToChainingTimeStampUP1D): - pass - -class EqualToTimeStampUP1D(Blender.Freestyle.EqualToTimeStampUP1D): - pass - -class ExternalContourUP1D(Blender.Freestyle.ExternalContourUP1D): - pass - -class FalseUP1D(Blender.Freestyle.FalseUP1D): - pass - -class QuantitativeInvisibilityUP1D(Blender.Freestyle.QuantitativeInvisibilityUP1D): - pass - -class ShapeUP1D(Blender.Freestyle.ShapeUP1D): - pass - -class TrueUP1D(Blender.Freestyle.TrueUP1D): - pass - -class StrokeVertex(Blender.Freestyle.StrokeVertex): - pass - -class NonTVertex(Blender.Freestyle.NonTVertex): - pass - -class TVertex(Blender.Freestyle.TVertex): - pass - -class Chain(Blender.Freestyle.Chain): - pass - -class FEdgeSharp(Blender.Freestyle.FEdgeSharp): - pass - -class FEdgeSmooth(Blender.Freestyle.FEdgeSmooth): - pass - -class Curvature2DAngleF0D(Blender.Freestyle.Curvature2DAngleF0D): - pass - -class DensityF0D(Blender.Freestyle.DensityF0D): - pass - -class GetProjectedXF0D(Blender.Freestyle.GetProjectedXF0D): - pass - -class GetProjectedYF0D(Blender.Freestyle.GetProjectedYF0D): - pass - -class GetProjectedZF0D(Blender.Freestyle.GetProjectedZF0D): - pass - -class GetXF0D(Blender.Freestyle.GetXF0D): - pass - -class GetYF0D(Blender.Freestyle.GetYF0D): - pass - -class GetZF0D(Blender.Freestyle.GetZF0D): - pass - -class LocalAverageDepthF0D(Blender.Freestyle.LocalAverageDepthF0D): - pass - -class ZDiscontinuityF0D(Blender.Freestyle.ZDiscontinuityF0D): - pass - -class GetCurvilinearAbscissaF0D(Blender.Freestyle.GetCurvilinearAbscissaF0D): - pass - -class GetParameterF0D(Blender.Freestyle.GetParameterF0D): - pass - -class GetViewMapGradientNormF0D(Blender.Freestyle.GetViewMapGradientNormF0D): - pass - -class ReadCompleteViewMapPixelF0D(Blender.Freestyle.ReadCompleteViewMapPixelF0D): - pass - -class ReadMapPixelF0D(Blender.Freestyle.ReadMapPixelF0D): - pass - -class ReadSteerableViewMapPixelF0D(Blender.Freestyle.ReadSteerableViewMapPixelF0D): - pass - -class ShapeIdF0D(Blender.Freestyle.ShapeIdF0D): - pass - -class MaterialF0D(Blender.Freestyle.MaterialF0D): - pass - -class CurveNatureF0D(Blender.Freestyle.CurveNatureF0D): - pass - -class QuantitativeInvisibilityF0D(Blender.Freestyle.QuantitativeInvisibilityF0D): - pass - -class Normal2DF0D(Blender.Freestyle.Normal2DF0D): - pass - -class VertexOrientation2DF0D(Blender.Freestyle.VertexOrientation2DF0D): - pass - -class VertexOrientation3DF0D(Blender.Freestyle.VertexOrientation3DF0D): - pass - -class GetOccludersF0D(Blender.Freestyle.GetOccludersF0D): - pass - -class GetOccludeeF0D(Blender.Freestyle.GetOccludeeF0D): - pass - -class GetShapeF0D(Blender.Freestyle.GetShapeF0D): - pass - -class Curvature2DAngleF1D(Blender.Freestyle.Curvature2DAngleF1D): - pass - -class DensityF1D(Blender.Freestyle.DensityF1D): - pass - -class GetCompleteViewMapDensityF1D(Blender.Freestyle.GetCompleteViewMapDensityF1D): - pass - -class GetDirectionalViewMapDensityF1D(Blender.Freestyle.GetDirectionalViewMapDensityF1D): - pass - -class GetProjectedXF1D(Blender.Freestyle.GetProjectedXF1D): - pass - -class GetProjectedYF1D(Blender.Freestyle.GetProjectedYF1D): - pass - -class GetProjectedZF1D(Blender.Freestyle.GetProjectedZF1D): - pass - -class GetSteerableViewMapDensityF1D(Blender.Freestyle.GetSteerableViewMapDensityF1D): - pass - -class GetViewMapGradientNormF1D(Blender.Freestyle.GetViewMapGradientNormF1D): - pass - -class GetXF1D(Blender.Freestyle.GetXF1D): - pass - -class GetYF1D(Blender.Freestyle.GetYF1D): - pass - -class GetZF1D(Blender.Freestyle.GetZF1D): - pass - -class LocalAverageDepthF1D(Blender.Freestyle.LocalAverageDepthF1D): - pass - -class ZDiscontinuityF1D(Blender.Freestyle.ZDiscontinuityF1D): - pass - -class CurveNatureF1D(Blender.Freestyle.CurveNatureF1D): - pass - -class QuantitativeInvisibilityF1D(Blender.Freestyle.QuantitativeInvisibilityF1D): - pass - -class Normal2DF1D(Blender.Freestyle.Normal2DF1D): - pass - -class Orientation2DF1D(Blender.Freestyle.Orientation2DF1D): - pass - -class Orientation3DF1D(Blender.Freestyle.Orientation3DF1D): - pass - -class GetOccludeeF1D(Blender.Freestyle.GetOccludeeF1D): - pass - -class GetOccludersF1D(Blender.Freestyle.GetOccludersF1D): - pass - -class GetShapeF1D(Blender.Freestyle.GetShapeF1D): - pass - -class ChainingTimeStampF1D(Blender.Freestyle.ChainingTimeStampF1D): - pass - -class IncrementChainingTimeStampF1D(Blender.Freestyle.IncrementChainingTimeStampF1D): - pass - -class TimeStampF1D(Blender.Freestyle.TimeStampF1D): - pass - diff --git a/source/blender/freestyle/style_modules_blender/haloing.py b/source/blender/freestyle/style_modules_blender/haloing.py deleted file mode 100755 index afa46173d54..00000000000 --- a/source/blender/freestyle/style_modules_blender/haloing.py +++ /dev/null @@ -1,50 +0,0 @@ -# -# Filename : haloing.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : This style module selects the lines that -# are connected (in the image) to a specific -# object and trims them in order to produce -# a haloing effect around the target shape -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from PredicatesB1D import * -from shaders import * - -# id corresponds to the id of the target object -# (accessed by SHIFT+click) -id = Id(3,0) -upred = AndUP1D(QuantitativeInvisibilityUP1D(0) , pyIsOccludedByUP1D(id)) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -shaders_list = [ - IncreasingThicknessShader(3, 5), - IncreasingColorShader(1,0,0, 1,0,1,0,1), - SamplingShader(1.0), - pyTVertexRemoverShader(), - TipRemoverShader(3.0) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/ignore_small_occlusions.py b/source/blender/freestyle/style_modules_blender/ignore_small_occlusions.py deleted file mode 100755 index ff6efa89ade..00000000000 --- a/source/blender/freestyle/style_modules_blender/ignore_small_occlusions.py +++ /dev/null @@ -1,41 +0,0 @@ -# -# Filename : ignore_small_oclusions.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : The strokes are drawn through small occlusions -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -#Operators.bidirectionalChain(pyFillOcclusionsChainingIterator(0.1)) -Operators.bidirectionalChain(pyFillOcclusionsAbsoluteChainingIterator(12)) -shaders_list = [ - SamplingShader(5.0), - ConstantThicknessShader(3), - ConstantColorShader(0.0,0.0,0.0), - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/invisible_lines.py b/source/blender/freestyle/style_modules_blender/invisible_lines.py deleted file mode 100755 index ea509463bfd..00000000000 --- a/source/blender/freestyle/style_modules_blender/invisible_lines.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : invisible_lines.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws all lines whose Quantitative Invisibility -# is different from 0 -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -upred = NotUP1D(QuantitativeInvisibilityUP1D(0)) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -shaders_list = [ - SamplingShader(5.0), - ConstantThicknessShader(3.0), - ConstantColorShader(0.7,0.7,0.7) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/japanese_bigbrush.py b/source/blender/freestyle/style_modules_blender/japanese_bigbrush.py deleted file mode 100755 index 7f109598aaa..00000000000 --- a/source/blender/freestyle/style_modules_blender/japanese_bigbrush.py +++ /dev/null @@ -1,60 +0,0 @@ -# -# Filename : japanese_bigbrush.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Simulates a big brush fr oriental painting -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from PredicatesB1D import * -from Functions0D import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D(QuantitativeInvisibilityUP1D(0))) -## Splits strokes at points of highest 2D curavture -## when there are too many abrupt turns in it -func = pyInverseCurvature2DAngleF0D() -Operators.recursiveSplit(func, pyParameterUP0D(0.2,0.8), NotUP1D(pyHigherNumberOfTurnsUP1D(3, 0.5)), 2) -## Keeps only long enough strokes -Operators.select(pyHigherLengthUP1D(100)) -## Sorts so as to draw the longest strokes first -## (this will be done using the causal density) -Operators.sort(pyLengthBP1D()) -shaders_list = [ - pySamplingShader(10), - BezierCurveShader(30), - SamplingShader(50), - ConstantThicknessShader(10), - pyNonLinearVaryingThicknessShader(4,25, 0.6), - TextureAssignerShader(6), - ConstantColorShader(0.2, 0.2, 0.2,1.0), - TipRemoverShader(10) - ] - -## Use the causal density to avoid cluttering -Operators.create(pyDensityUP1D(8,0.4, IntegrationType.MEAN), shaders_list) - - diff --git a/source/blender/freestyle/style_modules_blender/logical_operators.py b/source/blender/freestyle/style_modules_blender/logical_operators.py deleted file mode 100755 index 0ecf6623697..00000000000 --- a/source/blender/freestyle/style_modules_blender/logical_operators.py +++ /dev/null @@ -1,36 +0,0 @@ -from freestyle_init import * - -class AndUP1D(UnaryPredicate1D): - def __init__(self, pred1, pred2): - UnaryPredicate1D.__init__(self) - self.__pred1 = pred1 - self.__pred2 = pred2 - - def getName(self): - return "AndUP1D" - - def __call__(self, inter): - return self.__pred1(inter) and self.__pred2(inter) - -class OrUP1D(UnaryPredicate1D): - def __init__(self, pred1, pred2): - UnaryPredicate1D.__init__(self) - self.__pred1 = pred1 - self.__pred2 = pred2 - - def getName(self): - return "OrUP1D" - - def __call__(self, inter): - return self.__pred1(inter) or self.__pred2(inter) - -class NotUP1D(UnaryPredicate1D): - def __init__(self, pred): - UnaryPredicate1D.__init__(self) - self.__pred = pred - - def getName(self): - return "NotUP1D" - - def __call__(self, inter): - return self.__pred(inter) == 0 diff --git a/source/blender/freestyle/style_modules_blender/long_anisotropically_dense.py b/source/blender/freestyle/style_modules_blender/long_anisotropically_dense.py deleted file mode 100755 index 52bb2dd1170..00000000000 --- a/source/blender/freestyle/style_modules_blender/long_anisotropically_dense.py +++ /dev/null @@ -1,81 +0,0 @@ -# -# Filename : long_anisotropically_dense.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Selects the lines that are long and have a high anisotropic -# a priori density and uses causal density -# to draw without cluttering. Ideally, half of the -# selected lines are culled using the causal density. -# -# ********************* WARNING ************************************* -# ******** The Directional a priori density maps must ****** -# ******** have been computed prior to using this style module ****** -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from PredicatesU0D import * -from PredicatesB1D import * -from Functions0D import * -from Functions1D import * -from shaders import * - -## custom density predicate -class pyDensityUP1D(UnaryPredicate1D): - def __init__(self,wsize,threshold, integration = IntegrationType.MEAN, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._wsize = wsize - self._threshold = threshold - self._integration = integration - self._func = DensityF1D(self._wsize, self._integration, sampling) - self._func2 = DensityF1D(self._wsize, IntegrationType.MAX, sampling) - - def getName(self): - return "pyDensityUP1D" - - def __call__(self, inter): - c = self._func(inter) - m = self._func2(inter) - if(c < self._threshold): - return 1 - if( m > 4* c ): - if ( c < 1.5*self._threshold ): - return 1 - return 0 - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D(QuantitativeInvisibilityUP1D(0))) -Operators.select(pyHigherLengthUP1D(40)) -## selects lines having a high anisotropic a priori density -Operators.select(pyHighDensityAnisotropyUP1D(0.3,4)) -Operators.sort(pyLengthBP1D()) -shaders_list = [ - SamplingShader(2.0), - ConstantThicknessShader(2), - ConstantColorShader(0.2,0.2,0.25,1), - ] -## uniform culling -Operators.create(pyDensityUP1D(3.0,2.0e-2, IntegrationType.MEAN, 0.1), shaders_list) - - diff --git a/source/blender/freestyle/style_modules_blender/multiple_parameterization.py b/source/blender/freestyle/style_modules_blender/multiple_parameterization.py deleted file mode 100755 index 3f0409db5fa..00000000000 --- a/source/blender/freestyle/style_modules_blender/multiple_parameterization.py +++ /dev/null @@ -1,51 +0,0 @@ -# -# Filename : multiple_parameterization.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : The thickness and the color of the strokes vary continuously -# independently from occlusions although only -# visible lines are actually drawn. This is equivalent -# to assigning the thickness using a parameterization covering -# the complete silhouette (visible+invisible) and drawing -# the strokes using a second parameterization that only -# covers the visible portions. -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -## Chain following the same nature, but without the restriction -## of staying inside the selection (0). -Operators.bidirectionalChain(ChainSilhouetteIterator(0)) -shaders_list = [ - SamplingShader(20), - IncreasingThicknessShader(1.5, 30), - ConstantColorShader(0.0,0.0,0.0), - IncreasingColorShader(1,0,0,1,0,1,0,1), - TextureAssignerShader(-1), - pyHLRShader() ## this shader draws only visible portions - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/nature.py b/source/blender/freestyle/style_modules_blender/nature.py deleted file mode 100755 index b5481a8e519..00000000000 --- a/source/blender/freestyle/style_modules_blender/nature.py +++ /dev/null @@ -1,43 +0,0 @@ -# -# Filename : nature.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Uses the NatureUP1D predicate to select the lines -# of a given type (among Nature.SILHOUETTE, Nature.CREASE, Nature.SUGGESTIVE_CONTOURS, -# Nature.BORDERS). -# The suggestive contours must have been enabled in the -# options dialog to appear in the View Map. -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -Operators.select(pyNatureUP1D(Nature.SILHOUETTE)) -Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D( pyNatureUP1D( Nature.SILHOUETTE) ) ) -shaders_list = [ - IncreasingThicknessShader(3, 10), - IncreasingColorShader(0.0,0.0,0.0, 1, 0.8,0,0,1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/near_lines.py b/source/blender/freestyle/style_modules_blender/near_lines.py deleted file mode 100755 index 565bca1fe1f..00000000000 --- a/source/blender/freestyle/style_modules_blender/near_lines.py +++ /dev/null @@ -1,44 +0,0 @@ -# -# Filename : near_lines.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the lines that are "closer" than a threshold -# (between 0 and 1) -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), pyZSmallerUP1D(0.5, IntegrationType.MEAN)) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -shaders_list = [ - TextureAssignerShader(-1), - ConstantThicknessShader(5), - ConstantColorShader(0.0, 0.0, 0.0) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/occluded_by_specific_object.py b/source/blender/freestyle/style_modules_blender/occluded_by_specific_object.py deleted file mode 100755 index 09ce39d5dd6..00000000000 --- a/source/blender/freestyle/style_modules_blender/occluded_by_specific_object.py +++ /dev/null @@ -1,45 +0,0 @@ -# -# Filename : occluded_by_specific_object.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws only the lines that are occluded by a given object -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from shaders import * - -## the id of the occluder (use SHIFT+click on the ViewMap to -## retrieve ids) -id = Id(3,0) -upred = AndUP1D(NotUP1D(QuantitativeInvisibilityUP1D(0)), -pyIsInOccludersListUP1D(id)) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -shaders_list = [ - SamplingShader(5), - ConstantThicknessShader(3), - ConstantColorShader(0.3,0.3,0.3,1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/polygonalize.py b/source/blender/freestyle/style_modules_blender/polygonalize.py deleted file mode 100755 index 4446c4c1dcc..00000000000 --- a/source/blender/freestyle/style_modules_blender/polygonalize.py +++ /dev/null @@ -1,40 +0,0 @@ -# -# Filename : polygonalize.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Make the strokes more "polygonal" -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - SamplingShader(2.0), - ConstantThicknessShader(3), - ConstantColorShader(0.0,0.0,0.0), - PolygonalizationShader(8) - ] -Operators.create(TrueUP1D(), shaders_list)
\ No newline at end of file diff --git a/source/blender/freestyle/style_modules_blender/qi0.py b/source/blender/freestyle/style_modules_blender/qi0.py deleted file mode 100755 index d35d23cb7c3..00000000000 --- a/source/blender/freestyle/style_modules_blender/qi0.py +++ /dev/null @@ -1,41 +0,0 @@ -# -# Filename : qi0.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the visible lines (chaining follows same nature lines) -# (most basic style module) -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - SamplingShader(5.0), - ConstantThicknessShader(4.0), - ConstantColorShader(0.0,0.0,0.0) - ] -Operators.create(TrueUP1D(), shaders_list)
\ No newline at end of file diff --git a/source/blender/freestyle/style_modules_blender/qi0_not_external_contour.py b/source/blender/freestyle/style_modules_blender/qi0_not_external_contour.py deleted file mode 100755 index eed41af32b4..00000000000 --- a/source/blender/freestyle/style_modules_blender/qi0_not_external_contour.py +++ /dev/null @@ -1,43 +0,0 @@ -# -# Filename : qi0_not_external_contour.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the visible lines (chaining follows same nature lines) -# that do not belong to the external contour of the scene -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * - -upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D()) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -shaders_list = [ - SamplingShader(4), - SpatialNoiseShader(4, 150, 2, True, True), - IncreasingThicknessShader(2, 5), - BackboneStretcherShader(20), - IncreasingColorShader(1,0,0,1,0,1,0,1), - TextureAssignerShader(4) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/qi1.py b/source/blender/freestyle/style_modules_blender/qi1.py deleted file mode 100755 index 8d248376138..00000000000 --- a/source/blender/freestyle/style_modules_blender/qi1.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : qi1.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws lines hidden by one surface. -# *** Quantitative Invisibility must have been -# enabled in the options dialog to use this style module **** -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(1)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(1))) -shaders_list = [ - SamplingShader(5.0), - ConstantThicknessShader(3), - ConstantColorShader(0.5,0.5,0.5, 1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/qi2.py b/source/blender/freestyle/style_modules_blender/qi2.py deleted file mode 100755 index ba5e97b6982..00000000000 --- a/source/blender/freestyle/style_modules_blender/qi2.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : qi2.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws lines hidden by two surfaces. -# *** Quantitative Invisibility must have been -# enabled in the options dialog to use this style module **** -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(2)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(2))) -shaders_list = [ - SamplingShader(10), - ConstantThicknessShader(1.5), - ConstantColorShader(0.7,0.7,0.7, 1) - ] -Operators.create(TrueUP1D(), shaders_list)
\ No newline at end of file diff --git a/source/blender/freestyle/style_modules_blender/sequentialsplit_sketchy.py b/source/blender/freestyle/style_modules_blender/sequentialsplit_sketchy.py deleted file mode 100755 index 53fa03103aa..00000000000 --- a/source/blender/freestyle/style_modules_blender/sequentialsplit_sketchy.py +++ /dev/null @@ -1,68 +0,0 @@ -# -# Filename : sequentialsplit_sketchy.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Use the sequential split with two different -# predicates to specify respectively the starting and -# the stopping extremities for strokes -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from PredicatesU0D import * -from Functions0D import * - -## Predicate to tell whether a TVertex -## corresponds to a change from 0 to 1 or not. -class pyBackTVertexUP0D(UnaryPredicate0D): - def __init__(self): - UnaryPredicate0D.__init__(self) - self._getQI = QuantitativeInvisibilityF0D() - def getName(self): - return "pyBackTVertexUP0D" - def __call__(self, iter): - v = iter.getObject() - nat = v.getNature() - if(nat & Nature.T_VERTEX == 0): - return 0 - if(self._getQI(iter) != 0): - return 1 - return 0 - - -upred = QuantitativeInvisibilityUP1D(0) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -## starting and stopping predicates: -start = pyVertexNatureUP0D(Nature.NON_T_VERTEX) -stop = pyBackTVertexUP0D() -Operators.sequentialSplit(start, stop, 10) -shaders_list = [ - SpatialNoiseShader(7, 120, 2, True, True), - IncreasingThicknessShader(5, 8), - ConstantColorShader(0.2, 0.2, 0.2, 1), - TextureAssignerShader(4) - ] -Operators.create(TrueUP1D(), shaders_list) - diff --git a/source/blender/freestyle/style_modules_blender/shaders.py b/source/blender/freestyle/style_modules_blender/shaders.py deleted file mode 100755 index 610e1d2a943..00000000000 --- a/source/blender/freestyle/style_modules_blender/shaders.py +++ /dev/null @@ -1,1288 +0,0 @@ -from freestyle_init import * -from PredicatesU0D import * -from PredicatesB1D import * -from PredicatesU1D import * -from logical_operators import * -from ChainingIterators import * -from random import * -from math import * -from vector import * - -## thickness modifiers -###################### - -class pyDepthDiscontinuityThicknessShader(StrokeShader): - def __init__(self, min, max): - StrokeShader.__init__(self) - self.__min = float(min) - self.__max = float(max) - self.__func = ZDiscontinuityF0D() - def getName(self): - return "pyDepthDiscontinuityThicknessShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - z_min=0.0 - z_max=1.0 - a = (self.__max - self.__min)/(z_max-z_min) - b = (self.__min*z_max-self.__max*z_min)/(z_max-z_min) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - z = self.__func(it.castToInterface0DIterator()) - thickness = a*z+b - it.getObject().attribute().setThickness(thickness, thickness) - it.increment() - -class pyConstantThicknessShader(StrokeShader): - def __init__(self, thickness): - StrokeShader.__init__(self) - self._thickness = thickness - - def getName(self): - return "pyConstantThicknessShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - t = self._thickness/2.0 - att.setThickness(t, t) - it.increment() - -class pyFXSThicknessShader(StrokeShader): - def __init__(self, thickness): - StrokeShader.__init__(self) - self._thickness = thickness - - def getName(self): - return "pyFXSThicknessShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - t = self._thickness/2.0 - att.setThickness(t, t) - it.increment() - -class pyFXSVaryingThicknessWithDensityShader(StrokeShader): - def __init__(self, wsize, threshold_min, threshold_max, thicknessMin, thicknessMax): - StrokeShader.__init__(self) - self.wsize= wsize - self.threshold_min= threshold_min - self.threshold_max= threshold_max - self._thicknessMin = thicknessMin - self._thicknessMax = thicknessMax - - def getName(self): - return "pyVaryingThicknessWithDensityShader" - def shade(self, stroke): - n = stroke.strokeVerticesSize() - i = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - func = DensityF0D(self.wsize) - while it.isEnd() == 0: - att = it.getObject().attribute() - toto = it.castToInterface0DIterator() - c= func(toto) - if (c < self.threshold_min ): - c = self.threshold_min - if (c > self.threshold_max ): - c = self.threshold_max -## t = (c - self.threshold_min)/(self.threshold_max - self.threshold_min)*(self._thicknessMax-self._thicknessMin) + self._thicknessMin - t = (self.threshold_max - c )/(self.threshold_max - self.threshold_min)*(self._thicknessMax-self._thicknessMin) + self._thicknessMin - att.setThickness(t/2.0, t/2.0) - i = i+1 - it.increment() -class pyIncreasingThicknessShader(StrokeShader): - def __init__(self, thicknessMin, thicknessMax): - StrokeShader.__init__(self) - self._thicknessMin = thicknessMin - self._thicknessMax = thicknessMax - - def getName(self): - return "pyIncreasingThicknessShader" - def shade(self, stroke): - n = stroke.strokeVerticesSize() - i = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - c = float(i)/float(n) - if(i < float(n)/2.0): - t = (1.0 - c)*self._thicknessMin + c * self._thicknessMax - else: - t = (1.0 - c)*self._thicknessMax + c * self._thicknessMin - att.setThickness(t/2.0, t/2.0) - i = i+1 - it.increment() - -class pyConstrainedIncreasingThicknessShader(StrokeShader): - def __init__(self, thicknessMin, thicknessMax, ratio): - StrokeShader.__init__(self) - self._thicknessMin = thicknessMin - self._thicknessMax = thicknessMax - self._ratio = ratio - - def getName(self): - return "pyConstrainedIncreasingThicknessShader" - def shade(self, stroke): - slength = stroke.getLength2D() - tmp = self._ratio*slength - maxT = 0.0 - if(tmp < self._thicknessMax): - maxT = tmp - else: - maxT = self._thicknessMax - n = stroke.strokeVerticesSize() - i = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - c = float(i)/float(n) - if(i < float(n)/2.0): - t = (1.0 - c)*self._thicknessMin + c * maxT - else: - t = (1.0 - c)*maxT + c * self._thicknessMin - att.setThickness(t/2.0, t/2.0) - if(i == n-1): - att.setThickness(self._thicknessMin/2.0, self._thicknessMin/2.0) - i = i+1 - it.increment() - -class pyDecreasingThicknessShader(StrokeShader): - def __init__(self, thicknessMax, thicknessMin): - StrokeShader.__init__(self) - self._thicknessMin = thicknessMin - self._thicknessMax = thicknessMax - - def getName(self): - return "pyDecreasingThicknessShader" - def shade(self, stroke): - l = stroke.getLength2D() - tMax = self._thicknessMax - if(self._thicknessMax > 0.33*l): - tMax = 0.33*l - tMin = self._thicknessMin - if(self._thicknessMin > 0.1*l): - tMin = 0.1*l - n = stroke.strokeVerticesSize() - i = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - c = float(i)/float(n) - t = (1.0 - c)*tMax +c*tMin - att.setThickness(t/2.0, t/2.0) - i = i+1 - it.increment() - -def smoothC( a, exp ): - c = pow(float(a),exp)*pow(2.0,exp) - return c - -class pyNonLinearVaryingThicknessShader(StrokeShader): - def __init__(self, thicknessExtremity, thicknessMiddle, exponent): - StrokeShader.__init__(self) - self._thicknessMin = thicknessMiddle - self._thicknessMax = thicknessExtremity - self._exponent = exponent - - def getName(self): - return "pyNonLinearVaryingThicknessShader" - def shade(self, stroke): - n = stroke.strokeVerticesSize() - i = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - if(i < float(n)/2.0): - c = float(i)/float(n) - else: - c = float(n-i)/float(n) - c = smoothC(c, self._exponent) - t = (1.0 - c)*self._thicknessMax + c * self._thicknessMin - att.setThickness(t/2.0, t/2.0) - i = i+1 - it.increment() - -## Spherical linear interpolation (cos) -class pySLERPThicknessShader(StrokeShader): - def __init__(self, thicknessMin, thicknessMax, omega=1.2): - StrokeShader.__init__(self) - self._thicknessMin = thicknessMin - self._thicknessMax = thicknessMax - self._omega = omega - - def getName(self): - return "pySLERPThicknessShader" - def shade(self, stroke): - slength = stroke.getLength2D() - tmp = 0.33*slength - maxT = self._thicknessMax - if(tmp < self._thicknessMax): - maxT = tmp - - n = stroke.strokeVerticesSize() - i = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - c = float(i)/float(n) - if(i < float(n)/2.0): - t = sin((1-c)*self._omega)/sinh(self._omega)*self._thicknessMin + sin(c*self._omega)/sinh(self._omega) * maxT - else: - t = sin((1-c)*self._omega)/sinh(self._omega)*maxT + sin(c*self._omega)/sinh(self._omega) * self._thicknessMin - att.setThickness(t/2.0, t/2.0) - i = i+1 - it.increment() - -class pyTVertexThickenerShader(StrokeShader): ## FIXME - def __init__(self, a=1.5, n=3): - StrokeShader.__init__(self) - self._a = a - self._n = n - - def getName(self): - return "pyTVertexThickenerShader" - - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - predTVertex = pyVertexNatureUP0D(Nature.T_VERTEX) - while it.isEnd() == 0: - if(predTVertex(it) == 1): - it2 = StrokeVertexIterator(it) - it2.increment() - if not(it.isBegin() or it2.isEnd()): - it.increment() - continue - n = self._n - a = self._a - if(it.isBegin()): - it3 = StrokeVertexIterator(it) - count = 0 - while (it3.isEnd() == 0 and count < n): - att = it3.getObject().attribute() - tr = att.getThicknessR(); - tl = att.getThicknessL(); - r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1 - #r = (1.0-a)/float(n-1)*count + a - att.setThickness(r*tr, r*tl) - it3.increment() - count = count + 1 - if(it2.isEnd()): - it4 = StrokeVertexIterator(it) - count = 0 - while (it4.isBegin() == 0 and count < n): - att = it4.getObject().attribute() - tr = att.getThicknessR(); - tl = att.getThicknessL(); - r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1 - #r = (1.0-a)/float(n-1)*count + a - att.setThickness(r*tr, r*tl) - it4.decrement() - count = count + 1 - if ((it4.isBegin() == 1)): - att = it4.getObject().attribute() - tr = att.getThicknessR(); - tl = att.getThicknessL(); - r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1 - #r = (1.0-a)/float(n-1)*count + a - att.setThickness(r*tr, r*tl) - it.increment() - -class pyImportance2DThicknessShader(StrokeShader): - def __init__(self, x, y, w, kmin, kmax): - StrokeShader.__init__(self) - self._x = x - self._y = y - self._w = float(w) - self._kmin = float(kmin) - self._kmax = float(kmax) - - def getName(self): - return "pyImportanceThicknessShader" - def shade(self, stroke): - origin = Vec2(self._x, self._y) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v = it.getObject() - p = Vec2(v.getProjectedX(), v.getProjectedY()) - d = (p-origin).length() - if(d>self._w): - k = self._kmin - else: - k = (self._kmax*(self._w-d) + self._kmin*d)/self._w - att = v.attribute() - tr = att.getThicknessR() - tl = att.getThicknessL() - att.setThickness(k*tr/2.0, k*tl/2.0) - it.increment() - -class pyImportance3DThicknessShader(StrokeShader): - def __init__(self, x, y, z, w, kmin, kmax): - StrokeShader.__init__(self) - self._x = x - self._y = y - self._z = z - self._w = float(w) - self._kmin = float(kmin) - self._kmax = float(kmax) - - def getName(self): - return "pyImportance3DThicknessShader" - def shade(self, stroke): - origin = Vec3(self._x, self._y, self._z) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v = it.getObject() - p = Vec3(v.getX(), v.getY(), v.getZ()) - d = (p-origin).length() - if(d>self._w): - k = self._kmin - else: - k = (self._kmax*(self._w-d) + self._kmin*d)/self._w - att = v.attribute() - tr = att.getThicknessR() - tl = att.getThicknessL() - att.setThickness(k*tr/2.0, k*tl/2.0) - it.increment() - -class pyZDependingThicknessShader(StrokeShader): - def __init__(self, min, max): - StrokeShader.__init__(self) - self.__min = min - self.__max = max - self.__func = GetProjectedZF0D() - def getName(self): - return "pyZDependingThicknessShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - z_min = 1 - z_max = 0 - while it.isEnd() == 0: - z = self.__func(it.castToInterface0DIterator()) - if z < z_min: - z_min = z - elif z > z_max: - z_max = z - it.increment() - z_diff = 1 / (z_max - z_min) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - z = (self.__func(it.castToInterface0DIterator()) - z_min) * z_diff - thickness = (1 - z) * self.__max + z * self.__min - it.getObject().attribute().setThickness(thickness, thickness) - it.increment() - - -## color modifiers -################## - -class pyConstantColorShader(StrokeShader): - def __init__(self,r,g,b, a = 1): - StrokeShader.__init__(self) - self._r = r - self._g = g - self._b = b - self._a = a - def getName(self): - return "pyConstantColorShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - att.setColor(self._r, self._g, self._b) - att.setAlpha(self._a) - it.increment() - -#c1->c2 -class pyIncreasingColorShader(StrokeShader): - def __init__(self,r1,g1,b1,a1, r2,g2,b2,a2): - StrokeShader.__init__(self) - self._c1 = [r1,g1,b1,a1] - self._c2 = [r2,g2,b2,a2] - def getName(self): - return "pyIncreasingColorShader" - def shade(self, stroke): - n = stroke.strokeVerticesSize() - 1 - inc = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - c = float(inc)/float(n) - - att.setColor( (1-c)*self._c1[0] + c*self._c2[0], - (1-c)*self._c1[1] + c*self._c2[1], - (1-c)*self._c1[2] + c*self._c2[2],) - att.setAlpha((1-c)*self._c1[3] + c*self._c2[3],) - inc = inc+1 - it.increment() - -# c1->c2->c1 -class pyInterpolateColorShader(StrokeShader): - def __init__(self,r1,g1,b1,a1, r2,g2,b2,a2): - StrokeShader.__init__(self) - self._c1 = [r1,g1,b1,a1] - self._c2 = [r2,g2,b2,a2] - def getName(self): - return "pyInterpolateColorShader" - def shade(self, stroke): - n = stroke.strokeVerticesSize() - 1 - inc = 0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - u = float(inc)/float(n) - c = 1-2*(fabs(u-0.5)) - att.setColor( (1-c)*self._c1[0] + c*self._c2[0], - (1-c)*self._c1[1] + c*self._c2[1], - (1-c)*self._c1[2] + c*self._c2[2],) - att.setAlpha((1-c)*self._c1[3] + c*self._c2[3],) - inc = inc+1 - it.increment() - -class pyMaterialColorShader(StrokeShader): - def __init__(self, threshold=50): - StrokeShader.__init__(self) - self._threshold = threshold - - def getName(self): - return "pyMaterialColorShader" - - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - func = MaterialF0D() - xn = 0.312713 - yn = 0.329016 - Yn = 1.0 - un = 4.* xn/ ( -2.*xn + 12.*yn + 3. ) - vn= 9.* yn/ ( -2.*xn + 12.*yn +3. ) - while it.isEnd() == 0: - toto = it.castToInterface0DIterator() - mat = func(toto) - - r = mat.diffuseR() - g = mat.diffuseG() - b = mat.diffuseB() - - X = 0.412453*r + 0.35758 *g + 0.180423*b - Y = 0.212671*r + 0.71516 *g + 0.072169*b - Z = 0.019334*r + 0.119193*g + 0.950227*b - - if((X == 0) and (Y == 0) and (Z == 0)): - X = 0.01 - Y = 0.01 - Z = 0.01 - u = 4.*X / (X + 15.*Y + 3.*Z) - v = 9.*Y / (X + 15.*Y + 3.*Z) - - L= 116. * math.pow((Y/Yn),(1./3.)) -16 - U = 13. * L * (u - un) - V = 13. * L * (v - vn) - - if (L > self._threshold): - L = L/1.3 - U = U+10 - else: - L = L +2.5*(100-L)/5. - U = U/3.0 - V = V/3.0 - u = U / (13. * L) + un - v = V / (13. * L) + vn - - Y = Yn * math.pow( ((L+16.)/116.), 3.) - X = -9. * Y * u / ((u - 4.)* v - u * v) - Z = (9. * Y - 15*v*Y - v*X) /( 3. * v) - - r = 3.240479 * X - 1.53715 * Y - 0.498535 * Z - g = -0.969256 * X + 1.875991 * Y + 0.041556 * Z - b = 0.055648 * X - 0.204043 * Y + 1.057311 * Z - - att = it.getObject().attribute() - att.setColor(r, g, b) - it.increment() - -class pyRandomColorShader(StrokeShader): - def getName(self): - return "pyRandomColorShader" - def __init__(self, s=1): - StrokeShader.__init__(self) - seed(s) - def shade(self, stroke): - ## pick a random color - c0 = float(uniform(15,75))/100.0 - c1 = float(uniform(15,75))/100.0 - c2 = float(uniform(15,75))/100.0 - print c0, c1, c2 - it = stroke.strokeVerticesBegin() - while(it.isEnd() == 0): - it.getObject().attribute().setColor(c0,c1,c2) - it.increment() - -class py2DCurvatureColorShader(StrokeShader): - def getName(self): - return "py2DCurvatureColorShader" - - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - func = Curvature2DAngleF0D() - while it.isEnd() == 0: - toto = it.castToInterface0DIterator() - sv = it.getObject() - att = sv.attribute() - c = func(toto) - if (c<0): - print "negative 2D curvature" - color = 10.0 * c/3.1415 - print color - att.setColor(color,color,color); - it.increment() - -class pyTimeColorShader(StrokeShader): - def __init__(self, step=0.01): - StrokeShader.__init__(self) - self._t = 0 - self._step = step - def shade(self, stroke): - c = self._t*1.0 - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - att = it.getObject().attribute() - att.setColor(c,c,c) - it.increment() - self._t = self._t+self._step - -## geometry modifiers - -class pySamplingShader(StrokeShader): - def __init__(self, sampling): - StrokeShader.__init__(self) - self._sampling = sampling - def getName(self): - return "pySamplingShader" - def shade(self, stroke): - stroke.Resample(float(self._sampling)) - -class pyBackboneStretcherShader(StrokeShader): - def __init__(self, l): - StrokeShader.__init__(self) - self._l = l - def getName(self): - return "pyBackboneStretcherShader" - def shade(self, stroke): - it0 = stroke.strokeVerticesBegin() - it1 = StrokeVertexIterator(it0) - it1.increment() - itn = stroke.strokeVerticesEnd() - itn.decrement() - itn_1 = StrokeVertexIterator(itn) - itn_1.decrement() - v0 = it0.getObject() - v1 = it1.getObject() - vn_1 = itn_1.getObject() - vn = itn.getObject() - p0 = Vec2f(v0.getProjectedX(), v0.getProjectedY()) - pn = Vec2f(vn.getProjectedX(), vn.getProjectedY()) - p1 = Vec2f(v1.getProjectedX(), v1.getProjectedY()) - pn_1 = Vec2f(vn_1.getProjectedX(), vn_1.getProjectedY()) - d1 = p0-p1 - d1 = d1/d1.norm() - dn = pn-pn_1 - dn = dn/dn.norm() - newFirst = p0+d1*float(self._l) - newLast = pn+dn*float(self._l) - v0.setPoint(newFirst) - vn.setPoint(newLast) - -class pyLengthDependingBackboneStretcherShader(StrokeShader): - def __init__(self, l): - StrokeShader.__init__(self) - self._l = l - def getName(self): - return "pyBackboneStretcherShader" - def shade(self, stroke): - l = stroke.getLength2D() - stretch = self._l*l - it0 = stroke.strokeVerticesBegin() - it1 = StrokeVertexIterator(it0) - it1.increment() - itn = stroke.strokeVerticesEnd() - itn.decrement() - itn_1 = StrokeVertexIterator(itn) - itn_1.decrement() - v0 = it0.getObject() - v1 = it1.getObject() - vn_1 = itn_1.getObject() - vn = itn.getObject() - p0 = Vec2f(v0.getProjectedX(), v0.getProjectedY()) - pn = Vec2f(vn.getProjectedX(), vn.getProjectedY()) - p1 = Vec2f(v1.getProjectedX(), v1.getProjectedY()) - pn_1 = Vec2f(vn_1.getProjectedX(), vn_1.getProjectedY()) - d1 = p0-p1 - d1 = d1/d1.norm() - dn = pn-pn_1 - dn = dn/dn.norm() - newFirst = p0+d1*float(stretch) - newLast = pn+dn*float(stretch) - v0.setPoint(newFirst) - vn.setPoint(newLast) - - -## Shader to replace a stroke by its corresponding tangent -class pyGuidingLineShader(StrokeShader): - def getName(self): - return "pyGuidingLineShader" - ## shading method - def shade(self, stroke): - it = stroke.strokeVerticesBegin() ## get the first vertex - itlast = stroke.strokeVerticesEnd() ## - itlast.decrement() ## get the last one - t = itlast.getObject().getPoint() - it.getObject().getPoint() ## tangent direction - itmiddle = StrokeVertexIterator(it) ## - while(itmiddle.getObject().u()<0.5): ## look for the stroke middle vertex - itmiddle.increment() ## - it = StrokeVertexIterator(itmiddle) - it.increment() - while(it.isEnd() == 0): ## position all the vertices along the tangent for the right part - it.getObject().setPoint(itmiddle.getObject().getPoint() \ - +t*(it.getObject().u()-itmiddle.getObject().u())) - it.increment() - it = StrokeVertexIterator(itmiddle) - it.decrement() - while(it.isBegin() == 0): ## position all the vertices along the tangent for the left part - it.getObject().setPoint(itmiddle.getObject().getPoint() \ - -t*(itmiddle.getObject().u()-it.getObject().u())) - it.decrement() - it.getObject().setPoint(itmiddle.getObject().getPoint()-t*(itmiddle.getObject().u())) ## first vertex - - -class pyBackboneStretcherNoCuspShader(StrokeShader): - def __init__(self, l): - StrokeShader.__init__(self) - self._l = l - def getName(self): - return "pyBackboneStretcherNoCuspShader" - def shade(self, stroke): - it0 = stroke.strokeVerticesBegin() - it1 = StrokeVertexIterator(it0) - it1.increment() - itn = stroke.strokeVerticesEnd() - itn.decrement() - itn_1 = StrokeVertexIterator(itn) - itn_1.decrement() - v0 = it0.getObject() - v1 = it1.getObject() - if((v0.getNature() & Nature.CUSP == 0) and (v1.getNature() & Nature.CUSP == 0)): - p0 = v0.getPoint() - p1 = v1.getPoint() - d1 = p0-p1 - d1 = d1/d1.norm() - newFirst = p0+d1*float(self._l) - v0.setPoint(newFirst) - vn_1 = itn_1.getObject() - vn = itn.getObject() - if((vn.getNature() & Nature.CUSP == 0) and (vn_1.getNature() & Nature.CUSP == 0)): - pn = vn.getPoint() - pn_1 = vn_1.getPoint() - dn = pn-pn_1 - dn = dn/dn.norm() - newLast = pn+dn*float(self._l) - vn.setPoint(newLast) - -normalInfo=Normal2DF0D() -curvatureInfo=Curvature2DAngleF0D() - -def edgestopping(x, sigma): - return exp(- x*x/(2*sigma*sigma)) - -class pyDiffusion2Shader(StrokeShader): - def __init__(self, lambda1, nbIter): - StrokeShader.__init__(self) - self._lambda = lambda1 - self._nbIter = nbIter - self._normalInfo = Normal2DF0D() - self._curvatureInfo = Curvature2DAngleF0D() - def getName(self): - return "pyDiffusionShader" - def shade(self, stroke): - for i in range (1, self._nbIter): - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v=it.getObject() - p1 = v.getPoint() - p2 = self._normalInfo(it.castToInterface0DIterator())*self._lambda*self._curvatureInfo(it.castToInterface0DIterator()) - v.setPoint(p1+p2) - it.increment() - -class pyTipRemoverShader(StrokeShader): - def __init__(self, l): - StrokeShader.__init__(self) - self._l = l - def getName(self): - return "pyTipRemoverShader" - def shade(self, stroke): - originalSize = stroke.strokeVerticesSize() - if(originalSize<4): - return - verticesToRemove = [] - oldAttributes = [] - it = stroke.strokeVerticesBegin() - while(it.isEnd() == 0): - v = it.getObject() - if((v.curvilinearAbscissa() < self._l) or (v.strokeLength()-v.curvilinearAbscissa() < self._l)): - verticesToRemove.append(v) - oldAttributes.append(StrokeAttribute(v.attribute())) - it.increment() - if(originalSize-len(verticesToRemove) < 2): - return - for sv in verticesToRemove: - stroke.RemoveVertex(sv) - stroke.Resample(originalSize) - if(stroke.strokeVerticesSize() != originalSize): - print "pyTipRemover: Warning: resampling problem" - it = stroke.strokeVerticesBegin() - for a in oldAttributes: - if(it.isEnd() == 1): - break - v = it.getObject() - v.setAttribute(a) - it.increment() - -class pyTVertexRemoverShader(StrokeShader): - def getName(self): - return "pyTVertexRemoverShader" - def shade(self, stroke): - if(stroke.strokeVerticesSize() <= 3 ): - return - predTVertex = pyVertexNatureUP0D(Nature.T_VERTEX) - it = stroke.strokeVerticesBegin() - itlast = stroke.strokeVerticesEnd() - itlast.decrement() - if(predTVertex(it) == 1): - stroke.RemoveVertex(it.getObject()) - if(predTVertex(itlast) == 1): - stroke.RemoveVertex(itlast.getObject()) - -class pyExtremitiesOrientationShader(StrokeShader): - def __init__(self, x1,y1,x2=0,y2=0): - StrokeShader.__init__(self) - self._v1 = Vec2(x1,y1) - self._v2 = Vec2(x2,y2) - def getName(self): - return "pyExtremitiesOrientationShader" - def shade(self, stroke): - print self._v1.x(),self._v1.y() - stroke.setBeginningOrientation(self._v1.x(),self._v1.y()) - stroke.setEndingOrientation(self._v2.x(),self._v2.y()) - -class pyHLRShader(StrokeShader): - def getName(self): - return "pyHLRShader" - def shade(self, stroke): - originalSize = stroke.strokeVerticesSize() - if(originalSize<4): - return - it = stroke.strokeVerticesBegin() - invisible = 0 - it2 = StrokeVertexIterator(it) - it2.increment() - fe = getFEdge(it.getObject(), it2.getObject()) - if(fe.qi() != 0): - invisible = 1 - while(it2.isEnd() == 0): - v = it.getObject() - vnext = it2.getObject() - if(v.getNature() & Nature.VIEW_VERTEX): - #if(v.getNature() & Nature.T_VERTEX): - fe = getFEdge(v,vnext) - qi = fe.qi() - if(qi != 0): - invisible = 1 - else: - invisible = 0 - if(invisible == 1): - v.attribute().setVisible(0) - it.increment() - it2.increment() - -class pyTVertexOrientationShader(StrokeShader): - def __init__(self): - StrokeShader.__init__(self) - self._Get2dDirection = Orientation2DF1D() - def getName(self): - return "pyTVertexOrientationShader" - ## finds the TVertex orientation from the TVertex and - ## the previous or next edge - def findOrientation(self, tv, ve): - mateVE = tv.mate(ve) - if((ve.qi() != 0) or (mateVE.qi() != 0)): - ait = AdjacencyIterator(tv,1,0) - winner = None - incoming = 1 - while(ait.isEnd() == 0): - ave = ait.getObject() - if((ave.getId() != ve.getId()) and (ave.getId() != mateVE.getId())): - winner = ait.getObject() - if(ait.isIncoming() == 0): - incoming = 0 - break - ait.increment() - if(winner != None): - if(incoming != 0): - direction = self._Get2dDirection(winner.fedgeB()) - else: - direction = self._Get2dDirection(winner.fedgeA()) - return direction - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it2 = StrokeVertexIterator(it) - it2.increment() - ## case where the first vertex is a TVertex - v = it.getObject() - if(v.getNature() & Nature.T_VERTEX): - tv = v.castToTVertex() - ve = getFEdge(v, it2.getObject()).viewedge() - if(tv != None): - dir = self.findOrientation(tv, ve) - #print dir.x(), dir.y() - v.attribute().setAttributeVec2f("orientation", dir) - while(it2.isEnd() == 0): - vprevious = it.getObject() - v = it2.getObject() - if(v.getNature() & Nature.T_VERTEX): - tv = v.castToTVertex() - ve = getFEdge(vprevious, v).viewedge() - if(tv != None): - dir = self.findOrientation(tv, ve) - #print dir.x(), dir.y() - v.attribute().setAttributeVec2f("orientation", dir) - it.increment() - it2.increment() - ## case where the last vertex is a TVertex - v = it.getObject() - if(v.getNature() & Nature.T_VERTEX): - itPrevious = StrokeVertexIterator(it) - itPrevious.decrement() - tv = v.castToTVertex() - ve = getFEdge(itPrevious.getObject(), v).viewedge() - if(tv != None): - dir = self.findOrientation(tv, ve) - #print dir.x(), dir.y() - v.attribute().setAttributeVec2f("orientation", dir) - -class pySinusDisplacementShader(StrokeShader): - def __init__(self, f, a): - StrokeShader.__init__(self) - self._f = f - self._a = a - self._getNormal = Normal2DF0D() - - def getName(self): - return "pySinusDisplacementShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v = it.getObject() - #print self._getNormal.getName() - n = self._getNormal(it.castToInterface0DIterator()) - p = v.getPoint() - u = v.u() - a = self._a*(1-2*(fabs(u-0.5))) - n = n*a*cos(self._f*u*6.28) - #print n.x(), n.y() - v.setPoint(p+n) - #v.setPoint(v.getPoint()+n*a*cos(f*v.u())) - it.increment() - -class pyPerlinNoise1DShader(StrokeShader): - def __init__(self, freq = 10, amp = 10, oct = 4): - StrokeShader.__init__(self) - self.__noise = FrsNoise() - self.__freq = freq - self.__amp = amp - self.__oct = oct - def getName(self): - return "pyPerlinNoise1DShader" - def shade(self, stroke): - i = randint(0, 50) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v = it.getObject() - nres = self.__noise.turbulence1(i, self.__freq, self.__amp, self.__oct) - v.setPoint(v.getProjectedX() + nres, v.getProjectedY() + nres) - i = i+1 - it.increment() - -class pyPerlinNoise2DShader(StrokeShader): - def __init__(self, freq = 10, amp = 10, oct = 4): - StrokeShader.__init__(self) - self.__noise = FrsNoise() - self.__freq = freq - self.__amp = amp - self.__oct = oct - def getName(self): - return "pyPerlinNoise2DShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - v = it.getObject() - vec = Vec2f(v.getProjectedX(), v.getProjectedY()) - nres = self.__noise.turbulence2(vec, self.__freq, self.__amp, self.__oct) - v.setPoint(v.getProjectedX() + nres, v.getProjectedY() + nres) - it.increment() - -class pyBluePrintCirclesShader(StrokeShader): - def __init__(self, turns = 1): - StrokeShader.__init__(self) - self.__turns = turns - def getName(self): - return "pyBluePrintCirclesShader" - def shade(self, stroke): - p_min = Vec2f(10000, 10000) - p_max = Vec2f(0, 0) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - p = it.getObject().getPoint() - if (p.x() < p_min.x()): - p_min.setX(p.x()) - if (p.x() > p_max.x()): - p_max.setX(p.x()) - if (p.y() < p_min.y()): - p_min.setY(p.y()) - if (p.y() > p_max.y()): - p_max.setY(p.y()) - it.increment() - stroke.Resample(32 * self.__turns) - sv_nb = stroke.strokeVerticesSize() -# print "min :", p_min.x(), p_min.y() # DEBUG -# print "mean :", p_sum.x(), p_sum.y() # DEBUG -# print "max :", p_max.x(), p_max.y() # DEBUG -# print "----------------------" # DEBUG -####################################################### - sv_nb = sv_nb / self.__turns - center = (p_min + p_max) / 2 - radius = (center.x() - p_min.x() + center.y() - p_min.y()) / 2 - p_new = Vec2f() -####################################################### - it = stroke.strokeVerticesBegin() - for j in range(self.__turns): - radius = radius + randint(-3, 3) - center_x = center.x() + randint(-5, 5) - center_y = center.y() + randint(-5, 5) - center.setX(center_x) - center.setY(center_y) - i = 0 - while i < sv_nb: - p_new.setX(center.x() + radius * cos(2 * pi * float(i) / float(sv_nb - 1))) - p_new.setY(center.y() + radius * sin(2 * pi * float(i) / float(sv_nb - 1))) - it.getObject().setPoint(p_new.x(), p_new.y()) - i = i + 1 - it.increment() - while it.isEnd() == 0: - stroke.RemoveVertex(it.getObject()) - it.increment() - - -class pyBluePrintEllipsesShader(StrokeShader): - def __init__(self, turns = 1): - StrokeShader.__init__(self) - self.__turns = turns - def getName(self): - return "pyBluePrintEllipsesShader" - def shade(self, stroke): - p_min = Vec2f(10000, 10000) - p_max = Vec2f(0, 0) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - p = it.getObject().getPoint() - if (p.x() < p_min.x()): - p_min.setX(p.x()) - if (p.x() > p_max.x()): - p_max.setX(p.x()) - if (p.y() < p_min.y()): - p_min.setY(p.y()) - if (p.y() > p_max.y()): - p_max.setY(p.y()) - it.increment() - stroke.Resample(32 * self.__turns) - sv_nb = stroke.strokeVerticesSize() -# print "min :", p_min.x(), p_min.y() # DEBUG -# print "mean :", p_sum.x(), p_sum.y() # DEBUG -# print "max :", p_max.x(), p_max.y() # DEBUG -# print "----------------------" # DEBUG -####################################################### - sv_nb = sv_nb / self.__turns - center = (p_min + p_max) / 2 - radius_x = center.x() - p_min.x() - radius_y = center.y() - p_min.y() - p_new = Vec2f() -####################################################### - it = stroke.strokeVerticesBegin() - for j in range(self.__turns): - radius_x = radius_x + randint(-3, 3) - radius_y = radius_y + randint(-3, 3) - center_x = center.x() + randint(-5, 5) - center_y = center.y() + randint(-5, 5) - center.setX(center_x) - center.setY(center_y) - i = 0 - while i < sv_nb: - p_new.setX(center.x() + radius_x * cos(2 * pi * float(i) / float(sv_nb - 1))) - p_new.setY(center.y() + radius_y * sin(2 * pi * float(i) / float(sv_nb - 1))) - it.getObject().setPoint(p_new.x(), p_new.y()) - i = i + 1 - it.increment() - while it.isEnd() == 0: - stroke.RemoveVertex(it.getObject()) - it.increment() - - -class pyBluePrintSquaresShader(StrokeShader): - def __init__(self, turns = 1, bb_len = 10): - StrokeShader.__init__(self) - self.__turns = turns - self.__bb_len = bb_len - def getName(self): - return "pyBluePrintSquaresShader" - def shade(self, stroke): - p_min = Vec2f(10000, 10000) - p_max = Vec2f(0, 0) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - p = it.getObject().getPoint() - if (p.x() < p_min.x()): - p_min.setX(p.x()) - if (p.x() > p_max.x()): - p_max.setX(p.x()) - if (p.y() < p_min.y()): - p_min.setY(p.y()) - if (p.y() > p_max.y()): - p_max.setY(p.y()) - it.increment() - stroke.Resample(32 * self.__turns) - sv_nb = stroke.strokeVerticesSize() -####################################################### - sv_nb = sv_nb / self.__turns - first = sv_nb / 4 - second = 2 * first - third = 3 * first - fourth = sv_nb - vec_first = Vec2f(p_max.x() - p_min.x() + 2 * self.__bb_len, 0) - vec_second = Vec2f(0, p_max.y() - p_min.y() + 2 * self.__bb_len) - vec_third = vec_first * -1 - vec_fourth = vec_second * -1 - p_first = Vec2f(p_min.x() - self.__bb_len, p_min.y()) - p_second = Vec2f(p_max.x(), p_min.y() - self.__bb_len) - p_third = Vec2f(p_max.x() + self.__bb_len, p_max.y()) - p_fourth = Vec2f(p_min.x(), p_max.y() + self.__bb_len) -####################################################### - it = stroke.strokeVerticesBegin() - visible = 1 - for j in range(self.__turns): - i = 0 - while i < sv_nb: - if i < first: - p_new = p_first + vec_first * float(i)/float(first - 1) - if i == first - 1: - visible = 0 - elif i < second: - p_new = p_second + vec_second * float(i - first)/float(second - first - 1) - if i == second - 1: - visible = 0 - elif i < third: - p_new = p_third + vec_third * float(i - second)/float(third - second - 1) - if i == third - 1: - visible = 0 - else: - p_new = p_fourth + vec_fourth * float(i - third)/float(fourth - third - 1) - if i == fourth - 1: - visible = 0 - it.getObject().setPoint(p_new.x(), p_new.y()) - it.getObject().attribute().setVisible(visible) - if visible == 0: - visible = 1 - i = i + 1 - it.increment() - while it.isEnd() == 0: - stroke.RemoveVertex(it.getObject()) - it.increment() - - -class pyBluePrintDirectedSquaresShader(StrokeShader): - def __init__(self, turns = 1, bb_len = 10, mult = 1): - StrokeShader.__init__(self) - self.__mult = mult - self.__turns = turns - self.__bb_len = 1 + float(bb_len) / 100 - def getName(self): - return "pyBluePrintDirectedSquaresShader" - def shade(self, stroke): - stroke.Resample(32 * self.__turns) - p_mean = Vec2f(0, 0) - p_min = Vec2f(10000, 10000) - p_max = Vec2f(0, 0) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - p = it.getObject().getPoint() - p_mean = p_mean + p -## if (p.x() < p_min.x()): -## p_min.setX(p.x()) -## if (p.x() > p_max.x()): -## p_max.setX(p.x()) -## if (p.y() < p_min.y()): -## p_min.setY(p.y()) -## if (p.y() > p_max.y()): -## p_max.setY(p.y()) - it.increment() - sv_nb = stroke.strokeVerticesSize() - p_mean = p_mean / sv_nb - p_var_xx = 0 - p_var_yy = 0 - p_var_xy = 0 - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - p = it.getObject().getPoint() - p_var_xx = p_var_xx + pow(p.x() - p_mean.x(), 2) - p_var_yy = p_var_yy + pow(p.y() - p_mean.y(), 2) - p_var_xy = p_var_xy + (p.x() - p_mean.x()) * (p.y() - p_mean.y()) - it.increment() - p_var_xx = p_var_xx / sv_nb - p_var_yy = p_var_yy / sv_nb - p_var_xy = p_var_xy / sv_nb -## print p_var_xx, p_var_yy, p_var_xy - trace = p_var_xx + p_var_yy - det = p_var_xx * p_var_yy - p_var_xy * p_var_xy - sqrt_coeff = sqrt(trace * trace - 4 * det) - lambda1 = (trace + sqrt_coeff) / 2 - lambda2 = (trace - sqrt_coeff) / 2 -## print lambda1, lambda2 - theta = atan(2 * p_var_xy / (p_var_xx - p_var_yy)) / 2 -## print theta - if p_var_yy > p_var_xx: - e1 = Vec2f(cos(theta + pi / 2), sin(theta + pi / 2)) * sqrt(lambda1) * self.__mult - e2 = Vec2f(cos(theta + pi), sin(theta + pi)) * sqrt(lambda2) * self.__mult - else: - e1 = Vec2f(cos(theta), sin(theta)) * sqrt(lambda1) * self.__mult - e2 = Vec2f(cos(theta + pi / 2), sin(theta + pi / 2)) * sqrt(lambda2) * self.__mult -####################################################### - sv_nb = sv_nb / self.__turns - first = sv_nb / 4 - second = 2 * first - third = 3 * first - fourth = sv_nb - bb_len1 = self.__bb_len - bb_len2 = 1 + (bb_len1 - 1) * sqrt(lambda1 / lambda2) - p_first = p_mean - e1 - e2 * bb_len2 - p_second = p_mean - e1 * bb_len1 + e2 - p_third = p_mean + e1 + e2 * bb_len2 - p_fourth = p_mean + e1 * bb_len1 - e2 - vec_first = e2 * bb_len2 * 2 - vec_second = e1 * bb_len1 * 2 - vec_third = vec_first * -1 - vec_fourth = vec_second * -1 -####################################################### - it = stroke.strokeVerticesBegin() - visible = 1 - for j in range(self.__turns): - i = 0 - while i < sv_nb: - if i < first: - p_new = p_first + vec_first * float(i)/float(first - 1) - if i == first - 1: - visible = 0 - elif i < second: - p_new = p_second + vec_second * float(i - first)/float(second - first - 1) - if i == second - 1: - visible = 0 - elif i < third: - p_new = p_third + vec_third * float(i - second)/float(third - second - 1) - if i == third - 1: - visible = 0 - else: - p_new = p_fourth + vec_fourth * float(i - third)/float(fourth - third - 1) - if i == fourth - 1: - visible = 0 - it.getObject().setPoint(p_new.x(), p_new.y()) - it.getObject().attribute().setVisible(visible) - if visible == 0: - visible = 1 - i = i + 1 - it.increment() - while it.isEnd() == 0: - stroke.RemoveVertex(it.getObject()) - it.increment() - -class pyModulateAlphaShader(StrokeShader): - def __init__(self, min = 0, max = 1): - StrokeShader.__init__(self) - self.__min = min - self.__max = max - def getName(self): - return "pyModulateAlphaShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - alpha = it.getObject().attribute().getAlpha() - p = it.getObject().getPoint() - alpha = alpha * p.y() / 400 - if alpha < self.__min: - alpha = self.__min - elif alpha > self.__max: - alpha = self.__max - it.getObject().attribute().setAlpha(alpha) - it.increment() - - -## various -class pyDummyShader(StrokeShader): - def getName(self): - return "pyDummyShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - it_end = stroke.strokeVerticesEnd() - while it.isEnd() == 0: - toto = it.castToInterface0DIterator() - att = it.getObject().attribute() - att.setColor(0.3, 0.4, 0.4) - att.setThickness(0, 5) - it.increment() - -class pyDebugShader(StrokeShader): - def getName(self): - return "pyDebugShader" - - def shade(self, stroke): - fe = GetSelectedFEdgeCF() - id1=fe.vertexA().getId() - id2=fe.vertexB().getId() - #print id1.getFirst(), id1.getSecond() - #print id2.getFirst(), id2.getSecond() - it = stroke.strokeVerticesBegin() - found = 0 - foundfirst = 0 - foundsecond = 0 - while it.isEnd() == 0: - cp = it.getObject() - if((cp.A().getId() == id1) or (cp.B().getId() == id1)): - foundfirst = 1 - if((cp.A().getId() == id2) or (cp.B().getId() == id2)): - foundsecond = 1 - if((foundfirst != 0) and (foundsecond != 0)): - found = 1 - break - it.increment() - if(found != 0): - print "The selected Stroke id is: ", stroke.getId().getFirst(), stroke.getId().getSecond() - diff --git a/source/blender/freestyle/style_modules_blender/sketchy_multiple_parameterization.py b/source/blender/freestyle/style_modules_blender/sketchy_multiple_parameterization.py deleted file mode 100755 index 163c891fa90..00000000000 --- a/source/blender/freestyle/style_modules_blender/sketchy_multiple_parameterization.py +++ /dev/null @@ -1,48 +0,0 @@ -# -# Filename : sketchy_multiple_parameterization.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Builds sketchy strokes whose topology relies on a -# parameterization that covers the complete lines (visible+invisible) -# whereas only the visible portions are actually drawn -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - - -Operators.select(QuantitativeInvisibilityUP1D(0)) -## 0: don't restrict to selection -Operators.bidirectionalChain(pySketchyChainSilhouetteIterator(3,0)) -shaders_list = [ - SamplingShader(2), - SpatialNoiseShader(15, 120, 2, 1, 1), - IncreasingThicknessShader(5, 30), - SmoothingShader(100, 0.05, 0, 0.2, 0, 0, 0, 1), - IncreasingColorShader(0,0.2,0,1,0.2,0.7,0.2,1), - TextureAssignerShader(6), - pyHLRShader() - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/sketchy_topology_broken.py b/source/blender/freestyle/style_modules_blender/sketchy_topology_broken.py deleted file mode 100755 index 5c151cfe837..00000000000 --- a/source/blender/freestyle/style_modules_blender/sketchy_topology_broken.py +++ /dev/null @@ -1,89 +0,0 @@ -# -# Filename : sketchy_topology_broken.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : The topology of the strokes is, first, built -# independantly from the 3D topology of objects, -# and, second, so as to chain several times the same ViewEdge. -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -## Backbone stretcher that leaves cusps intact to avoid cracks -class pyBackboneStretcherNoCuspShader(StrokeShader): - def __init__(self, l): - StrokeShader.__init__(self) - self._l = l - def getName(self): - return "pyBackboneStretcherNoCuspShader" - def shade(self, stroke): - it0 = stroke.strokeVerticesBegin() - it1 = StrokeVertexIterator(it0) - it1.increment() - itn = stroke.strokeVerticesEnd() - itn.decrement() - itn_1 = StrokeVertexIterator(itn) - itn_1.decrement() - v0 = it0.getObject() - v1 = it1.getObject() - if((v0.getNature() & Nature.CUSP == 0) and (v1.getNature() & Nature.CUSP == 0)): - p0 = v0.getPoint() - p1 = v1.getPoint() - d1 = p0-p1 - d1 = d1/d1.norm() - newFirst = p0+d1*float(self._l) - v0.setPoint(newFirst) - else: - print "got a v0 cusp" - vn_1 = itn_1.getObject() - vn = itn.getObject() - if((vn.getNature() & Nature.CUSP == 0) and (vn_1.getNature() & Nature.CUSP == 0)): - pn = vn.getPoint() - pn_1 = vn_1.getPoint() - dn = pn-pn_1 - dn = dn/dn.norm() - newLast = pn+dn*float(self._l) - vn.setPoint(newLast) - else: - print "got a vn cusp" - - -Operators.select(QuantitativeInvisibilityUP1D(0)) -## Chain 3 times each ViewEdge indpendantly from the -## initial objects topology -Operators.bidirectionalChain(pySketchyChainingIterator(3)) -shaders_list = [ - SamplingShader(4), - SpatialNoiseShader(6, 120, 2, 1, 1), - IncreasingThicknessShader(4, 10), - SmoothingShader(100, 0.1, 0, 0.2, 0, 0, 0, 1), - pyBackboneStretcherNoCuspShader(20), - #ConstantColorShader(0.0,0.0,0.0) - IncreasingColorShader(0.2,0.2,0.2,1,0.5,0.5,0.5,1), - #IncreasingColorShader(1,0,0,1,0,1,0,1), - TextureAssignerShader(4) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/sketchy_topology_preserved.py b/source/blender/freestyle/style_modules_blender/sketchy_topology_preserved.py deleted file mode 100755 index 85e11af38b9..00000000000 --- a/source/blender/freestyle/style_modules_blender/sketchy_topology_preserved.py +++ /dev/null @@ -1,49 +0,0 @@ -# -# Filename : sketchy_topology_preserved.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : The topology of the strokes is built -# so as to chain several times the same ViewEdge. -# The topology of the objects is preserved -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from PredicatesU1D import * -from shaders import * - -upred = QuantitativeInvisibilityUP1D(0) -Operators.select(upred) -Operators.bidirectionalChain(pySketchyChainSilhouetteIterator(3,1)) -shaders_list = [ - SamplingShader(4), - SpatialNoiseShader(20, 220, 2, 1, 1), - IncreasingThicknessShader(4, 8), - SmoothingShader(300, 0.05, 0, 0.2, 0, 0, 0, 0.5), - ConstantColorShader(0.6,0.2,0.0), - TextureAssignerShader(4), - ] - -Operators.create(TrueUP1D(), shaders_list) - diff --git a/source/blender/freestyle/style_modules_blender/split_at_highest_2d_curvatures.py b/source/blender/freestyle/style_modules_blender/split_at_highest_2d_curvatures.py deleted file mode 100755 index 52cc10a9c60..00000000000 --- a/source/blender/freestyle/style_modules_blender/split_at_highest_2d_curvatures.py +++ /dev/null @@ -1,41 +0,0 @@ -# -# Filename : split_at_highest_2d_curvature.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the visible lines (chaining follows same nature lines) -# (most basic style module) -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU0D import * -from PredicatesU1D import * -from Functions0D import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -func = pyInverseCurvature2DAngleF0D() -Operators.recursiveSplit(func, pyParameterUP0D(0.4,0.6), NotUP1D(pyHigherLengthUP1D(100)), 2) -shaders_list = [ConstantThicknessShader(10), IncreasingColorShader(1,0,0,1,0,1,0,1), TextureAssignerShader(3)] -Operators.create(TrueUP1D(), shaders_list) - diff --git a/source/blender/freestyle/style_modules_blender/split_at_tvertices.py b/source/blender/freestyle/style_modules_blender/split_at_tvertices.py deleted file mode 100755 index 78f781dd290..00000000000 --- a/source/blender/freestyle/style_modules_blender/split_at_tvertices.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : split_at_tvertices.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws strokes that starts and stops at Tvertices (visible or not) -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from PredicatesU0D import * -from Functions0D import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -start = pyVertexNatureUP0D(Nature.T_VERTEX) -## use the same predicate to decide where to start and where to stop -## the strokes: -Operators.sequentialSplit(start, start, 10) -shaders_list = [ConstantThicknessShader(5), IncreasingColorShader(1,0,0,1,0,1,0,1), TextureAssignerShader(3)] -Operators.create(TrueUP1D(), shaders_list) - diff --git a/source/blender/freestyle/style_modules_blender/stroke_texture.py b/source/blender/freestyle/style_modules_blender/stroke_texture.py deleted file mode 100755 index afebbe30a90..00000000000 --- a/source/blender/freestyle/style_modules_blender/stroke_texture.py +++ /dev/null @@ -1,43 +0,0 @@ -# -# Filename : stroke_texture.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws textured strokes (illustrate the StrokeTextureShader shader) -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * -from ChainingIterators import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - SamplingShader(3), - BezierCurveShader(4), - StrokeTextureShader("washbrushAlpha.bmp", Stroke.DRY_MEDIUM, 1), - ConstantThicknessShader(40), - ConstantColorShader(0,0,0,1), - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/suggestive.py b/source/blender/freestyle/style_modules_blender/suggestive.py deleted file mode 100755 index 39d8515ed6c..00000000000 --- a/source/blender/freestyle/style_modules_blender/suggestive.py +++ /dev/null @@ -1,43 +0,0 @@ -# -# Filename : suggestive.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Draws the suggestive contours. -# ***** The suggestive contours must be enabled -# in the options dialog ***** -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from PredicatesU1D import * -from shaders import * - -upred = AndUP1D(pyNatureUP1D(Nature.SUGGESTIVE_CONTOUR), QuantitativeInvisibilityUP1D(0)) -Operators.select(upred) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred)) -shaders_list = [ - IncreasingThicknessShader(1, 3), - ConstantColorShader(0.2,0.2,0.2, 1) - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/thickness_fof_depth_discontinuity.py b/source/blender/freestyle/style_modules_blender/thickness_fof_depth_discontinuity.py deleted file mode 100755 index 21f6c7bdf35..00000000000 --- a/source/blender/freestyle/style_modules_blender/thickness_fof_depth_discontinuity.py +++ /dev/null @@ -1,62 +0,0 @@ -# -# Filename : thickness_fof_depth_discontinuity.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Assigns to strokes a thickness that depends on the depth discontinuity -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -class pyDepthDiscontinuityThicknessShader(StrokeShader): - def __init__(self, min, max): - StrokeShader.__init__(self) - self.__min = float(min) - self.__max = float(max) - self.__func = ZDiscontinuityF0D() - def getName(self): - return "pyDepthDiscontinuityThicknessShader" - def shade(self, stroke): - it = stroke.strokeVerticesBegin() - z_min=0.0 - z_max=1.0 - a = (self.__max - self.__min)/(z_max-z_min) - b = (self.__min*z_max-self.__max*z_min)/(z_max-z_min) - it = stroke.strokeVerticesBegin() - while it.isEnd() == 0: - z = self.__func(it.castToInterface0DIterator()) - thickness = a*z+b - it.getObject().attribute().setThickness(thickness, thickness) - it.increment() - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - SamplingShader(1), - ConstantThicknessShader(3), - ConstantColorShader(0.0,0.0,0.0), - pyDepthDiscontinuityThicknessShader(0.8, 6) - ] -Operators.create(TrueUP1D(), shaders_list)
\ No newline at end of file diff --git a/source/blender/freestyle/style_modules_blender/tipremover.py b/source/blender/freestyle/style_modules_blender/tipremover.py deleted file mode 100755 index 3e495b7d332..00000000000 --- a/source/blender/freestyle/style_modules_blender/tipremover.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : tipremover.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Removes strokes extremities -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - - -from freestyle_init import * -from logical_operators import * -from ChainingIterators import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - SamplingShader(5), - ConstantThicknessShader(3), - ConstantColorShader(0,0,0), - TipRemoverShader(20) - ] -Operators.create(TrueUP1D(), shaders_list)
\ No newline at end of file diff --git a/source/blender/freestyle/style_modules_blender/tvertex_remover.py b/source/blender/freestyle/style_modules_blender/tvertex_remover.py deleted file mode 100755 index c328f4c98ec..00000000000 --- a/source/blender/freestyle/style_modules_blender/tvertex_remover.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# Filename : tvertex_remover.py -# Author : Stephane Grabli -# Date : 04/08/2005 -# Purpose : Removes TVertices -# -############################################################################# -# -# Copyright (C) : Please refer to the COPYRIGHT file distributed -# with this source distribution. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################# - - -from freestyle_init import * -from logical_operators import * -from PredicatesB1D import * -from shaders import * - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0))) -shaders_list = [ - IncreasingThicknessShader(3, 5), - ConstantColorShader(0.2,0.2,0.2, 1), - SamplingShader(10.0), - pyTVertexRemoverShader() - ] -Operators.create(TrueUP1D(), shaders_list) diff --git a/source/blender/freestyle/style_modules_blender/uniformpruning_zsort.py b/source/blender/freestyle/style_modules_blender/uniformpruning_zsort.py deleted file mode 100755 index 4b1a8bef9df..00000000000 --- a/source/blender/freestyle/style_modules_blender/uniformpruning_zsort.py +++ /dev/null @@ -1,40 +0,0 @@ -from freestyle_init import * -from logical_operators import * -from PredicatesU1D import * -from PredicatesU0D import * -from PredicatesB1D import * -from Functions0D import * -from Functions1D import * -from shaders import * - -class pyDensityUP1D(UnaryPredicate1D): - def __init__(self,wsize,threshold, integration = IntegrationType.MEAN, sampling=2.0): - UnaryPredicate1D.__init__(self) - self._wsize = wsize - self._threshold = threshold - self._integration = integration - self._func = DensityF1D(self._wsize, self._integration, sampling) - - def getName(self): - return "pyDensityUP1D" - - def __call__(self, inter): - d = self._func(inter) - print "For Chain ", inter.getId().getFirst(), inter.getId().getSecond(), "density is ", d - if(d < self._threshold): - return 1 - return 0 - -Operators.select(QuantitativeInvisibilityUP1D(0)) -Operators.bidirectionalChain(ChainSilhouetteIterator()) -#Operators.sequentialSplit(pyVertexNatureUP0D(Nature.VIEW_VERTEX), 2) -Operators.sort(pyZBP1D()) -shaders_list = [ - StrokeTextureShader("smoothAlpha.bmp", Stroke.OPAQUE_MEDIUM, 0), - ConstantThicknessShader(3), - SamplingShader(5.0), - ConstantColorShader(0,0,0,1) - ] -Operators.create(pyDensityUP1D(2,0.05, IntegrationType.MEAN,4), shaders_list) -#Operators.create(pyDensityFunctorUP1D(8,0.03, pyGetInverseProjectedZF1D(), 0,1, IntegrationType.MEAN), shaders_list) - diff --git a/source/blender/freestyle/style_modules_blender/vector.py b/source/blender/freestyle/style_modules_blender/vector.py deleted file mode 100755 index 039f262546b..00000000000 --- a/source/blender/freestyle/style_modules_blender/vector.py +++ /dev/null @@ -1,241 +0,0 @@ -# This module defines 3d geometrical vectors with the standard -# operations on them. -# -# Written by: Konrad Hinsen -# Last revision: 1996-1-26 -# - -"""This module defines three-dimensional geometrical vectors. Vectors support -the usual mathematical operations (v1, v2: vectors, s: scalar): - v1+v2 addition - v1-v2 subtraction - v1*v2 scalar product - s*v1 multiplication with a scalar - v1/s division by a scalar - v1.cross(v2) cross product - v1.length() length - v1.normal() normal vector in direction of v1 - v1.angle(v2) angle between two vectors - v1.x(), v1[0] first element - v1.y(), v1[1] second element - v1.z(), v1[2] third element - -The module offers the following items for export: - Vec3D(x,y,z) the constructor for vectors - isVector(x) a type check function - ex, ey, ez unit vectors along the x-, y-, and z-axes (predefined constants) - -Note: vector elements can be any kind of numbers on which the operations -addition, subtraction, multiplication, division, comparison, sqrt, and acos -are defined. Integer elements are treated as floating point elements. -""" - -import math, types - -class Vec3: - - isVec3 = 1 - - def __init__(self, x=0., y=0., z=0.): - self.data = [x,y,z] - - def __repr__(self): - return 'Vec3(%s,%s,%s)' % (`self.data[0]`,\ - `self.data[1]`,`self.data[2]`) - - def __str__(self): - return `self.data` - - def __add__(self, other): - return Vec3(self.data[0]+other.data[0],\ - self.data[1]+other.data[1],self.data[2]+other.data[2]) - __radd__ = __add__ - - def __neg__(self): - return Vec3(-self.data[0], -self.data[1], -self.data[2]) - - def __sub__(self, other): - return Vec3(self.data[0]-other.data[0],\ - self.data[1]-other.data[1],self.data[2]-other.data[2]) - - def __rsub__(self, other): - return Vec3(other.data[0]-self.data[0],\ - other.data[1]-self.data[1],other.data[2]-self.data[2]) - - def __mul__(self, other): - if isVec3(other): - return reduce(lambda a,b: a+b, - map(lambda a,b: a*b, self.data, other.data)) - else: - return Vec3(self.data[0]*other, self.data[1]*other, - self.data[2]*other) - - def __rmul__(self, other): - if isVec3(other): - return reduce(lambda a,b: a+b, - map(lambda a,b: a*b, self.data, other.data)) - else: - return Vec3(other*self.data[0], other*self.data[1], - other*self.data[2]) - - def __div__(self, other): - if isVec3(other): - raise TypeError, "Can't divide by a vector" - else: - return Vec3(_div(self.data[0],other), _div(self.data[1],other), - _div(self.data[2],other)) - - def __rdiv__(self, other): - raise TypeError, "Can't divide by a vector" - - def __cmp__(self, other): - return cmp(self.data[0],other.data[0]) \ - or cmp(self.data[1],other.data[1]) \ - or cmp(self.data[2],other.data[2]) - - def __getitem__(self, index): - return self.data[index] - - def x(self): - return self.data[0] - def y(self): - return self.data[1] - def z(self): - return self.data[2] - - def length(self): - return math.sqrt(self*self) - - def normal(self): - len = self.length() - if len == 0: - raise ZeroDivisionError, "Can't normalize a zero-length vector" - return self/len - - def cross(self, other): - if not isVec3(other): - raise TypeError, "Cross product with non-vector" - return Vec3(self.data[1]*other.data[2]-self.data[2]*other.data[1], - self.data[2]*other.data[0]-self.data[0]*other.data[2], - self.data[0]*other.data[1]-self.data[1]*other.data[0]) - - def angle(self, other): - if not isVec3(other): - raise TypeError, "Angle between vector and non-vector" - cosa = (self*other)/(self.length()*other.length()) - cosa = max(-1.,min(1.,cosa)) - return math.acos(cosa) - - -class Vec2: - - isVec2 = 1 - - def __init__(self, x=0., y=0.): - self.data = [x,y] - - def __repr__(self): - return 'Vec2(%s,%s,%s)' % (`self.data[0]`,\ - `self.data[1]`) - - def __str__(self): - return `self.data` - - def __add__(self, other): - return Vec2(self.data[0]+other.data[0],\ - self.data[1]+other.data[1]) - __radd__ = __add__ - - def __neg__(self): - return Vec2(-self.data[0], -self.data[1]) - - def __sub__(self, other): - return Vec2(self.data[0]-other.data[0],\ - self.data[1]-other.data[1]) - - def __rsub__(self, other): - return Vec2(other.data[0]-self.data[0],\ - other.data[1]-self.data[1]) - - def __mul__(self, other): - if isVec2(other): - return reduce(lambda a,b: a+b, - map(lambda a,b: a*b, self.data, other.data)) - else: - return Vec2(self.data[0]*other, self.data[1]*other) - - def __rmul__(self, other): - if isVec2(other): - return reduce(lambda a,b: a+b, - map(lambda a,b: a*b, self.data, other.data)) - else: - return Vec2(other*self.data[0], other*self.data[1]) - - def __div__(self, other): - if isVec2(other): - raise TypeError, "Can't divide by a vector" - else: - return Vec2(_div(self.data[0],other), _div(self.data[1],other)) - - def __rdiv__(self, other): - raise TypeError, "Can't divide by a vector" - - def __cmp__(self, other): - return cmp(self.data[0],other.data[0]) \ - or cmp(self.data[1],other.data[1]) - - def __getitem__(self, index): - return self.data[index] - - def x(self): - return self.data[0] - def y(self): - return self.data[1] - - def length(self): - return math.sqrt(self*self) - - def normal(self): - len = self.length() - if len == 0: - raise ZeroDivisionError, "Can't normalize a zero-length vector" - return self/len - - #def cross(self, other): -# if not isVec2(other): -# raise TypeError, "Cross product with non-vector" -# return Vec2(self.data[1]*other.data[2]-self.data[2]*other.data[1], -# self.data[2]*other.data[0]-self.data[0]*other.data[2], -# self.data[0]*other.data[1]-self.data[1]*other.data[0]) - - def angle(self, other): - if not isVec2(other): - raise TypeError, "Angle between vector and non-vector" - cosa = (self*other)/(self.length()*other.length()) - cosa = max(-1.,min(1.,cosa)) - return math.acos(cosa) - - - -# Type check - -def isVec3(x): - return hasattr(x,'isVec3') - -def isVec2(x): - return hasattr(x,'isVec2') - -# "Correct" division for arbitrary number types - -def _div(a,b): - if type(a) == types.IntType and type(b) == types.IntType: - return float(a)/float(b) - else: - return a/b - - -# Some useful constants - -ex = Vec3(1.,0.,0.) -ey = Vec3(0.,1.,0.) -ez = Vec3(0.,0.,1.) diff --git a/source/blender/freestyle/style_modules/ChainingIterators.py b/source/blender/freestyle/style_modules_old/ChainingIterators.py index 60255c3d094..60255c3d094 100755 --- a/source/blender/freestyle/style_modules/ChainingIterators.py +++ b/source/blender/freestyle/style_modules_old/ChainingIterators.py diff --git a/source/blender/freestyle/style_modules/Functions0D.py b/source/blender/freestyle/style_modules_old/Functions0D.py index c1ba591c789..c1ba591c789 100755 --- a/source/blender/freestyle/style_modules/Functions0D.py +++ b/source/blender/freestyle/style_modules_old/Functions0D.py diff --git a/source/blender/freestyle/style_modules/Functions1D.py b/source/blender/freestyle/style_modules_old/Functions1D.py index e2505466aae..e2505466aae 100755 --- a/source/blender/freestyle/style_modules/Functions1D.py +++ b/source/blender/freestyle/style_modules_old/Functions1D.py diff --git a/source/blender/freestyle/style_modules/PredicatesB1D.py b/source/blender/freestyle/style_modules_old/PredicatesB1D.py index dfc895e8d9b..dfc895e8d9b 100755 --- a/source/blender/freestyle/style_modules/PredicatesB1D.py +++ b/source/blender/freestyle/style_modules_old/PredicatesB1D.py diff --git a/source/blender/freestyle/style_modules/PredicatesU0D.py b/source/blender/freestyle/style_modules_old/PredicatesU0D.py index 10c4b85a6cf..10c4b85a6cf 100755 --- a/source/blender/freestyle/style_modules/PredicatesU0D.py +++ b/source/blender/freestyle/style_modules_old/PredicatesU0D.py diff --git a/source/blender/freestyle/style_modules/PredicatesU1D.py b/source/blender/freestyle/style_modules_old/PredicatesU1D.py index 18e9686f9df..18e9686f9df 100755 --- a/source/blender/freestyle/style_modules/PredicatesU1D.py +++ b/source/blender/freestyle/style_modules_old/PredicatesU1D.py diff --git a/source/blender/freestyle/style_modules/anisotropic_diffusion.py b/source/blender/freestyle/style_modules_old/anisotropic_diffusion.py index 688554dc92e..688554dc92e 100755 --- a/source/blender/freestyle/style_modules/anisotropic_diffusion.py +++ b/source/blender/freestyle/style_modules_old/anisotropic_diffusion.py diff --git a/source/blender/freestyle/style_modules/apriori_and_causal_density.py b/source/blender/freestyle/style_modules_old/apriori_and_causal_density.py index e6bcf046bd0..e6bcf046bd0 100755 --- a/source/blender/freestyle/style_modules/apriori_and_causal_density.py +++ b/source/blender/freestyle/style_modules_old/apriori_and_causal_density.py diff --git a/source/blender/freestyle/style_modules/apriori_density.py b/source/blender/freestyle/style_modules_old/apriori_density.py index 77d41e7d04b..77d41e7d04b 100755 --- a/source/blender/freestyle/style_modules/apriori_density.py +++ b/source/blender/freestyle/style_modules_old/apriori_density.py diff --git a/source/blender/freestyle/style_modules/backbone_stretcher.py b/source/blender/freestyle/style_modules_old/backbone_stretcher.py index db17f2574ff..db17f2574ff 100755 --- a/source/blender/freestyle/style_modules/backbone_stretcher.py +++ b/source/blender/freestyle/style_modules_old/backbone_stretcher.py diff --git a/source/blender/freestyle/style_modules/blueprint_circles.py b/source/blender/freestyle/style_modules_old/blueprint_circles.py index 5eca00ff4ac..5eca00ff4ac 100755 --- a/source/blender/freestyle/style_modules/blueprint_circles.py +++ b/source/blender/freestyle/style_modules_old/blueprint_circles.py diff --git a/source/blender/freestyle/style_modules/blueprint_ellipses.py b/source/blender/freestyle/style_modules_old/blueprint_ellipses.py index 4e34310b3ca..4e34310b3ca 100755 --- a/source/blender/freestyle/style_modules/blueprint_ellipses.py +++ b/source/blender/freestyle/style_modules_old/blueprint_ellipses.py diff --git a/source/blender/freestyle/style_modules/blueprint_squares.py b/source/blender/freestyle/style_modules_old/blueprint_squares.py index 926f882456f..926f882456f 100755 --- a/source/blender/freestyle/style_modules/blueprint_squares.py +++ b/source/blender/freestyle/style_modules_old/blueprint_squares.py diff --git a/source/blender/freestyle/style_modules/cartoon.py b/source/blender/freestyle/style_modules_old/cartoon.py index 0c49f854f7d..0c49f854f7d 100755 --- a/source/blender/freestyle/style_modules/cartoon.py +++ b/source/blender/freestyle/style_modules_old/cartoon.py diff --git a/source/blender/freestyle/style_modules/contour.py b/source/blender/freestyle/style_modules_old/contour.py index b7c97064cae..b7c97064cae 100755 --- a/source/blender/freestyle/style_modules/contour.py +++ b/source/blender/freestyle/style_modules_old/contour.py diff --git a/source/blender/freestyle/style_modules/curvature2d.py b/source/blender/freestyle/style_modules_old/curvature2d.py index 587c53071d0..587c53071d0 100755 --- a/source/blender/freestyle/style_modules/curvature2d.py +++ b/source/blender/freestyle/style_modules_old/curvature2d.py diff --git a/source/blender/freestyle/style_modules/external_contour.py b/source/blender/freestyle/style_modules_old/external_contour.py index ae49e18981e..ae49e18981e 100755 --- a/source/blender/freestyle/style_modules/external_contour.py +++ b/source/blender/freestyle/style_modules_old/external_contour.py diff --git a/source/blender/freestyle/style_modules/external_contour_sketchy.py b/source/blender/freestyle/style_modules_old/external_contour_sketchy.py index 1c3ffe94e1b..1c3ffe94e1b 100755 --- a/source/blender/freestyle/style_modules/external_contour_sketchy.py +++ b/source/blender/freestyle/style_modules_old/external_contour_sketchy.py diff --git a/source/blender/freestyle/style_modules/external_contour_smooth.py b/source/blender/freestyle/style_modules_old/external_contour_smooth.py index 59633a25063..59633a25063 100755 --- a/source/blender/freestyle/style_modules/external_contour_smooth.py +++ b/source/blender/freestyle/style_modules_old/external_contour_smooth.py diff --git a/source/blender/freestyle/style_modules/extra-lines.sml b/source/blender/freestyle/style_modules_old/extra-lines.sml index c63cd40945d..c63cd40945d 100755 --- a/source/blender/freestyle/style_modules/extra-lines.sml +++ b/source/blender/freestyle/style_modules_old/extra-lines.sml diff --git a/source/blender/freestyle/style_modules/haloing.py b/source/blender/freestyle/style_modules_old/haloing.py index b64b2d967f7..b64b2d967f7 100755 --- a/source/blender/freestyle/style_modules/haloing.py +++ b/source/blender/freestyle/style_modules_old/haloing.py diff --git a/source/blender/freestyle/style_modules/ignore_small_occlusions.py b/source/blender/freestyle/style_modules_old/ignore_small_occlusions.py index 98c318a3757..98c318a3757 100755 --- a/source/blender/freestyle/style_modules/ignore_small_occlusions.py +++ b/source/blender/freestyle/style_modules_old/ignore_small_occlusions.py diff --git a/source/blender/freestyle/style_modules/invisible_lines.py b/source/blender/freestyle/style_modules_old/invisible_lines.py index 5cce741e91e..5cce741e91e 100755 --- a/source/blender/freestyle/style_modules/invisible_lines.py +++ b/source/blender/freestyle/style_modules_old/invisible_lines.py diff --git a/source/blender/freestyle/style_modules/japanese_bigbrush.py b/source/blender/freestyle/style_modules_old/japanese_bigbrush.py index e0985497e2c..e0985497e2c 100755 --- a/source/blender/freestyle/style_modules/japanese_bigbrush.py +++ b/source/blender/freestyle/style_modules_old/japanese_bigbrush.py diff --git a/source/blender/freestyle/style_modules/logical_operators.py b/source/blender/freestyle/style_modules_old/logical_operators.py index 63a0a9f9ed8..63a0a9f9ed8 100755 --- a/source/blender/freestyle/style_modules/logical_operators.py +++ b/source/blender/freestyle/style_modules_old/logical_operators.py diff --git a/source/blender/freestyle/style_modules/long_anisotropically_dense.py b/source/blender/freestyle/style_modules_old/long_anisotropically_dense.py index 4bfeedf257f..4bfeedf257f 100755 --- a/source/blender/freestyle/style_modules/long_anisotropically_dense.py +++ b/source/blender/freestyle/style_modules_old/long_anisotropically_dense.py diff --git a/source/blender/freestyle/style_modules/multiple_parameterization.py b/source/blender/freestyle/style_modules_old/multiple_parameterization.py index ff04c5930c5..ff04c5930c5 100755 --- a/source/blender/freestyle/style_modules/multiple_parameterization.py +++ b/source/blender/freestyle/style_modules_old/multiple_parameterization.py diff --git a/source/blender/freestyle/style_modules/nature.py b/source/blender/freestyle/style_modules_old/nature.py index 8cfd480ba3b..8cfd480ba3b 100755 --- a/source/blender/freestyle/style_modules/nature.py +++ b/source/blender/freestyle/style_modules_old/nature.py diff --git a/source/blender/freestyle/style_modules/near_lines.py b/source/blender/freestyle/style_modules_old/near_lines.py index b132f6b5802..b132f6b5802 100755 --- a/source/blender/freestyle/style_modules/near_lines.py +++ b/source/blender/freestyle/style_modules_old/near_lines.py diff --git a/source/blender/freestyle/style_modules/occluded_by_specific_object.py b/source/blender/freestyle/style_modules_old/occluded_by_specific_object.py index 96f431c2c4e..96f431c2c4e 100755 --- a/source/blender/freestyle/style_modules/occluded_by_specific_object.py +++ b/source/blender/freestyle/style_modules_old/occluded_by_specific_object.py diff --git a/source/blender/freestyle/style_modules/polygonalize.py b/source/blender/freestyle/style_modules_old/polygonalize.py index 81d47178404..81d47178404 100755 --- a/source/blender/freestyle/style_modules/polygonalize.py +++ b/source/blender/freestyle/style_modules_old/polygonalize.py diff --git a/source/blender/freestyle/style_modules/qi0.py b/source/blender/freestyle/style_modules_old/qi0.py index f742b777738..f742b777738 100755 --- a/source/blender/freestyle/style_modules/qi0.py +++ b/source/blender/freestyle/style_modules_old/qi0.py diff --git a/source/blender/freestyle/style_modules/qi0_not_external_contour.py b/source/blender/freestyle/style_modules_old/qi0_not_external_contour.py index 047ab7e1a8e..047ab7e1a8e 100755 --- a/source/blender/freestyle/style_modules/qi0_not_external_contour.py +++ b/source/blender/freestyle/style_modules_old/qi0_not_external_contour.py diff --git a/source/blender/freestyle/style_modules/qi1.py b/source/blender/freestyle/style_modules_old/qi1.py index 234d196f15e..234d196f15e 100755 --- a/source/blender/freestyle/style_modules/qi1.py +++ b/source/blender/freestyle/style_modules_old/qi1.py diff --git a/source/blender/freestyle/style_modules/qi2.py b/source/blender/freestyle/style_modules_old/qi2.py index 8e45914c619..8e45914c619 100755 --- a/source/blender/freestyle/style_modules/qi2.py +++ b/source/blender/freestyle/style_modules_old/qi2.py diff --git a/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py b/source/blender/freestyle/style_modules_old/sequentialsplit_sketchy.py index b33cd5d4043..b33cd5d4043 100755 --- a/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py +++ b/source/blender/freestyle/style_modules_old/sequentialsplit_sketchy.py diff --git a/source/blender/freestyle/style_modules/shaders.py b/source/blender/freestyle/style_modules_old/shaders.py index 208dfe91bb6..208dfe91bb6 100755 --- a/source/blender/freestyle/style_modules/shaders.py +++ b/source/blender/freestyle/style_modules_old/shaders.py diff --git a/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py b/source/blender/freestyle/style_modules_old/sketchy_multiple_parameterization.py index 69e6f11751d..69e6f11751d 100755 --- a/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py +++ b/source/blender/freestyle/style_modules_old/sketchy_multiple_parameterization.py diff --git a/source/blender/freestyle/style_modules/sketchy_topology_broken.py b/source/blender/freestyle/style_modules_old/sketchy_topology_broken.py index 7383347a0fb..7383347a0fb 100755 --- a/source/blender/freestyle/style_modules/sketchy_topology_broken.py +++ b/source/blender/freestyle/style_modules_old/sketchy_topology_broken.py diff --git a/source/blender/freestyle/style_modules/sketchy_topology_preserved.py b/source/blender/freestyle/style_modules_old/sketchy_topology_preserved.py index bc56a272bd5..bc56a272bd5 100755 --- a/source/blender/freestyle/style_modules/sketchy_topology_preserved.py +++ b/source/blender/freestyle/style_modules_old/sketchy_topology_preserved.py diff --git a/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py b/source/blender/freestyle/style_modules_old/split_at_highest_2d_curvatures.py index 0f42080292b..0f42080292b 100755 --- a/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py +++ b/source/blender/freestyle/style_modules_old/split_at_highest_2d_curvatures.py diff --git a/source/blender/freestyle/style_modules/split_at_tvertices.py b/source/blender/freestyle/style_modules_old/split_at_tvertices.py index dde586fd1f0..dde586fd1f0 100755 --- a/source/blender/freestyle/style_modules/split_at_tvertices.py +++ b/source/blender/freestyle/style_modules_old/split_at_tvertices.py diff --git a/source/blender/freestyle/style_modules/stroke_texture.py b/source/blender/freestyle/style_modules_old/stroke_texture.py index d6c753bf9e6..d6c753bf9e6 100755 --- a/source/blender/freestyle/style_modules/stroke_texture.py +++ b/source/blender/freestyle/style_modules_old/stroke_texture.py diff --git a/source/blender/freestyle/style_modules/suggestive.py b/source/blender/freestyle/style_modules_old/suggestive.py index 99a419ca23f..99a419ca23f 100755 --- a/source/blender/freestyle/style_modules/suggestive.py +++ b/source/blender/freestyle/style_modules_old/suggestive.py diff --git a/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py b/source/blender/freestyle/style_modules_old/thickness_fof_depth_discontinuity.py index 06687fd9a00..06687fd9a00 100755 --- a/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py +++ b/source/blender/freestyle/style_modules_old/thickness_fof_depth_discontinuity.py diff --git a/source/blender/freestyle/style_modules/tipremover.py b/source/blender/freestyle/style_modules_old/tipremover.py index b87eb7a573a..b87eb7a573a 100755 --- a/source/blender/freestyle/style_modules/tipremover.py +++ b/source/blender/freestyle/style_modules_old/tipremover.py diff --git a/source/blender/freestyle/style_modules/tvertex_remover.py b/source/blender/freestyle/style_modules_old/tvertex_remover.py index b55754381f7..b55754381f7 100755 --- a/source/blender/freestyle/style_modules/tvertex_remover.py +++ b/source/blender/freestyle/style_modules_old/tvertex_remover.py diff --git a/source/blender/freestyle/style_modules/uniformpruning_zsort.py b/source/blender/freestyle/style_modules_old/uniformpruning_zsort.py index 7e719417af0..7e719417af0 100755 --- a/source/blender/freestyle/style_modules/uniformpruning_zsort.py +++ b/source/blender/freestyle/style_modules_old/uniformpruning_zsort.py diff --git a/source/blender/freestyle/style_modules/vector.py b/source/blender/freestyle/style_modules_old/vector.py index 039f262546b..039f262546b 100755 --- a/source/blender/freestyle/style_modules/vector.py +++ b/source/blender/freestyle/style_modules_old/vector.py |