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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMaxime Curioni <maxime.curioni@gmail.com>2008-09-29 19:50:50 +0400
committerMaxime Curioni <maxime.curioni@gmail.com>2008-09-29 19:50:50 +0400
commit7e3a4c84e42b92c11e61a7102d29c4aa9b61291d (patch)
tree41f261cca99519121a7368ce0a521611b576f81a /source
parente71af35f58d63a1d2c3dabdc72f1742dcbb505bd (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')
-rwxr-xr-xsource/blender/freestyle/intern/app_blender/AppConfig.cpp14
-rw-r--r--source/blender/freestyle/intern/app_blender/api.cpp2
-rwxr-xr-xsource/blender/freestyle/misc/Config.pri176
-rwxr-xr-xsource/blender/freestyle/misc/Freestyle-vc7-debug.sln113
-rwxr-xr-xsource/blender/freestyle/misc/Freestyle-vc7-release.sln111
-rwxr-xr-xsource/blender/freestyle/misc/Freestyle-vc8-debug.sln87
-rwxr-xr-xsource/blender/freestyle/misc/Freestyle-vc8-release.sln87
-rwxr-xr-xsource/blender/freestyle/misc/Makefile.pro18
-rwxr-xr-xsource/blender/freestyle/misc/build_bundle.macosx.py183
-rwxr-xr-xsource/blender/freestyle/misc/libconfig.pri110
-rwxr-xr-xsource/blender/freestyle/misc/makedsp.vcnet.debug.bat25
-rwxr-xr-xsource/blender/freestyle/misc/makedsp.vcnet.release.bat25
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/ChainingIterators.py739
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/Functions0D.py81
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/Functions1D.py45
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/PredicatesB1D.py70
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/PredicatesU0D.py103
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/PredicatesU1D.py381
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/anisotropic_diffusion.py75
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/apriori_and_causal_density.py45
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/apriori_density.py43
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/backbone_stretcher.py36
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/blueprint_circles.py46
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/blueprint_ellipses.py46
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/blueprint_squares.py45
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/cartoon.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/contour.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/curvature2d.py60
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/external_contour.py43
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/external_contour_sketchy.py48
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/external_contour_smooth.py44
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/extra-lines.sml3
-rw-r--r--source/blender/freestyle/style_modules_blender/freestyle_init.py459
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/haloing.py50
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/ignore_small_occlusions.py41
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/invisible_lines.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/japanese_bigbrush.py60
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/logical_operators.py36
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/long_anisotropically_dense.py81
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/multiple_parameterization.py51
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/nature.py43
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/near_lines.py44
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/occluded_by_specific_object.py45
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/polygonalize.py40
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/qi0.py41
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/qi0_not_external_contour.py43
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/qi1.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/qi2.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/sequentialsplit_sketchy.py68
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/shaders.py1288
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/sketchy_multiple_parameterization.py48
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/sketchy_topology_broken.py89
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/sketchy_topology_preserved.py49
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/split_at_highest_2d_curvatures.py41
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/split_at_tvertices.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/stroke_texture.py43
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/suggestive.py43
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/thickness_fof_depth_discontinuity.py62
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/tipremover.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/tvertex_remover.py42
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/uniformpruning_zsort.py40
-rwxr-xr-xsource/blender/freestyle/style_modules_blender/vector.py241
-rwxr-xr-xsource/blender/freestyle/style_modules_old/ChainingIterators.py (renamed from source/blender/freestyle/style_modules/ChainingIterators.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/Functions0D.py (renamed from source/blender/freestyle/style_modules/Functions0D.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/Functions1D.py (renamed from source/blender/freestyle/style_modules/Functions1D.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/PredicatesB1D.py (renamed from source/blender/freestyle/style_modules/PredicatesB1D.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/PredicatesU0D.py (renamed from source/blender/freestyle/style_modules/PredicatesU0D.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/PredicatesU1D.py (renamed from source/blender/freestyle/style_modules/PredicatesU1D.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/anisotropic_diffusion.py (renamed from source/blender/freestyle/style_modules/anisotropic_diffusion.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/apriori_and_causal_density.py (renamed from source/blender/freestyle/style_modules/apriori_and_causal_density.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/apriori_density.py (renamed from source/blender/freestyle/style_modules/apriori_density.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/backbone_stretcher.py (renamed from source/blender/freestyle/style_modules/backbone_stretcher.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/blueprint_circles.py (renamed from source/blender/freestyle/style_modules/blueprint_circles.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/blueprint_ellipses.py (renamed from source/blender/freestyle/style_modules/blueprint_ellipses.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/blueprint_squares.py (renamed from source/blender/freestyle/style_modules/blueprint_squares.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/cartoon.py (renamed from source/blender/freestyle/style_modules/cartoon.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/contour.py (renamed from source/blender/freestyle/style_modules/contour.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/curvature2d.py (renamed from source/blender/freestyle/style_modules/curvature2d.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/external_contour.py (renamed from source/blender/freestyle/style_modules/external_contour.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/external_contour_sketchy.py (renamed from source/blender/freestyle/style_modules/external_contour_sketchy.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/external_contour_smooth.py (renamed from source/blender/freestyle/style_modules/external_contour_smooth.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/extra-lines.sml (renamed from source/blender/freestyle/style_modules/extra-lines.sml)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/haloing.py (renamed from source/blender/freestyle/style_modules/haloing.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/ignore_small_occlusions.py (renamed from source/blender/freestyle/style_modules/ignore_small_occlusions.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/invisible_lines.py (renamed from source/blender/freestyle/style_modules/invisible_lines.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/japanese_bigbrush.py (renamed from source/blender/freestyle/style_modules/japanese_bigbrush.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/logical_operators.py (renamed from source/blender/freestyle/style_modules/logical_operators.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/long_anisotropically_dense.py (renamed from source/blender/freestyle/style_modules/long_anisotropically_dense.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/multiple_parameterization.py (renamed from source/blender/freestyle/style_modules/multiple_parameterization.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/nature.py (renamed from source/blender/freestyle/style_modules/nature.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/near_lines.py (renamed from source/blender/freestyle/style_modules/near_lines.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/occluded_by_specific_object.py (renamed from source/blender/freestyle/style_modules/occluded_by_specific_object.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/polygonalize.py (renamed from source/blender/freestyle/style_modules/polygonalize.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/qi0.py (renamed from source/blender/freestyle/style_modules/qi0.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/qi0_not_external_contour.py (renamed from source/blender/freestyle/style_modules/qi0_not_external_contour.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/qi1.py (renamed from source/blender/freestyle/style_modules/qi1.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/qi2.py (renamed from source/blender/freestyle/style_modules/qi2.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/sequentialsplit_sketchy.py (renamed from source/blender/freestyle/style_modules/sequentialsplit_sketchy.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/shaders.py (renamed from source/blender/freestyle/style_modules/shaders.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/sketchy_multiple_parameterization.py (renamed from source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/sketchy_topology_broken.py (renamed from source/blender/freestyle/style_modules/sketchy_topology_broken.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/sketchy_topology_preserved.py (renamed from source/blender/freestyle/style_modules/sketchy_topology_preserved.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/split_at_highest_2d_curvatures.py (renamed from source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/split_at_tvertices.py (renamed from source/blender/freestyle/style_modules/split_at_tvertices.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/stroke_texture.py (renamed from source/blender/freestyle/style_modules/stroke_texture.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/suggestive.py (renamed from source/blender/freestyle/style_modules/suggestive.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/thickness_fof_depth_discontinuity.py (renamed from source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/tipremover.py (renamed from source/blender/freestyle/style_modules/tipremover.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/tvertex_remover.py (renamed from source/blender/freestyle/style_modules/tvertex_remover.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/uniformpruning_zsort.py (renamed from source/blender/freestyle/style_modules/uniformpruning_zsort.py)0
-rwxr-xr-xsource/blender/freestyle/style_modules_old/vector.py (renamed from source/blender/freestyle/style_modules/vector.py)0
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