diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-09-04 17:41:06 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-09-04 17:41:06 +0300 |
commit | 3c29aad787f636167319950636f1497442075df8 (patch) | |
tree | 3a993cc25296ce987893b9f58b7c794b51e77f85 | |
parent | 498583844fb7d0adbbc91d512f98885800cdf46e (diff) | |
parent | e76e8fcdcc53455a52a6a73495881eddd346472c (diff) |
Merge branch 'master' into blender2.8
Conflicts:
intern/cycles/blender/blender_particles.cpp
source/blender/blenkernel/intern/particle.c
source/blender/gpu/intern/gpu_shader.c
164 files changed, 7858 insertions, 5860 deletions
diff --git a/.gitignore b/.gitignore index 7acac981ed7..977fd9c2627 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,9 @@ Desktop.ini /doc/python_api/sphinx-in-tmp/ /doc/python_api/sphinx-in/ /doc/python_api/sphinx-out/ +/doc/python_api/rst/bmesh.ops.rst +/doc/python_api/rst/in_menu.png +/doc/python_api/rst/menu_id.png +/doc/python_api/rst/op_prop.png +/doc/python_api/rst/run_script.png +/doc/python_api/rst/spacebar.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 170537b7dfa..709f8245e23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -508,6 +508,19 @@ mark_as_advanced(WITH_CXX11) option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON) mark_as_advanced(WITH_LEGACY_DEPSGRAPH) +# Use hardcoded paths or find_package to find externals +option(WITH_WINDOWS_FIND_MODULES "Use find_package to locate libraries" OFF) +mark_as_advanced(WITH_WINDOWS_FIND_MODULES) + +option(WITH_WINDOWS_CODESIGN "Use signtool to sign the final binary." OFF) +mark_as_advanced(WITH_WINDOWS_CODESIGN) + +set(WINDOWS_CODESIGN_PFX CACHE FILEPATH "Path to pfx file to use for codesigning.") +mark_as_advanced(WINDOWS_CODESIGN_PFX) + +set(WINDOWS_CODESIGN_PFX_PASSWORD CACHE STRING "password for pfx file used for codesigning.") +mark_as_advanced(WINDOWS_CODESIGN_PFX_PASSWORD) + # avoid using again option_defaults_clear() diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index c4e1c56699e..fabb35c539e 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -359,7 +359,6 @@ function(setup_liblinks target_link_libraries( ${target} ${PNG_LIBRARIES} - ${ZLIB_LIBRARIES} ${FREETYPE_LIBRARY} ) @@ -510,6 +509,11 @@ function(setup_liblinks endif() endif() + target_link_libraries( + ${target} + ${ZLIB_LIBRARIES} + ) + #system libraries with no dependencies such as platform link libs or opengl should go last target_link_libraries(${target} ${BLENDER_GL_LIBRARIES}) @@ -1574,3 +1578,26 @@ macro(openmp_delayload endif(WITH_OPENMP) endif(MSVC) endmacro() + +MACRO(WINDOWS_SIGN_TARGET target) + if (WITH_WINDOWS_CODESIGN) + if (!SIGNTOOL_EXE) + error("Codesigning is enabled, but signtool is not found") + else() + if (WINDOWS_CODESIGN_PFX_PASSWORD) + set(CODESIGNPASSWORD /p ${WINDOWS_CODESIGN_PFX_PASSWORD}) + else() + if ($ENV{PFXPASSWORD}) + set(CODESIGNPASSWORD /p $ENV{PFXPASSWORD}) + else() + message( FATAL_ERROR "WITH_WINDOWS_CODESIGN is on but WINDOWS_CODESIGN_PFX_PASSWORD not set, and environment variable PFXPASSWORD not found, unable to sign code.") + endif() + endif() + add_custom_command(TARGET ${target} + POST_BUILD + COMMAND ${SIGNTOOL_EXE} sign /f ${WINDOWS_CODESIGN_PFX} ${CODESIGNPASSWORD} $<TARGET_FILE:${target}> + VERBATIM + ) + endif() + endif() +ENDMACRO()
\ No newline at end of file diff --git a/build_files/cmake/packaging.cmake b/build_files/cmake/packaging.cmake index afdbc644b4e..bc1d64f7494 100644 --- a/build_files/cmake/packaging.cmake +++ b/build_files/cmake/packaging.cmake @@ -38,7 +38,17 @@ unset(MY_WC_HASH) # Force Package Name execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE CPACK_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) -set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${CMAKE_SYSTEM_PROCESSOR}) +if (MSVC) + if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + set(PACKAGE_ARCH windows64) + else() + set(PACKAGE_ARCH windows32) + endif() +else(MSVC) + set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR}) +endif() + +set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${PACKAGE_ARCH}) if(CMAKE_SYSTEM_NAME MATCHES "Linux") # RPM packages diff --git a/build_files/cmake/platform/platform_win32_msvc.cmake b/build_files/cmake/platform/platform_win32_msvc.cmake index 696a37115d3..2772944214b 100644 --- a/build_files/cmake/platform/platform_win32_msvc.cmake +++ b/build_files/cmake/platform/platform_win32_msvc.cmake @@ -23,6 +23,20 @@ # Libraries configuration for Windows when compiling with MSVC. +macro(warn_hardcoded_paths package_name + ) + if(WITH_WINDOWS_FIND_MODULES) + message(WARNING "Using HARDCODED ${package_name} locations") + endif(WITH_WINDOWS_FIND_MODULES) +endmacro() + +macro(windows_find_package package_name + ) + if(WITH_WINDOWS_FIND_MODULES) + find_package( ${package_name}) + endif(WITH_WINDOWS_FIND_MODULES) +endmacro() + add_definitions(-DWIN32) # Minimum MSVC Version if(MSVC_VERSION EQUAL 1800) @@ -141,12 +155,12 @@ set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz_st.lib) set(ZLIB_INCLUDE_DIR ${LIBDIR}/zlib/include) set(ZLIB_LIBRARY ${LIBDIR}/zlib/lib/libz_st.lib) set(ZLIB_DIR ${LIBDIR}/zlib) -#find_package(zlib) # we want to find before finding things that depend on it like png +windows_find_package(zlib) # we want to find before finding things that depend on it like png +windows_find_package(png) -find_package(png) if(NOT PNG_FOUND) - message(WARNING "Using HARDCODED libpng locations") + warn_hardcoded_paths(libpng) set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include) set(PNG_LIBRARIES libpng) set(PNG "${LIBDIR}/png") @@ -155,7 +169,12 @@ if(NOT PNG_FOUND) endif() set(JPEG_NAMES ${JPEG_NAMES} libjpeg) -find_package(jpeg REQUIRED) +windows_find_package(jpeg REQUIRED) +if(NOT JPEG_FOUND) + warn_hardcoded_paths(jpeg) + set(JPEG_INCLUDE_DIR ${LIBDIR}/jpeg/include) + set(JPEG_LIBRARIES ${LIBDIR}/jpeg/lib/libjpeg.lib) +endif() set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include) set(PTHREADS_LIBRARIES ${LIBDIR}/pthreads/lib/pthreadVC2.lib) @@ -166,7 +185,7 @@ set(FREETYPE_INCLUDE_DIRS ${LIBDIR}/freetype/include/freetype2 ) set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/freetype2ST.lib) -find_package(freetype REQUIRED) +windows_find_package(freetype REQUIRED) if(WITH_FFTW3) set(FFTW3 ${LIBDIR}/fftw3) @@ -212,9 +231,9 @@ if(WITH_CODEC_FFMPEG) ${LIBDIR}/ffmpeg/include ${LIBDIR}/ffmpeg/include/msvc ) - find_package(FFMPEG) + windows_find_package(FFMPEG) if(NOT FFMPEG_FOUND) - message(WARNING "Using HARDCODED ffmpeg locations") + warn_hardcoded_paths(ffmpeg) set(FFMPEG_LIBRARY_VERSION 55) set(FFMPEG_LIBRARY_VERSION_AVU 52) set(FFMPEG_LIBRARIES @@ -230,9 +249,9 @@ endif() if(WITH_IMAGE_OPENEXR) set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr) set(OPENEXR_VERSION "2.1") - find_package(OPENEXR REQUIRED) + windows_find_package(OPENEXR REQUIRED) if(NOT OPENEXR_FOUND) - message(WARNING "Using HARDCODED OpenEXR locations") + warn_hardcoded_paths(OpenEXR) set(OPENEXR ${LIBDIR}/openexr) set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include) set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR) @@ -254,9 +273,9 @@ endif() if(WITH_IMAGE_TIFF) # Try to find tiff first then complain and set static and maybe wrong paths - find_package(TIFF) + windows_find_package(TIFF) if(NOT TIFF_FOUND) - message(WARNING "Using HARDCODED libtiff locations") + warn_hardcoded_paths(libtiff) set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib) set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include) endif() @@ -299,9 +318,11 @@ if(WITH_BOOST) set(Boost_USE_STATIC_RUNTIME ON) # prefix lib set(Boost_USE_MULTITHREADED ON) # suffix -mt set(Boost_USE_STATIC_LIBS ON) # suffix -s - find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs}) + if (WITH_WINDOWS_FIND_MODULES) + find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs}) + endif (WITH_WINDOWS_FIND_MODULES) if(NOT Boost_FOUND) - message(WARNING "USING HARDCODED boost locations") + warn_hardcoded_paths(BOOST) set(BOOST ${LIBDIR}/boost) set(BOOST_INCLUDE_DIR ${BOOST}/include) if(MSVC12) @@ -344,7 +365,7 @@ if(WITH_BOOST) endif() if(WITH_OPENIMAGEIO) - find_package(OpenImageIO) + windows_find_package(OpenImageIO) set(OPENIMAGEIO ${LIBDIR}/openimageio) set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OIIO_OPTIMIZED optimized OpenImageIO optimized OpenImageIO_Util) @@ -450,3 +471,15 @@ endif() # used in many places so include globally, like OpenGL blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") + +#find signtool +SET(ProgramFilesX86_NAME "ProgramFiles(x86)") #env dislikes the ( ) +find_program(SIGNTOOL_EXE signtool +HINTS + "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/10/bin/x86/" + "$ENV{ProgramFiles}/Windows Kits/10/bin/x86/" + "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.1/bin/x86/" + "$ENV{ProgramFiles}/Windows Kits/8.1/bin/x86/" + "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.0/bin/x86/" + "$ENV{ProgramFiles}/Windows Kits/8.0/bin/x86/" +) diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile index b34d4dfe6f1..9834cda43bc 100644 --- a/doc/doxygen/Doxyfile +++ b/doc/doxygen/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = Blender # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "V2.7x" +PROJECT_NUMBER = "V2.8x" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index 2a3213e4e6f..4a109a44ec0 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -1014,6 +1014,9 @@ context_type_map = { "active_bone": ("EditBone", False), "active_gpencil_frame": ("GreasePencilLayer", True), "active_gpencil_layer": ("GPencilLayer", True), + "active_gpencil_brush": ("GPencilSculptBrush", False), + "active_gpencil_palette": ("GPencilPalette", True), + "active_gpencil_palettecolor": ("GPencilPaletteColor", True), "active_node": ("Node", False), "active_object": ("Object", False), "active_operator": ("Operator", False), diff --git a/extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp b/extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp index 2c362778210..c1da9f36cfb 100644 --- a/extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp +++ b/extern/bullet2/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp @@ -151,8 +151,8 @@ static btScalar EdgeSeparation(const btBox2dShape* poly1, const btTransform& xf1 int index = 0; btScalar minDot = BT_LARGE_FLOAT; - if( count2 > 0 ) - index = (int) normal1.minDot( vertices2, count2, minDot); + if( count2 > 0 ) + index = (int) normal1.minDot( vertices2, count2, minDot); btVector3 v1 = b2Mul(xf1, vertices1[edge1]); btVector3 v2 = b2Mul(xf2, vertices2[index]); @@ -174,9 +174,9 @@ static btScalar FindMaxSeparation(int* edgeIndex, // Find edge normal on poly1 that has the largest projection onto d. int edge = 0; - btScalar maxDot; - if( count1 > 0 ) - edge = (int) dLocal1.maxDot( normals1, count1, maxDot); + btScalar maxDot; + if( count1 > 0 ) + edge = (int) dLocal1.maxDot( normals1, count1, maxDot); // Get the separation for the edge normal. btScalar s = EdgeSeparation(poly1, xf1, edge, poly2, xf2); diff --git a/extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp b/extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp index a80c438d12a..589a7f55f2b 100644 --- a/extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp +++ b/extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp @@ -232,8 +232,8 @@ void btCompoundCollisionAlgorithm::processCollision (const btCollisionObjectWrap m_compoundShapeRevision = compoundShape->getUpdateRevision(); } - if (m_childCollisionAlgorithms.size()==0) - return; + if (m_childCollisionAlgorithms.size()==0) + return; const btDbvt* tree = compoundShape->getDynamicAabbTree(); //use a dynamic aabb tree to cull potential child-overlaps diff --git a/extern/clew/README.blender b/extern/clew/README.blender index e500a1bef7d..8355a96db8e 100644 --- a/extern/clew/README.blender +++ b/extern/clew/README.blender @@ -1,5 +1,5 @@ Project: OpenCL Wrangler URL: https://github.com/OpenCLWrangler/clew License: Apache 2.0 -Upstream version: 277db43 +Upstream version: 309a653 Local modifications: None diff --git a/extern/clew/src/clew.c b/extern/clew/src/clew.c index e3adabd829c..3717c74f1a0 100644 --- a/extern/clew/src/clew.c +++ b/extern/clew/src/clew.c @@ -137,6 +137,17 @@ PFNCLCREATEFROMGLTEXTURE3D __clewCreateFromGLTexture3D = NULL; #endif PFNCLGETGLCONTEXTINFOKHR __clewGetGLContextInfoKHR = NULL; +static CLEW_DYNLIB_HANDLE dynamic_library_open_find(const char **paths) { + int i = 0; + while (paths[i] != NULL) { + CLEW_DYNLIB_HANDLE lib = CLEW_DYNLIB_OPEN(paths[i]); + if (lib != NULL) { + return lib; + } + ++i; + } + return NULL; +} static void clewExit(void) { @@ -151,11 +162,15 @@ static void clewExit(void) int clewInit() { #ifdef _WIN32 - const char *path = "OpenCL.dll"; + const char *paths[] = {"OpenCL.dll", NULL}; #elif defined(__APPLE__) - const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL"; + const char *paths[] = {"/Library/Frameworks/OpenCL.framework/OpenCL", NULL}; #else - const char *path = "libOpenCL.so"; + const char *paths[] = {"libOpenCL.so", + "libOpenCL.so.0", + "libOpenCL.so.1", + "libOpenCL.so.2", + NULL}; #endif int error = 0; @@ -167,7 +182,7 @@ int clewInit() } // Load library - module = CLEW_DYNLIB_OPEN(path); + module = dynamic_library_open_find(paths); // Check for errors if (module == NULL) diff --git a/extern/curve_fit_nd/intern/curve_fit_cubic_refit.c b/extern/curve_fit_nd/intern/curve_fit_cubic_refit.c index b51535bab10..d22d042bff5 100644 --- a/extern/curve_fit_nd/intern/curve_fit_cubic_refit.c +++ b/extern/curve_fit_nd/intern/curve_fit_cubic_refit.c @@ -1048,7 +1048,6 @@ int curve_fit_cubic_to_points_refit_db( { const uint knots_len = points_len; struct Knot *knots = malloc(sizeof(Knot) * knots_len); - knots[0].next = NULL; #ifndef USE_CORNER_DETECT (void)r_corner_index_array; @@ -1085,7 +1084,6 @@ int curve_fit_cubic_to_points_refit_db( knots[i].heap_node = NULL; knots[i].index = i; - knots[i].index = i; knots[i].can_remove = true; knots[i].is_removed = false; knots[i].is_corner = false; @@ -1155,8 +1153,8 @@ int curve_fit_cubic_to_points_refit_db( add_vn_vnvn(k->tan[0], tan_prev, tan_next, dims); normalize_vn(k->tan[0], dims); copy_vnvn(k->tan[1], k->tan[0], dims); - k->handles[0] = len_prev / 3; - k->handles[1] = len_next / 3; + k->handles[0] = len_prev / 3; + k->handles[1] = len_next / -3; } #else if (knots_len < 2) { @@ -1185,8 +1183,8 @@ int curve_fit_cubic_to_points_refit_db( add_vn_vnvn(k->tan[0], tan_prev, tan_next, dims); normalize_vn(k->tan[0], dims); copy_vnvn(k->tan[1], k->tan[0], dims); - k->handles[0] = len_prev / 3; - k->handles[1] = len_next / 3; + k->handles[0] = len_prev / 3; + k->handles[1] = len_next / -3; copy_vnvn(tan_prev, tan_next, dims); len_prev = len_next; @@ -1201,8 +1199,8 @@ int curve_fit_cubic_to_points_refit_db( tan_prev, &points[0 * dims], &points[1 * dims], dims); copy_vnvn(knots[0].tan[0], tan_prev, dims); copy_vnvn(knots[0].tan[1], tan_prev, dims); - knots[0].handles[0] = len_prev / 3; - knots[0].handles[1] = len_prev / 3; + knots[0].handles[0] = len_prev / 3; + knots[0].handles[1] = len_prev / -3; for (uint i_curr = 1, i_next = 2; i_next < knots_len; i_curr = i_next++) { struct Knot *k = &knots[i_curr]; @@ -1215,8 +1213,8 @@ int curve_fit_cubic_to_points_refit_db( add_vn_vnvn(k->tan[0], tan_prev, tan_next, dims); normalize_vn(k->tan[0], dims); copy_vnvn(k->tan[1], k->tan[0], dims); - k->handles[0] = len_prev / 3; - k->handles[1] = len_next / 3; + k->handles[0] = len_prev / 3; + k->handles[1] = len_next / -3; copy_vnvn(tan_prev, tan_next, dims); len_prev = len_next; @@ -1224,8 +1222,8 @@ int curve_fit_cubic_to_points_refit_db( copy_vnvn(knots[knots_len - 1].tan[0], tan_next, dims); copy_vnvn(knots[knots_len - 1].tan[1], tan_next, dims); - knots[knots_len - 1].handles[0] = len_next / 3; - knots[knots_len - 1].handles[1] = len_next / 3; + knots[knots_len - 1].handles[0] = len_next / 3; + knots[knots_len - 1].handles[1] = len_next / -3; } #endif } diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp index a54022268bb..8a3eb98a5a0 100644 --- a/intern/cycles/app/cycles_xml.cpp +++ b/intern/cycles/app/cycles_xml.cpp @@ -62,7 +62,7 @@ struct XMLReadState : public XMLReader { : scene(NULL), smooth(false), shader(NULL), - dicing_rate(0.0f) + dicing_rate(1.0f) { tfm = transform_identity(); } @@ -197,6 +197,9 @@ static void xml_read_camera(XMLReadState& state, pugi::xml_node node) xml_read_int(&cam->width, node, "width"); xml_read_int(&cam->height, node, "height"); + cam->full_width = cam->width; + cam->full_height = cam->height; + xml_read_node(state, cam, node); cam->matrix = state.tfm; @@ -412,53 +415,14 @@ static void xml_read_mesh(const XMLReadState& state, pugi::xml_node node) xml_read_int_array(verts, node, "verts"); xml_read_int_array(nverts, node, "nverts"); -#if 0 if(xml_equal_string(node, "subdivision", "catmull-clark")) { - /* create subd mesh */ - SubdMesh sdmesh; - - /* create subd vertices */ - for(size_t i = 0; i < P.size(); i++) - sdmesh.add_vert(P[i]); - - /* create subd faces */ - int index_offset = 0; - - for(size_t i = 0; i < nverts.size(); i++) { - if(nverts[i] == 4) { - int v0 = verts[index_offset + 0]; - int v1 = verts[index_offset + 1]; - int v2 = verts[index_offset + 2]; - int v3 = verts[index_offset + 3]; - - sdmesh.add_face(v0, v1, v2, v3); - } - else { - for(int j = 0; j < nverts[i]-2; j++) { - int v0 = verts[index_offset]; - int v1 = verts[index_offset + j + 1]; - int v2 = verts[index_offset + j + 2]; - - sdmesh.add_face(v0, v1, v2); - } - } - - index_offset += nverts[i]; - } - - /* finalize subd mesh */ - sdmesh.finish(); - - /* parameters */ - SubdParams sdparams(mesh, shader, smooth); - xml_read_float(&sdparams.dicing_rate, node, "dicing_rate"); - - DiagSplit dsplit(sdparams); - sdmesh.tessellate(&dsplit); + mesh->subdivision_type = Mesh::SUBDIVISION_CATMULL_CLARK; } - else -#endif - { + else if(xml_equal_string(node, "subdivision", "linear")) { + mesh->subdivision_type = Mesh::SUBDIVISION_LINEAR; + } + + if(mesh->subdivision_type == Mesh::SUBDIVISION_NONE) { /* create vertices */ mesh->verts = P; @@ -513,70 +477,63 @@ static void xml_read_mesh(const XMLReadState& state, pugi::xml_node node) } } } + else { + /* create vertices */ + mesh->verts = P; - /* temporary for test compatibility */ - mesh->attributes.remove(ATTR_STD_VERTEX_NORMAL); -} - -/* Patch */ + size_t num_ngons = 0; + size_t num_corners = 0; + for(size_t i = 0; i < nverts.size(); i++) { + num_ngons += (nverts[i] == 4) ? 0 : 1; + num_corners += nverts[i]; + } + mesh->reserve_subd_faces(nverts.size(), num_ngons, num_corners); -static void xml_read_patch(const XMLReadState& state, pugi::xml_node node) -{ - /* read patch */ - Patch *patch = NULL; + /* create subd_faces */ + int index_offset = 0; - vector<float3> P; - xml_read_float3_array(P, node, "P"); + for(size_t i = 0; i < nverts.size(); i++) { + mesh->add_subd_face(&verts[index_offset], nverts[i], shader, smooth); + index_offset += nverts[i]; + } - if(xml_equal_string(node, "type", "bilinear")) { - /* bilinear patch */ - if(P.size() == 4) { - LinearQuadPatch *bpatch = new LinearQuadPatch(); + /* uv map */ + if(xml_read_float_array(UV, node, "UV")) { + ustring name = ustring("UVMap"); + Attribute *attr = mesh->subd_attributes.add(ATTR_STD_UV, name); + float3 *fdata = attr->data_float3(); - for(int i = 0; i < 4; i++) - P[i] = transform_point(&state.tfm, P[i]); - memcpy(bpatch->hull, &P[0], sizeof(bpatch->hull)); +#if 0 + if(subdivide_uvs) { + attr->flags |= ATTR_SUBDIVIDED; + } +#endif - patch = bpatch; + index_offset = 0; + for(size_t i = 0; i < nverts.size(); i++) { + for(int j = 0; j < nverts[i]; j++) { + *(fdata++) = make_float3(UV[index_offset++]); + } + } } - else - fprintf(stderr, "Invalid number of control points for bilinear patch.\n"); - } - else if(xml_equal_string(node, "type", "bicubic")) { - /* bicubic patch */ - if(P.size() == 16) { - BicubicPatch *bpatch = new BicubicPatch(); - - for(int i = 0; i < 16; i++) - P[i] = transform_point(&state.tfm, P[i]); - memcpy(bpatch->hull, &P[0], sizeof(bpatch->hull)); - patch = bpatch; + /* setup subd params */ + if(!mesh->subd_params) { + mesh->subd_params = new SubdParams(mesh); } - else - fprintf(stderr, "Invalid number of control points for bicubic patch.\n"); - } - else - fprintf(stderr, "Unknown patch type.\n"); + SubdParams& sdparams = *mesh->subd_params; - if(patch) { - /* add mesh */ - Mesh *mesh = xml_add_mesh(state.scene, transform_identity()); - - mesh->used_shaders.push_back(state.shader); - - /* split */ - SubdParams sdparams(mesh); + sdparams.dicing_rate = state.dicing_rate; xml_read_float(&sdparams.dicing_rate, node, "dicing_rate"); + sdparams.dicing_rate = std::max(0.1f, sdparams.dicing_rate); - DiagSplit dsplit(sdparams); - dsplit.split_quad(patch); - - delete patch; - - /* temporary for test compatibility */ - mesh->attributes.remove(ATTR_STD_VERTEX_NORMAL); + state.scene->camera->update(); + sdparams.camera = state.scene->camera; + sdparams.objecttoworld = state.tfm; } + + /* temporary for test compatibility */ + mesh->attributes.remove(ATTR_STD_VERTEX_NORMAL); } /* Light */ @@ -676,9 +633,6 @@ static void xml_read_scene(XMLReadState& state, pugi::xml_node scene_node) else if(string_iequals(node.name(), "mesh")) { xml_read_mesh(state, node); } - else if(string_iequals(node.name(), "patch")) { - xml_read_patch(state, node); - } else if(string_iequals(node.name(), "light")) { xml_read_light(state, node); } @@ -739,7 +693,7 @@ void xml_read_file(Scene *scene, const char *filepath) state.tfm = transform_identity(); state.shader = scene->default_surface; state.smooth = false; - state.dicing_rate = 0.1f; + state.dicing_rate = 1.0f; state.base = path_dirname(filepath); xml_read_include(state, path_filename(filepath)); diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 17defc5c0fa..938794f09ec 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -369,12 +369,14 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): description="Size of a micropolygon in pixels", min=0.1, max=1000.0, default=1.0, + subtype="PIXEL" ) cls.preview_dicing_rate = FloatProperty( name="Preview Dicing Rate", description="Size of a micropolygon in pixels during preview render", min=0.1, max=1000.0, default=8.0, + subtype="PIXEL" ) cls.max_subdivisions = IntProperty( @@ -1007,8 +1009,8 @@ class CyclesObjectSettings(bpy.types.PropertyGroup): ) cls.dicing_rate = FloatProperty( - name="Dicing Rate", - description="Multiplier for scene dicing rate", + name="Dicing Scale", + description="Multiplier for scene dicing rate (located in the Geometry Panel)", min=0.1, max=1000.0, default=1.0, ) diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 9317bfbb703..3c37bc0b045 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -113,6 +113,7 @@ set(SRC_SVM_HEADERS svm/svm.h svm/svm_attribute.h svm/svm_blackbody.h + svm/svm_bump.h svm/svm_camera.h svm/svm_closure.h svm/svm_convert.h diff --git a/intern/cycles/kernel/bvh/qbvh_volume.h b/intern/cycles/kernel/bvh/qbvh_volume.h index b4f334eb842..847a11d8ad4 100644 --- a/intern/cycles/kernel/bvh/qbvh_volume.h +++ b/intern/cycles/kernel/bvh/qbvh_volume.h @@ -236,6 +236,14 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg, /* If node is leaf, fetch triangle list. */ if(node_addr < 0) { float4 leaf = kernel_tex_fetch(__bvh_leaf_nodes, (-node_addr-1)); + + if((__float_as_uint(leaf.z) & visibility) == 0) { + /* Pop. */ + node_addr = traversal_stack[stack_ptr].addr; + --stack_ptr; + continue; + } + int prim_addr = __float_as_int(leaf.x); #if BVH_FEATURE(BVH_INSTANCING) diff --git a/intern/cycles/kernel/bvh/qbvh_volume_all.h b/intern/cycles/kernel/bvh/qbvh_volume_all.h index 4d3028b37bf..ab4b70085e8 100644 --- a/intern/cycles/kernel/bvh/qbvh_volume_all.h +++ b/intern/cycles/kernel/bvh/qbvh_volume_all.h @@ -240,6 +240,14 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg, /* If node is leaf, fetch triangle list. */ if(node_addr < 0) { float4 leaf = kernel_tex_fetch(__bvh_leaf_nodes, (-node_addr-1)); + + if((__float_as_uint(leaf.z) & visibility) == 0) { + /* Pop. */ + node_addr = traversal_stack[stack_ptr].addr; + --stack_ptr; + continue; + } + int prim_addr = __float_as_int(leaf.x); #if BVH_FEATURE(BVH_INSTANCING) diff --git a/intern/cycles/kernel/geom/geom_volume.h b/intern/cycles/kernel/geom/geom_volume.h index efe540a8518..fd97a63efb5 100644 --- a/intern/cycles/kernel/geom/geom_volume.h +++ b/intern/cycles/kernel/geom/geom_volume.h @@ -69,7 +69,7 @@ ccl_device float volume_attribute_float(KernelGlobals *kg, const ShaderData *sd, # if __CUDA_ARCH__ >= 300 CUtexObject tex = kernel_tex_fetch(__bindless_mapping, desc.offset); float f = kernel_tex_image_interp_3d_float(tex, P.x, P.y, P.z); - float4 r = make_float4(f, f, f, 1.0); + float4 r = make_float4(f, f, f, 1.0f); # else float4 r = volume_image_texture_3d(desc.offset, P.x, P.y, P.z); # endif diff --git a/intern/cycles/kernel/kernel_compat_cpu.h b/intern/cycles/kernel/kernel_compat_cpu.h index 3775934f293..7b30df04550 100644 --- a/intern/cycles/kernel/kernel_compat_cpu.h +++ b/intern/cycles/kernel/kernel_compat_cpu.h @@ -112,7 +112,7 @@ template<typename T> struct texture_image { ccl_always_inline float4 read(uchar r) { float f = r*(1.0f/255.0f); - return make_float4(f, f, f, 1.0); + return make_float4(f, f, f, 1.0f); } ccl_always_inline float4 read(float r) diff --git a/intern/cycles/kernel/kernel_path_branched.h b/intern/cycles/kernel/kernel_path_branched.h index 64f1468eacf..e38c1a01f6b 100644 --- a/intern/cycles/kernel/kernel_path_branched.h +++ b/intern/cycles/kernel/kernel_path_branched.h @@ -112,7 +112,7 @@ ccl_device_noinline void kernel_branched_path_surface_indirect_light(KernelGloba } kernel_path_indirect(kg, - indirect_sd, + indirect_sd, emission_sd, rng, &bsdf_ray, @@ -224,7 +224,7 @@ ccl_device void kernel_branched_path_subsurface_scatter(KernelGlobals *kg, kg, rng, &bssrdf_sd, - indirect_sd, + indirect_sd, emission_sd, throughput, num_samples_inv, diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/kernel_path_state.h index e0e35d792ab..661dc52fb31 100644 --- a/intern/cycles/kernel/kernel_path_state.h +++ b/intern/cycles/kernel/kernel_path_state.h @@ -45,9 +45,9 @@ ccl_device_inline void path_state_init(KernelGlobals *kg, state->volume_bounce = 0; if(kernel_data.integrator.use_volumes) { - /* initialize volume stack with volume we are inside of */ - kernel_volume_stack_init(kg, stack_sd, ray, state->volume_stack); - /* seed RNG for cases where we can't use stratified samples */ + /* Initialize volume stack with volume we are inside of. */ + kernel_volume_stack_init(kg, stack_sd, state, ray, state->volume_stack); + /* Seed RNG for cases where we can't use stratified samples .*/ state->rng_congruential = lcg_init(*rng + sample*0x51633e2d); } else { diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h index 731dc0407c5..b534d9950c5 100644 --- a/intern/cycles/kernel/kernel_random.h +++ b/intern/cycles/kernel/kernel_random.h @@ -132,7 +132,13 @@ ccl_device_inline float path_rng_1D(KernelGlobals *kg, ccl_addr_space RNG *rng, #endif } -ccl_device_inline void path_rng_2D(KernelGlobals *kg, ccl_addr_space RNG *rng, int sample, int num_samples, int dimension, float *fx, float *fy) +/* Temporary workaround for Pascal cards, otherwise AA does not work properly. */ +#if defined(__KERNEL_GPU__) && __CUDA_ARCH__ >= 600 +__device__ __forceinline__ +#else +ccl_device_inline +#endif +void path_rng_2D(KernelGlobals *kg, ccl_addr_space RNG *rng, int sample, int num_samples, int dimension, float *fx, float *fy) { #ifdef __CMJ__ if(kernel_data.integrator.sampling_pattern == SAMPLING_PATTERN_CMJ) { diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index e29940672ca..0646148f6a0 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -113,16 +113,7 @@ CCL_NAMESPACE_BEGIN # ifdef __KERNEL_OPENCL_AMD__ # define __CL_USE_NATIVE__ # define __KERNEL_SHADING__ -# define __MULTI_CLOSURE__ -# define __PASSES__ -# define __BACKGROUND_MIS__ -# define __LAMP_MIS__ -# define __AO__ -# define __CAMERA_MOTION__ -# define __OBJECT_MOTION__ -# define __HAIR__ -# define __BAKING__ -# define __TRANSPARENT_SHADOWS__ +# define __KERNEL_ADV_SHADING__ # endif /* __KERNEL_OPENCL_AMD__ */ # ifdef __KERNEL_OPENCL_INTEL_CPU__ @@ -723,20 +714,21 @@ enum ShaderDataFlag { SD_VOLUME_MIS = (1 << 19), /* use multiple importance sampling */ SD_VOLUME_CUBIC = (1 << 20), /* use cubic interpolation for voxels */ SD_HAS_BUMP = (1 << 21), /* has data connected to the displacement input */ + SD_HAS_DISPLACEMENT = (1 << 22), /* has true displacement */ SD_SHADER_FLAGS = (SD_USE_MIS|SD_HAS_TRANSPARENT_SHADOW|SD_HAS_VOLUME| SD_HAS_ONLY_VOLUME|SD_HETEROGENEOUS_VOLUME| SD_HAS_BSSRDF_BUMP|SD_VOLUME_EQUIANGULAR|SD_VOLUME_MIS| - SD_VOLUME_CUBIC|SD_HAS_BUMP), + SD_VOLUME_CUBIC|SD_HAS_BUMP|SD_HAS_DISPLACEMENT), /* object flags */ - SD_HOLDOUT_MASK = (1 << 22), /* holdout for camera rays */ - SD_OBJECT_MOTION = (1 << 23), /* has object motion blur */ - SD_TRANSFORM_APPLIED = (1 << 24), /* vertices have transform applied */ - SD_NEGATIVE_SCALE_APPLIED = (1 << 25), /* vertices have negative scale applied */ - SD_OBJECT_HAS_VOLUME = (1 << 26), /* object has a volume shader */ - SD_OBJECT_INTERSECTS_VOLUME = (1 << 27), /* object intersects AABB of an object with volume shader */ - SD_OBJECT_HAS_VERTEX_MOTION = (1 << 28), /* has position for motion vertices */ + SD_HOLDOUT_MASK = (1 << 23), /* holdout for camera rays */ + SD_OBJECT_MOTION = (1 << 24), /* has object motion blur */ + SD_TRANSFORM_APPLIED = (1 << 25), /* vertices have transform applied */ + SD_NEGATIVE_SCALE_APPLIED = (1 << 26), /* vertices have negative scale applied */ + SD_OBJECT_HAS_VOLUME = (1 << 27), /* object has a volume shader */ + SD_OBJECT_INTERSECTS_VOLUME = (1 << 28), /* object intersects AABB of an object with volume shader */ + SD_OBJECT_HAS_VERTEX_MOTION = (1 << 29), /* has position for motion vertices */ SD_OBJECT_FLAGS = (SD_HOLDOUT_MASK|SD_OBJECT_MOTION|SD_TRANSFORM_APPLIED| SD_NEGATIVE_SCALE_APPLIED|SD_OBJECT_HAS_VOLUME| @@ -745,7 +737,7 @@ enum ShaderDataFlag { #ifdef __SPLIT_KERNEL__ # define SD_THREAD (get_global_id(1) * get_global_size(0) + get_global_id(0)) -# if defined(__SPLIT_KERNEL_AOS__) +# if !defined(__SPLIT_KERNEL_SOA__) /* ShaderData is stored as an Array-of-Structures */ # define ccl_soa_member(type, name) type soa_##name # define ccl_fetch(s, t) (s[SD_THREAD].soa_##t) diff --git a/intern/cycles/kernel/kernel_volume.h b/intern/cycles/kernel/kernel_volume.h index 9dafed9afd1..4ab51b81f13 100644 --- a/intern/cycles/kernel/kernel_volume.h +++ b/intern/cycles/kernel/kernel_volume.h @@ -1010,7 +1010,8 @@ ccl_device bool kernel_volume_use_decoupled(KernelGlobals *kg, bool heterogeneou ccl_device void kernel_volume_stack_init(KernelGlobals *kg, ShaderData *stack_sd, - Ray *ray, + const PathState *state, + const Ray *ray, VolumeStack *stack) { /* NULL ray happens in the baker, does it need proper initialization of @@ -1031,9 +1032,12 @@ ccl_device void kernel_volume_stack_init(KernelGlobals *kg, return; } + kernel_assert(state->flag & PATH_RAY_CAMERA); + Ray volume_ray = *ray; volume_ray.t = FLT_MAX; + const uint visibility = (state->flag & PATH_RAY_ALL_VISIBILITY); int stack_index = 0, enclosed_index = 0; #ifdef __VOLUME_RECORD_ALL__ @@ -1042,7 +1046,7 @@ ccl_device void kernel_volume_stack_init(KernelGlobals *kg, &volume_ray, hits, 2*VOLUME_STACK_SIZE, - PATH_RAY_ALL_VISIBILITY); + visibility); if(num_hits > 0) { int enclosed_volumes[VOLUME_STACK_SIZE]; Intersection *isect = hits; @@ -1091,7 +1095,7 @@ ccl_device void kernel_volume_stack_init(KernelGlobals *kg, step < 2 * VOLUME_STACK_SIZE) { Intersection isect; - if(!scene_intersect_volume(kg, &volume_ray, &isect, PATH_RAY_ALL_VISIBILITY)) { + if(!scene_intersect_volume(kg, &volume_ray, &isect, visibility)) { break; } diff --git a/intern/cycles/kernel/osl/osl_globals.h b/intern/cycles/kernel/osl/osl_globals.h index 8353c4e434b..65cb7ecc6b4 100644 --- a/intern/cycles/kernel/osl/osl_globals.h +++ b/intern/cycles/kernel/osl/osl_globals.h @@ -54,6 +54,7 @@ struct OSLGlobals { vector<OSL::ShaderGroupRef> surface_state; vector<OSL::ShaderGroupRef> volume_state; vector<OSL::ShaderGroupRef> displacement_state; + vector<OSL::ShaderGroupRef> bump_state; OSL::ShaderGroupRef background_state; /* attributes */ diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index 153ebad6cd2..f61a9ec0fb1 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -93,6 +93,7 @@ ustring OSLRenderServices::u_geom_numpolyvertices("geom:numpolyvertices"); ustring OSLRenderServices::u_geom_trianglevertices("geom:trianglevertices"); ustring OSLRenderServices::u_geom_polyvertices("geom:polyvertices"); ustring OSLRenderServices::u_geom_name("geom:name"); +ustring OSLRenderServices::u_geom_undisplaced("geom:undisplaced"); ustring OSLRenderServices::u_is_smooth("geom:is_smooth"); #ifdef __HAIR__ ustring OSLRenderServices::u_is_curve("geom:is_curve"); @@ -127,8 +128,10 @@ OSLRenderServices::OSLRenderServices() OSLRenderServices::~OSLRenderServices() { - VLOG(2) << "OSL texture system stats:\n" - << osl_ts->getstats(); + if(osl_ts) { + VLOG(2) << "OSL texture system stats:\n" + << osl_ts->getstats(); + } #ifdef WITH_PTEX ptex_cache->release(); #endif diff --git a/intern/cycles/kernel/osl/osl_services.h b/intern/cycles/kernel/osl/osl_services.h index 2701abb483c..0f2e02c62b0 100644 --- a/intern/cycles/kernel/osl/osl_services.h +++ b/intern/cycles/kernel/osl/osl_services.h @@ -158,6 +158,7 @@ public: static ustring u_geom_trianglevertices; static ustring u_geom_polyvertices; static ustring u_geom_name; + static ustring u_geom_undisplaced; static ustring u_is_smooth; static ustring u_is_curve; static ustring u_curve_thickness; diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 20dd167708c..0d762bbdb38 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -184,6 +184,48 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, PathState *state OSL::ShadingContext *octx = tdata->context[(int)ctx]; int shader = sd->shader & SHADER_MASK; + /* automatic bump shader */ + if(kg->osl->bump_state[shader]) { + /* save state */ + float3 P = sd->P; + float3 dPdx = sd->dP.dx; + float3 dPdy = sd->dP.dy; + + /* set state as if undisplaced */ + if(sd->flag & SD_HAS_DISPLACEMENT) { + float data[9]; + bool found = kg->osl->services->get_attribute(sd, true, OSLRenderServices::u_empty, TypeDesc::TypeVector, + OSLRenderServices::u_geom_undisplaced, data); + (void)found; + assert(found); + + memcpy(&sd->P, data, sizeof(float)*3); + memcpy(&sd->dP.dx, data+3, sizeof(float)*3); + memcpy(&sd->dP.dy, data+6, sizeof(float)*3); + + object_position_transform(kg, sd, &sd->P); + object_dir_transform(kg, sd, &sd->dP.dx); + object_dir_transform(kg, sd, &sd->dP.dy); + + globals->P = TO_VEC3(sd->P); + globals->dPdx = TO_VEC3(sd->dP.dx); + globals->dPdy = TO_VEC3(sd->dP.dy); + } + + /* execute bump shader */ + ss->execute(octx, *(kg->osl->bump_state[shader]), *globals); + + /* reset state */ + sd->P = P; + sd->dP.dx = dPdx; + sd->dP.dy = dPdy; + + globals->P = TO_VEC3(P); + globals->dPdx = TO_VEC3(dPdx); + globals->dPdy = TO_VEC3(dPdy); + } + + /* surface shader */ if(kg->osl->surface_state[shader]) { ss->execute(octx, *(kg->osl->surface_state[shader]), *globals); } diff --git a/intern/cycles/kernel/shaders/node_normal_map.osl b/intern/cycles/kernel/shaders/node_normal_map.osl index f95e9fcfe3c..41bcac4fb10 100644 --- a/intern/cycles/kernel/shaders/node_normal_map.osl +++ b/intern/cycles/kernel/shaders/node_normal_map.osl @@ -26,6 +26,7 @@ shader node_normal_map( output normal Normal = NormalIn) { color mcolor = 2.0 * color(Color[0] - 0.5, Color[1] - 0.5, Color[2] - 0.5); + int is_backfacing = backfacing(); if (space == "tangent") { vector tangent; @@ -34,9 +35,15 @@ shader node_normal_map( float is_smooth; getattribute("geom:is_smooth", is_smooth); - if (!is_smooth) + if (!is_smooth) { ninterp = normalize(transform("world", "object", Ng)); + /* the normal is already inverted, which is too soon for the math here */ + if (is_backfacing) { + ninterp = -ninterp; + } + } + // get _unnormalized_ interpolated normal and tangent if (getattribute(attr_name, tangent) && getattribute(attr_sign_name, tangent_sign) && @@ -73,7 +80,12 @@ shader node_normal_map( Normal = normalize(vector(mcolor)); } - + + /* invert normal for backfacing polygons */ + if (is_backfacing) { + Normal = -Normal; + } + if (Strength != 1.0) Normal = normalize(NormalIn + (Normal - NormalIn) * max(Strength, 0.0)); } diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 502994e71f1..998a32e3181 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -181,6 +181,7 @@ CCL_NAMESPACE_END #include "svm_brick.h" #include "svm_vector_transform.h" #include "svm_voxel.h" +#include "svm_bump.h" CCL_NAMESPACE_BEGIN @@ -294,6 +295,12 @@ ccl_device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ccl_a case NODE_CLOSURE_SET_NORMAL: svm_node_set_normal(kg, sd, stack, node.y, node.z); break; + case NODE_ENTER_BUMP_EVAL: + svm_node_enter_bump_eval(kg, sd, stack, node.y); + break; + case NODE_LEAVE_BUMP_EVAL: + svm_node_leave_bump_eval(kg, sd, stack, node.y); + break; # endif /* NODES_FEATURE(NODE_FEATURE_BUMP) */ case NODE_HSV: svm_node_hsv(kg, sd, stack, node, &offset); diff --git a/intern/cycles/kernel/svm/svm_attribute.h b/intern/cycles/kernel/svm/svm_attribute.h index de978a423b4..0e55c99ae97 100644 --- a/intern/cycles/kernel/svm/svm_attribute.h +++ b/intern/cycles/kernel/svm/svm_attribute.h @@ -30,14 +30,14 @@ ccl_device AttributeDescriptor svm_node_attr_init(KernelGlobals *kg, ShaderData if(ccl_fetch(sd, object) != OBJECT_NONE) { desc = find_attribute(kg, sd, node.y); if(desc.offset == ATTR_STD_NOT_FOUND) { - desc.element = ATTR_ELEMENT_NONE; + desc = attribute_not_found(); desc.offset = 0; desc.type = (NodeAttributeType)node.w; } } else { /* background */ - desc.element = ATTR_ELEMENT_NONE; + desc = attribute_not_found(); desc.offset = 0; desc.type = (NodeAttributeType)node.w; } diff --git a/intern/cycles/kernel/svm/svm_bump.h b/intern/cycles/kernel/svm/svm_bump.h new file mode 100644 index 00000000000..04a8c7b64e5 --- /dev/null +++ b/intern/cycles/kernel/svm/svm_bump.h @@ -0,0 +1,54 @@ +/* + * Copyright 2011-2016 Blender Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +CCL_NAMESPACE_BEGIN + +/* Bump Eval Nodes */ + +ccl_device void svm_node_enter_bump_eval(KernelGlobals *kg, ShaderData *sd, float *stack, uint offset) +{ + /* save state */ + stack_store_float3(stack, offset+0, ccl_fetch(sd, P)); + stack_store_float3(stack, offset+3, ccl_fetch(sd, dP).dx); + stack_store_float3(stack, offset+6, ccl_fetch(sd, dP).dy); + + /* set state as if undisplaced */ + const AttributeDescriptor desc = find_attribute(kg, sd, ATTR_STD_POSITION_UNDISPLACED); + + if(desc.offset != ATTR_STD_NOT_FOUND) { + float3 P, dPdx, dPdy; + P = primitive_attribute_float3(kg, sd, desc, &dPdx, &dPdy); + + object_position_transform(kg, sd, &P); + object_dir_transform(kg, sd, &dPdx); + object_dir_transform(kg, sd, &dPdy); + + ccl_fetch(sd, P) = P; + ccl_fetch(sd, dP).dx = dPdx; + ccl_fetch(sd, dP).dy = dPdy; + } +} + +ccl_device void svm_node_leave_bump_eval(KernelGlobals *kg, ShaderData *sd, float *stack, uint offset) +{ + /* restore state */ + ccl_fetch(sd, P) = stack_load_float3(stack, offset+0); + ccl_fetch(sd, dP).dx = stack_load_float3(stack, offset+3); + ccl_fetch(sd, dP).dy = stack_load_float3(stack, offset+6); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index 5d02be1fa2f..378ce650129 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -296,7 +296,7 @@ ccl_device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y, /* float, byte and half */ else { float f = kernel_tex_image_interp_float(tex, x, y); - r = make_float4(f, f, f, 1.0); + r = make_float4(f, f, f, 1.0f); } # endif #endif diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h index 01dede3fff5..6ea2539c543 100644 --- a/intern/cycles/kernel/svm/svm_tex_coord.h +++ b/intern/cycles/kernel/svm/svm_tex_coord.h @@ -277,6 +277,7 @@ ccl_device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *st float3 color = stack_load_float3(stack, color_offset); color = 2.0f*make_float3(color.x - 0.5f, color.y - 0.5f, color.z - 0.5f); + bool is_backfacing = (ccl_fetch(sd, flag) & SD_BACKFACING) != 0; float3 N; if(space == NODE_NORMAL_MAP_TANGENT) { @@ -306,6 +307,12 @@ ccl_device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *st } else { normal = ccl_fetch(sd, Ng); + + /* the normal is already inverted, which is too soon for the math here */ + if(is_backfacing) { + normal = -normal; + } + object_inverse_normal_transform(kg, sd, &normal); } @@ -332,6 +339,11 @@ ccl_device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *st N = safe_normalize(N); } + /* invert normal for backfacing polygons */ + if(is_backfacing) { + N = -N; + } + float strength = stack_load_float(stack, strength_offset); if(strength != 1.0f) { diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 51083c31708..9cfa8395b85 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -26,6 +26,8 @@ CCL_NAMESPACE_BEGIN /* SVM stack offsets with this value indicate that it's not on the stack */ #define SVM_STACK_INVALID 255 +#define SVM_BUMP_EVAL_STATE_SIZE 9 + /* Nodes */ /* Known frequencies of used nodes, used for selective nodes compilation @@ -127,6 +129,8 @@ typedef enum ShaderNodeType { NODE_HAIR_INFO, NODE_UVMAP, NODE_TEX_VOXEL, + NODE_ENTER_BUMP_EVAL, + NODE_LEAVE_BUMP_EVAL, } ShaderNodeType; typedef enum NodeAttributeType { @@ -374,7 +378,8 @@ typedef enum NodeTexVoxelSpace { typedef enum ShaderType { SHADER_TYPE_SURFACE, SHADER_TYPE_VOLUME, - SHADER_TYPE_DISPLACEMENT + SHADER_TYPE_DISPLACEMENT, + SHADER_TYPE_BUMP, } ShaderType; /* Closure */ diff --git a/intern/cycles/kernel/svm/svm_voxel.h b/intern/cycles/kernel/svm/svm_voxel.h index d2cc2c3730e..f54f4e8e888 100644 --- a/intern/cycles/kernel/svm/svm_voxel.h +++ b/intern/cycles/kernel/svm/svm_voxel.h @@ -50,7 +50,7 @@ ccl_device void svm_node_tex_voxel(KernelGlobals *kg, r = kernel_tex_image_interp_3d_float4(tex, co.x, co.y, co.z); else { float f = kernel_tex_image_interp_3d_float(tex, co.x, co.y, co.z); - r = make_float4(f, f, f, 1.0); + r = make_float4(f, f, f, 1.0f); } # else /* __CUDA_ARCH__ >= 300 */ r = volume_image_texture_3d(id, co.x, co.y, co.z); diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp index 6e795ef896a..57256ceecd3 100644 --- a/intern/cycles/render/graph.cpp +++ b/intern/cycles/render/graph.cpp @@ -856,27 +856,8 @@ void ShaderGraph::bump_from_displacement() /* connect the bump out to the set normal in: */ connect(bump->output("Normal"), set_normal->input("Direction")); - /* connect bump output to normal input nodes that aren't set yet. actually - * this will only set the normal input to the geometry node that we created - * and connected to all other normal inputs already. */ - foreach(ShaderNode *node, nodes) { - /* Don't connect normal to the bump node we're coming from, - * otherwise it'll be a cycle in graph. - */ - if(node == bump) { - continue; - } - foreach(ShaderInput *input, node->inputs) { - if(!input->link && (input->flags() & SocketType::LINK_NORMAL)) - connect(set_normal->output("Normal"), input); - } - } - - /* for displacement bump, clear the normal input in case the above loop - * connected the setnormal out to the bump normalin */ - ShaderInput *bump_normal_in = bump->input("Normal"); - if(bump_normal_in) - bump_normal_in->link = NULL; + /* connect to output node */ + connect(set_normal->output("Normal"), output()->input("Normal")); /* finally, add the copied nodes to the graph. we can't do this earlier * because we would create dependency cycles in the above loop */ diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp index 4cd77f8c6e1..787e5cf07b2 100644 --- a/intern/cycles/render/light.cpp +++ b/intern/cycles/render/light.cpp @@ -177,6 +177,16 @@ LightManager::~LightManager() { } +bool LightManager::has_background_light(Scene *scene) +{ + foreach(Light *light, scene->lights) { + if(light->type == LIGHT_BACKGROUND) { + return true; + } + } + return false; +} + void LightManager::disable_ineffective_light(Device *device, Scene *scene) { /* Make all lights enabled by default, and perform some preliminary checks diff --git a/intern/cycles/render/light.h b/intern/cycles/render/light.h index 745caa96159..040a672937d 100644 --- a/intern/cycles/render/light.h +++ b/intern/cycles/render/light.h @@ -91,6 +91,9 @@ public: void tag_update(Scene *scene); + /* Check whether there is a background light. */ + bool has_background_light(Scene *scene); + protected: /* Optimization: disable light which is either unsupported or * which doesn't contribute to the scene or which is only used for MIS diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index 257e83171e9..5445fd3c29c 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -500,7 +500,7 @@ void Mesh::add_vertex_normals() size_t triangles_size = num_triangles(); /* static vertex normals */ - if(!attributes.find(ATTR_STD_VERTEX_NORMAL)) { + if(!attributes.find(ATTR_STD_VERTEX_NORMAL) && triangles_size) { /* get attributes */ Attribute *attr_fN = attributes.find(ATTR_STD_FACE_NORMAL); Attribute *attr_vN = attributes.add(ATTR_STD_VERTEX_NORMAL); @@ -511,17 +511,17 @@ void Mesh::add_vertex_normals() /* compute vertex normals */ memset(vN, 0, verts.size()*sizeof(float3)); - if(triangles_size) { - - for(size_t i = 0; i < triangles_size; i++) - for(size_t j = 0; j < 3; j++) - vN[get_triangle(i).v[j]] += fN[i]; + for(size_t i = 0; i < triangles_size; i++) { + for(size_t j = 0; j < 3; j++) { + vN[get_triangle(i).v[j]] += fN[i]; + } } for(size_t i = 0; i < verts_size; i++) { vN[i] = normalize(vN[i]); - if(flip) + if(flip) { vN[i] = -vN[i]; + } } } @@ -529,7 +529,7 @@ void Mesh::add_vertex_normals() Attribute *attr_mP = attributes.find(ATTR_STD_MOTION_VERTEX_POSITION); Attribute *attr_mN = attributes.find(ATTR_STD_MOTION_VERTEX_NORMAL); - if(has_motion_blur() && attr_mP && !attr_mN) { + if(has_motion_blur() && attr_mP && !attr_mN && triangles_size) { /* create attribute */ attr_mN = attributes.add(ATTR_STD_MOTION_VERTEX_NORMAL); @@ -540,27 +540,79 @@ void Mesh::add_vertex_normals() /* compute */ memset(mN, 0, verts.size()*sizeof(float3)); - if(triangles_size) { - for(size_t i = 0; i < triangles_size; i++) { - for(size_t j = 0; j < 3; j++) { - float3 fN = compute_face_normal(get_triangle(i), mP); - mN[get_triangle(i).v[j]] += fN; - } + for(size_t i = 0; i < triangles_size; i++) { + for(size_t j = 0; j < 3; j++) { + float3 fN = compute_face_normal(get_triangle(i), mP); + mN[get_triangle(i).v[j]] += fN; } } for(size_t i = 0; i < verts_size; i++) { mN[i] = normalize(mN[i]); - if(flip) + if(flip) { mN[i] = -mN[i]; + } + } + } + } + + /* subd vertex normals */ + if(!subd_attributes.find(ATTR_STD_VERTEX_NORMAL) && subd_faces.size()) { + /* get attributes */ + Attribute *attr_vN = subd_attributes.add(ATTR_STD_VERTEX_NORMAL); + float3 *vN = attr_vN->data_float3(); + + /* compute vertex normals */ + memset(vN, 0, verts.size()*sizeof(float3)); + + for(size_t i = 0; i < subd_faces.size(); i++) { + SubdFace& face = subd_faces[i]; + float3 fN = face.normal(this); + + for(size_t j = 0; j < face.num_corners; j++) { + size_t corner = subd_face_corners[face.start_corner+j]; + vN[corner] += fN; + } + } + + for(size_t i = 0; i < verts_size; i++) { + vN[i] = normalize(vN[i]); + if(flip) { + vN[i] = -vN[i]; } } } } +void Mesh::add_undisplaced() +{ + AttributeSet& attrs = (subdivision_type == SUBDIVISION_NONE) ? attributes : subd_attributes; + + /* don't compute if already there */ + if(attrs.find(ATTR_STD_POSITION_UNDISPLACED)) { + return; + } + + /* get attribute */ + Attribute *attr = attrs.add(ATTR_STD_POSITION_UNDISPLACED); + attr->flags |= ATTR_SUBDIVIDED; + + float3 *data = attr->data_float3(); + + /* copy verts */ + size_t size = attr->buffer_size(this, (subdivision_type == SUBDIVISION_NONE) ? ATTR_PRIM_TRIANGLE : ATTR_PRIM_SUBD); + if(size) { + memcpy(data, verts.data(), size); + } +} + void Mesh::pack_normals(Scene *scene, uint *tri_shader, float4 *vnormal) { Attribute *attr_vN = attributes.find(ATTR_STD_VERTEX_NORMAL); + if(attr_vN == NULL) { + /* Happens on objects with just hair. */ + return; + } float3 *vN = attr_vN->data_float3(); uint shader_id = 0; @@ -580,7 +632,7 @@ void Mesh::pack_normals(Scene *scene, uint *tri_shader, float4 *vnormal) last_smooth = smooth[i]; Shader *shader = (last_shader < used_shaders.size()) ? used_shaders[last_shader] : scene->default_surface; - shader_id = scene->shader_manager->get_shader_id(shader, this, last_smooth); + shader_id = scene->shader_manager->get_shader_id(shader, last_smooth); } tri_shader[i] = shader_id; @@ -617,16 +669,14 @@ void Mesh::pack_verts(const vector<uint>& tri_prim_index, size_t triangles_size = num_triangles(); - if(triangles_size) { - for(size_t i = 0; i < triangles_size; i++) { - Triangle t = get_triangle(i); - tri_vindex[i] = make_uint4(t.v[0] + vert_offset, - t.v[1] + vert_offset, - t.v[2] + vert_offset, - tri_prim_index[i + tri_offset]); + for(size_t i = 0; i < triangles_size; i++) { + Triangle t = get_triangle(i); + tri_vindex[i] = make_uint4(t.v[0] + vert_offset, + t.v[1] + vert_offset, + t.v[2] + vert_offset, + tri_prim_index[i + tri_offset]); - tri_patch[i] = (!subd_faces.size()) ? -1 : (triangle_patch[i]*8 + patch_offset); - } + tri_patch[i] = (!subd_faces.size()) ? -1 : (triangle_patch[i]*8 + patch_offset); } } @@ -646,20 +696,18 @@ void Mesh::pack_curves(Scene *scene, float4 *curve_key_co, float4 *curve_data, s /* pack curve segments */ size_t curve_num = num_curves(); - if(curve_num) { - for(size_t i = 0; i < curve_num; i++) { - Curve curve = get_curve(i); - int shader_id = curve_shader[i]; - Shader *shader = (shader_id < used_shaders.size()) ? - used_shaders[shader_id] : scene->default_surface; - shader_id = scene->shader_manager->get_shader_id(shader, this, false); - - curve_data[i] = make_float4( - __int_as_float(curve.first_key + curvekey_offset), - __int_as_float(curve.num_keys), - __int_as_float(shader_id), - 0.0f); - } + for(size_t i = 0; i < curve_num; i++) { + Curve curve = get_curve(i); + int shader_id = curve_shader[i]; + Shader *shader = (shader_id < used_shaders.size()) ? + used_shaders[shader_id] : scene->default_surface; + shader_id = scene->shader_manager->get_shader_id(shader, false); + + curve_data[i] = make_float4( + __int_as_float(curve.first_key + curvekey_offset), + __int_as_float(curve.num_keys), + __int_as_float(shader_id), + 0.0f); } } @@ -668,13 +716,30 @@ void Mesh::pack_patches(uint *patch_data, uint vert_offset, uint face_offset, ui size_t num_faces = subd_faces.size(); int ngons = 0; - if(num_faces) { - for(size_t f = 0; f < num_faces; f++) { - SubdFace face = subd_faces[f]; + for(size_t f = 0; f < num_faces; f++) { + SubdFace face = subd_faces[f]; + + if(face.is_quad()) { + int c[4]; + memcpy(c, &subd_face_corners[face.start_corner], sizeof(int)*4); + + *(patch_data++) = c[0] + vert_offset; + *(patch_data++) = c[1] + vert_offset; + *(patch_data++) = c[2] + vert_offset; + *(patch_data++) = c[3] + vert_offset; - if(face.is_quad()) { + *(patch_data++) = f+face_offset; + *(patch_data++) = face.num_corners; + *(patch_data++) = face.start_corner + corner_offset; + *(patch_data++) = 0; + } + else { + for(int i = 0; i < face.num_corners; i++) { int c[4]; - memcpy(c, &subd_face_corners[face.start_corner], sizeof(int)*4); + c[0] = subd_face_corners[face.start_corner + mod(i + 0, face.num_corners)]; + c[1] = subd_face_corners[face.start_corner + mod(i + 1, face.num_corners)]; + c[2] = verts.size() - num_subd_verts + ngons; + c[3] = subd_face_corners[face.start_corner + mod(i - 1, face.num_corners)]; *(patch_data++) = c[0] + vert_offset; *(patch_data++) = c[1] + vert_offset; @@ -682,31 +747,12 @@ void Mesh::pack_patches(uint *patch_data, uint vert_offset, uint face_offset, ui *(patch_data++) = c[3] + vert_offset; *(patch_data++) = f+face_offset; - *(patch_data++) = face.num_corners; + *(patch_data++) = face.num_corners | (i << 16); *(patch_data++) = face.start_corner + corner_offset; - *(patch_data++) = 0; + *(patch_data++) = subd_face_corners.size() + ngons + corner_offset; } - else { - for(int i = 0; i < face.num_corners; i++) { - int c[4]; - c[0] = subd_face_corners[face.start_corner + mod(i + 0, face.num_corners)]; - c[1] = subd_face_corners[face.start_corner + mod(i + 1, face.num_corners)]; - c[2] = verts.size() - num_subd_verts + ngons; - c[3] = subd_face_corners[face.start_corner + mod(i - 1, face.num_corners)]; - - *(patch_data++) = c[0] + vert_offset; - *(patch_data++) = c[1] + vert_offset; - *(patch_data++) = c[2] + vert_offset; - *(patch_data++) = c[3] + vert_offset; - - *(patch_data++) = f+face_offset; - *(patch_data++) = face.num_corners | (i << 16); - *(patch_data++) = face.start_corner + corner_offset; - *(patch_data++) = subd_face_corners.size() + ngons + corner_offset; - } - ngons++; - } + ngons++; } } } @@ -1658,6 +1704,10 @@ void MeshManager::device_update(Device *device, DeviceScene *dscene, Scene *scen mesh->add_face_normals(); mesh->add_vertex_normals(); + if(mesh->need_attribute(scene, ATTR_STD_POSITION_UNDISPLACED)) { + mesh->add_undisplaced(); + } + if(progress.get_cancel()) return; } } diff --git a/intern/cycles/render/mesh.h b/intern/cycles/render/mesh.h index a77e296ea4a..c0310f45840 100644 --- a/intern/cycles/render/mesh.h +++ b/intern/cycles/render/mesh.h @@ -215,6 +215,7 @@ public: void compute_bounds(); void add_face_normals(); void add_vertex_normals(); + void add_undisplaced(); void pack_normals(Scene *scene, uint *shader, float4 *vnormal); void pack_verts(const vector<uint>& tri_prim_index, diff --git a/intern/cycles/render/mesh_subdivision.cpp b/intern/cycles/render/mesh_subdivision.cpp index f87425f0042..c8cc3abf7d9 100644 --- a/intern/cycles/render/mesh_subdivision.cpp +++ b/intern/cycles/render/mesh_subdivision.cpp @@ -299,7 +299,9 @@ void Mesh::tessellate(DiagSplit *split) bool need_packed_patch_table = false; if(subdivision_type == SUBDIVISION_CATMULL_CLARK) { - osd_data.build_from_mesh(this); + if(subd_faces.size()) { + osd_data.build_from_mesh(this); + } } else #endif @@ -468,7 +470,7 @@ void Mesh::tessellate(DiagSplit *split) /* keep subdivision for corner attributes disabled for now */ attr.flags &= ~ATTR_SUBDIVIDED; } - else { + else if(subd_faces.size()) { osd_data.subdivide_attribute(attr); need_packed_patch_table = true; diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 4f54b86fe4a..0304d6d95d1 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -4846,12 +4846,8 @@ void CurvesNode::constant_fold(const ConstantFolder& folder, ShaderInput *value_ { ShaderInput *fac_in = input("Fac"); - /* remove no-op node */ - if(!fac_in->link && fac == 0.0f) { - folder.bypass(value_in->link); - } /* evaluate fully constant node */ - else if(folder.all_inputs_constant()) { + if(folder.all_inputs_constant()) { if (curves.size() == 0) return; @@ -4864,6 +4860,11 @@ void CurvesNode::constant_fold(const ConstantFolder& folder, ShaderInput *value_ folder.make_constant(interp(value, result, fac)); } + /* remove no-op node */ + else if(!fac_in->link && fac == 0.0f) { + /* link is not null because otherwise all inputs are constant */ + folder.bypass(value_in->link); + } } void CurvesNode::compile(SVMCompiler& compiler, int type, ShaderInput *value_in, ShaderOutput *value_out) diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp index 62076f3a865..d8f3ce58505 100644 --- a/intern/cycles/render/object.cpp +++ b/intern/cycles/render/object.cpp @@ -45,6 +45,7 @@ NODE_DEFINE(Object) SOCKET_UINT(random_id, "Random ID", 0); SOCKET_INT(pass_id, "Pass ID", 0); SOCKET_BOOLEAN(use_holdout, "Use Holdout", false); + SOCKET_BOOLEAN(hide_on_missing_motion, "Hide on Missing Motion", false); SOCKET_POINT(dupli_generated, "Dupli Generated", make_float3(0.0f, 0.0f, 0.0f)); SOCKET_POINT2(dupli_uv, "Dupli UV", make_float2(0.0f, 0.0f)); @@ -72,28 +73,41 @@ void Object::compute_bounds(bool motion_blur) BoundBox mbounds = mesh->bounds; if(motion_blur && use_motion) { - if(motion.pre == transform_empty() || - motion.post == transform_empty()) { + MotionTransform mtfm = motion; + + if(hide_on_missing_motion) { /* Hide objects that have no valid previous or next transform, for * example particle that stop existing. TODO: add support for this * case in the kernel so we don't get render artifacts. */ - bounds = BoundBox::empty; + if(mtfm.pre == transform_empty() || + mtfm.post == transform_empty()) { + bounds = BoundBox::empty; + return; + } + } + + /* In case of missing motion information for previous/next frame, + * assume there is no motion. */ + if(mtfm.pre == transform_empty()) { + mtfm.pre = tfm; + } + if(mtfm.post == transform_empty()) { + mtfm.post = tfm; } - else { - DecompMotionTransform decomp; - transform_motion_decompose(&decomp, &motion, &tfm); - bounds = BoundBox::empty; + DecompMotionTransform decomp; + transform_motion_decompose(&decomp, &mtfm, &tfm); - /* todo: this is really terrible. according to pbrt there is a better - * way to find this iteratively, but did not find implementation yet - * or try to implement myself */ - for(float t = 0.0f; t < 1.0f; t += (1.0f/128.0f)) { - Transform ttfm; + bounds = BoundBox::empty; - transform_motion_interpolate(&ttfm, &decomp, t); - bounds.grow(mbounds.transformed(&ttfm)); - } + /* todo: this is really terrible. according to pbrt there is a better + * way to find this iteratively, but did not find implementation yet + * or try to implement myself */ + for(float t = 0.0f; t < 1.0f; t += (1.0f/128.0f)) { + Transform ttfm; + + transform_motion_interpolate(&ttfm, &decomp, t); + bounds.grow(mbounds.transformed(&ttfm)); } } else { @@ -345,28 +359,27 @@ void ObjectManager::device_update_object_transform(UpdateObejctTransformState *s * comes with deformed position in object space, or if we transform * the shading point in world space. */ - Transform mtfm_pre = ob->motion.pre; - Transform mtfm_post = ob->motion.post; + MotionTransform mtfm = ob->motion; /* In case of missing motion information for previous/next frame, * assume there is no motion. */ - if(!ob->use_motion || mtfm_pre == transform_empty()) { - mtfm_pre = ob->tfm; + if(!ob->use_motion || mtfm.pre == transform_empty()) { + mtfm.pre = ob->tfm; } - if(!ob->use_motion || mtfm_post == transform_empty()) { - mtfm_post = ob->tfm; + if(!ob->use_motion || mtfm.post == transform_empty()) { + mtfm.post = ob->tfm; } if(!mesh->attributes.find(ATTR_STD_MOTION_VERTEX_POSITION)) { - mtfm_pre = mtfm_pre * itfm; - mtfm_post = mtfm_post * itfm; + mtfm.pre = mtfm.pre * itfm; + mtfm.post = mtfm.post * itfm; } else { flag |= SD_OBJECT_HAS_VERTEX_MOTION; } - memcpy(&objects_vector[object_index*OBJECT_VECTOR_SIZE+0], &mtfm_pre, sizeof(float4)*3); - memcpy(&objects_vector[object_index*OBJECT_VECTOR_SIZE+3], &mtfm_post, sizeof(float4)*3); + memcpy(&objects_vector[object_index*OBJECT_VECTOR_SIZE+0], &mtfm.pre, sizeof(float4)*3); + memcpy(&objects_vector[object_index*OBJECT_VECTOR_SIZE+3], &mtfm.post, sizeof(float4)*3); } #ifdef __OBJECT_MOTION__ else if(state->need_motion == Scene::MOTION_BLUR) { @@ -692,7 +705,7 @@ void ObjectManager::apply_static_transforms(DeviceScene *dscene, Scene *scene, u * Could be solved by moving reference counter to Mesh. */ if((mesh_users[object->mesh] == 1 && !object->mesh->has_surface_bssrdf) && - !object->mesh->has_true_displacement()) + !object->mesh->has_true_displacement() && object->mesh->subdivision_type == Mesh::SUBDIVISION_NONE) { if(!(motion_blur && object->use_motion)) { if(!object->mesh->transform_applied) { diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h index 2e5837f672f..7e306fab2a8 100644 --- a/intern/cycles/render/object.h +++ b/intern/cycles/render/object.h @@ -51,6 +51,7 @@ public: uint visibility; MotionTransform motion; bool use_motion; + bool hide_on_missing_motion; bool use_holdout; float3 dupli_generated; diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp index 1a6ae5f9277..f83aab47e84 100644 --- a/intern/cycles/render/osl.cpp +++ b/intern/cycles/render/osl.cpp @@ -609,7 +609,7 @@ bool OSLCompiler::node_skip_input(ShaderNode *node, ShaderInput *input) return true; if(input->name() == "Displacement" && current_type != SHADER_TYPE_DISPLACEMENT) return true; - if(input->name() == "Normal") + if(input->name() == "Normal" && current_type != SHADER_TYPE_BUMP) return true; } else if(node->special_type == SHADER_SPECIAL_TYPE_BUMP) { @@ -684,6 +684,8 @@ void OSLCompiler::add(ShaderNode *node, const char *name, bool isfilepath) ss->Shader("surface", name, id(node).c_str()); else if(current_type == SHADER_TYPE_DISPLACEMENT) ss->Shader("displacement", name, id(node).c_str()); + else if(current_type == SHADER_TYPE_BUMP) + ss->Shader("displacement", name, id(node).c_str()); else assert(0); @@ -1055,6 +1057,12 @@ OSL::ShaderGroupRef OSLCompiler::compile_type(Shader *shader, ShaderGraph *graph generate_nodes(dependencies); output->compile(*this); } + else if(type == SHADER_TYPE_BUMP) { + /* generate bump shader */ + find_dependencies(dependencies, output->input("Normal")); + generate_nodes(dependencies); + output->compile(*this); + } else if(type == SHADER_TYPE_VOLUME) { /* generate volume shader */ find_dependencies(dependencies, output->input("Volume")); @@ -1116,10 +1124,10 @@ void OSLCompiler::compile(Scene *scene, OSLGlobals *og, Shader *shader) if(shader->used && graph && output->input("Surface")->link) { shader->osl_surface_ref = compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); - if(shader->graph_bump) - shader->osl_surface_bump_ref = compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); + if(shader->graph_bump && shader->displacement_method != DISPLACE_TRUE) + shader->osl_surface_bump_ref = compile_type(shader, shader->graph_bump, SHADER_TYPE_BUMP); else - shader->osl_surface_bump_ref = shader->osl_surface_ref; + shader->osl_surface_bump_ref = OSL::ShaderGroupRef(); shader->has_surface = true; } @@ -1147,13 +1155,9 @@ void OSLCompiler::compile(Scene *scene, OSLGlobals *og, Shader *shader) /* push state to array for lookup */ og->surface_state.push_back(shader->osl_surface_ref); - og->surface_state.push_back(shader->osl_surface_bump_ref); - - og->volume_state.push_back(shader->osl_volume_ref); og->volume_state.push_back(shader->osl_volume_ref); - - og->displacement_state.push_back(shader->osl_displacement_ref); og->displacement_state.push_back(shader->osl_displacement_ref); + og->bump_state.push_back(shader->osl_surface_bump_ref); } #else diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp index d000cca5a45..10c3507e3f4 100644 --- a/intern/cycles/render/shader.cpp +++ b/intern/cycles/render/shader.cpp @@ -221,6 +221,16 @@ void Shader::tag_update(Scene *scene) if(use_mis && has_surface_emission) scene->light_manager->need_update = true; + /* Special handle of background MIS light for now: for some reason it + * has use_mis set to false. We are quite close to release now, so + * better to be safe. + */ + if(this == scene->default_background && + scene->light_manager->has_background_light(scene)) + { + scene->light_manager->need_update = true; + } + /* quick detection of which kind of shaders we have to avoid loading * e.g. surface attributes when there is only a volume shader. this could * be more fine grained but it's better than nothing */ @@ -240,6 +250,10 @@ void Shader::tag_update(Scene *scene) attributes.clear(); foreach(ShaderNode *node, graph->nodes) node->attributes(this, &attributes); + + if(has_displacement && displacement_method == DISPLACE_BOTH) { + attributes.add(ATTR_STD_POSITION_UNDISPLACED); + } /* compare if the attributes changed, mesh manager will check * need_update_attributes, update the relevant meshes and clear it. */ @@ -312,14 +326,11 @@ uint ShaderManager::get_attribute_id(AttributeStandard std) return (uint)std; } -int ShaderManager::get_shader_id(Shader *shader, Mesh *mesh, bool smooth) +int ShaderManager::get_shader_id(Shader *shader, bool smooth) { /* get a shader id to pass to the kernel */ - int id = shader->id*2; - - /* index depends bump since this setting is not in the shader */ - if(mesh && shader->displacement_method != DISPLACE_TRUE) - id += 1; + int id = shader->id; + /* smooth flag */ if(smooth) id |= SHADER_SMOOTH_NORMAL; @@ -368,7 +379,7 @@ void ShaderManager::device_update_common(Device *device, if(scene->shaders.size() == 0) return; - uint shader_flag_size = scene->shaders.size()*4; + uint shader_flag_size = scene->shaders.size()*2; uint *shader_flag = dscene->shader_flag.resize(shader_flag_size); uint i = 0; bool has_volumes = false; @@ -406,15 +417,14 @@ void ShaderManager::device_update_common(Device *device, flag |= SD_VOLUME_CUBIC; if(shader->graph_bump) flag |= SD_HAS_BUMP; - - /* regular shader */ - shader_flag[i++] = flag; - shader_flag[i++] = shader->pass_id; + if(shader->displacement_method != DISPLACE_BUMP) + flag |= SD_HAS_DISPLACEMENT; /* shader with bump mapping */ - if(shader->graph_bump) + if(shader->displacement_method != DISPLACE_TRUE && shader->graph_bump) flag |= SD_HAS_BSSRDF_BUMP; + /* regular shader */ shader_flag[i++] = flag; shader_flag[i++] = shader->pass_id; diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h index 060ad7056bc..696e22bc3c9 100644 --- a/intern/cycles/render/shader.h +++ b/intern/cycles/render/shader.h @@ -173,7 +173,7 @@ public: uint get_attribute_id(AttributeStandard std); /* get shader id for mesh faces */ - int get_shader_id(Shader *shader, Mesh *mesh = NULL, bool smooth = false); + int get_shader_id(Shader *shader, bool smooth = false); /* add default shaders to scene, to use as default for things that don't * have any shader assigned explicitly */ diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index 1a166885e2b..069c3e3043a 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -63,7 +63,6 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene for(i = 0; i < scene->shaders.size(); i++) { svm_nodes.push_back(make_int4(NODE_SHADER_JUMP, 0, 0, 0)); - svm_nodes.push_back(make_int4(NODE_SHADER_JUMP, 0, 0, 0)); } foreach(Shader *shader, scene->shaders) { @@ -147,9 +146,8 @@ int SVMCompiler::stack_size(SocketType::Type type) return size; } -int SVMCompiler::stack_find_offset(SocketType::Type type) +int SVMCompiler::stack_find_offset(int size) { - int size = stack_size(type); int offset = -1; /* find free space in stack & mark as used */ @@ -176,6 +174,11 @@ int SVMCompiler::stack_find_offset(SocketType::Type type) return 0; } +int SVMCompiler::stack_find_offset(SocketType::Type type) +{ + return stack_find_offset(stack_size(type)); +} + void SVMCompiler::stack_clear_offset(SocketType::Type type, int offset) { int size = stack_size(type); @@ -648,6 +651,9 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty case SHADER_TYPE_DISPLACEMENT: clin = node->input("Displacement"); break; + case SHADER_TYPE_BUMP: + clin = node->input("Normal"); + break; default: assert(0); break; @@ -664,6 +670,13 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty output->stack_offset = SVM_STACK_INVALID; } + /* for the bump shader we need add a node to store the shader state */ + int bump_state_offset = SVM_STACK_INVALID; + if(type == SHADER_TYPE_BUMP) { + bump_state_offset = stack_find_offset(SVM_BUMP_EVAL_STATE_SIZE); + add_node(NODE_ENTER_BUMP_EVAL, bump_state_offset); + } + if(shader->used) { if(clin->link) { bool generate = false; @@ -681,6 +694,9 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty generate = true; shader->has_displacement = true; break; + case SHADER_TYPE_BUMP: /* generate bump shader */ + generate = true; + break; default: break; } @@ -697,13 +713,21 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty node->compile(*this); } + /* add node to restore state after bump shader has finished */ + if(type == SHADER_TYPE_BUMP) { + add_node(NODE_LEAVE_BUMP_EVAL, bump_state_offset); + } + /* if compile failed, generate empty shader */ if(compile_failed) { svm_nodes.clear(); compile_failed = false; } - add_node(NODE_END, 0, 0, 0); + /* for bump shaders we fall thru to the surface shader, but if this is any other kind of shader it ends here */ + if(type != SHADER_TYPE_BUMP) { + add_node(NODE_END, 0, 0, 0); + } } void SVMCompiler::compile(Scene *scene, @@ -753,19 +777,22 @@ void SVMCompiler::compile(Scene *scene, shader->has_object_dependency = false; shader->has_integrator_dependency = false; + /* generate bump shader */ + if(shader->displacement_method != DISPLACE_TRUE && shader->graph_bump) { + scoped_timer timer((summary != NULL)? &summary->time_generate_bump: NULL); + compile_type(shader, shader->graph_bump, SHADER_TYPE_BUMP); + global_svm_nodes[index].y = global_svm_nodes.size(); + global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); + } + /* generate surface shader */ { scoped_timer timer((summary != NULL)? &summary->time_generate_surface: NULL); compile_type(shader, shader->graph, SHADER_TYPE_SURFACE); - global_svm_nodes[index*2 + 0].y = global_svm_nodes.size(); - global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); - global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); - } - - if(shader->graph_bump) { - scoped_timer timer((summary != NULL)? &summary->time_generate_bump: NULL); - compile_type(shader, shader->graph_bump, SHADER_TYPE_SURFACE); - global_svm_nodes[index*2 + 1].y = global_svm_nodes.size(); + /* only set jump offset if there's no bump shader, as the bump shader will fall thru to this one if it exists */ + if(shader->displacement_method == DISPLACE_TRUE || !shader->graph_bump) { + global_svm_nodes[index].y = global_svm_nodes.size(); + } global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); } @@ -773,8 +800,7 @@ void SVMCompiler::compile(Scene *scene, { scoped_timer timer((summary != NULL)? &summary->time_generate_volume: NULL); compile_type(shader, shader->graph, SHADER_TYPE_VOLUME); - global_svm_nodes[index*2 + 0].z = global_svm_nodes.size(); - global_svm_nodes[index*2 + 1].z = global_svm_nodes.size(); + global_svm_nodes[index].z = global_svm_nodes.size(); global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); } @@ -782,8 +808,7 @@ void SVMCompiler::compile(Scene *scene, { scoped_timer timer((summary != NULL)? &summary->time_generate_displacement: NULL); compile_type(shader, shader->graph, SHADER_TYPE_DISPLACEMENT); - global_svm_nodes[index*2 + 0].w = global_svm_nodes.size(); - global_svm_nodes[index*2 + 1].w = global_svm_nodes.size(); + global_svm_nodes[index].w = global_svm_nodes.size(); global_svm_nodes.insert(global_svm_nodes.end(), svm_nodes.begin(), svm_nodes.end()); } diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index e14d57d7601..99e91ca0c3e 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -99,6 +99,7 @@ public: int stack_assign(ShaderInput *input); int stack_assign_if_linked(ShaderInput *input); int stack_assign_if_linked(ShaderOutput *output); + int stack_find_offset(int size); int stack_find_offset(SocketType::Type type); void stack_clear_offset(SocketType::Type type, int offset); void stack_link(ShaderInput *input, ShaderOutput *output); diff --git a/intern/cycles/subd/subd_dice.h b/intern/cycles/subd/subd_dice.h index 3002ec780e8..33d13a4ab3a 100644 --- a/intern/cycles/subd/subd_dice.h +++ b/intern/cycles/subd/subd_dice.h @@ -49,7 +49,7 @@ struct SubdParams { test_steps = 3; split_threshold = 1; - dicing_rate = 0.1f; + dicing_rate = 1.0f; max_level = 12; camera = NULL; } diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp index 633e517ce9f..60e41be16aa 100644 --- a/intern/cycles/test/render_graph_finalize_test.cpp +++ b/intern/cycles/test/render_graph_finalize_test.cpp @@ -403,6 +403,26 @@ TEST(render_graph, constant_fold_invert_fac_0) /* * Tests: + * - Folding of Invert with zero Fac and constant input. + */ +TEST(render_graph, constant_fold_invert_fac_0_const) +{ + DEFINE_COMMON_VARIABLES(builder, log); + + EXPECT_ANY_MESSAGE(log); + CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to constant (0.2, 0.5, 0.8)."); + + builder + .add_node(ShaderNodeBuilder<InvertNode>("Invert") + .set("Fac", 0.0f) + .set("Color", make_float3(0.2f, 0.5f, 0.8f))) + .output_color("Invert::Color"); + + graph.finalize(&scene); +} + +/* + * Tests: * - Folding of MixRGB Add with all constant inputs (clamp false). */ TEST(render_graph, constant_fold_mix_add) @@ -1344,6 +1364,33 @@ TEST(render_graph, constant_fold_rgb_curves_fac_0) graph.finalize(&scene); } + +/* + * Tests: + * - Folding of RGB Curves with zero Fac and all constant inputs. + */ +TEST(render_graph, constant_fold_rgb_curves_fac_0_const) +{ + DEFINE_COMMON_VARIABLES(builder, log); + + EXPECT_ANY_MESSAGE(log); + CORRECT_INFO_MESSAGE(log, "Folding Curves::Color to constant (0.3, 0.5, 0.7)."); + + array<float3> curve; + init_test_curve(curve, make_float3(0.0f, 0.25f, 1.0f), make_float3(1.0f, 0.75f, 0.0f), 257); + + builder + .add_node(ShaderNodeBuilder<RGBCurvesNode>("Curves") + .set(&CurvesNode::curves, curve) + .set(&CurvesNode::min_x, 0.1f) + .set(&CurvesNode::max_x, 0.9f) + .set("Fac", 0.0f) + .set("Color", make_float3(0.3f, 0.5f, 0.7f))) + .output_color("Curves::Color"); + + graph.finalize(&scene); +} + /* * Tests: * - Folding of Vector Curves with all constant inputs. diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp index 526fac0cc6b..f6329ad4b67 100644 --- a/intern/elbeem/intern/controlparticles.cpp +++ b/intern/elbeem/intern/controlparticles.cpp @@ -1316,7 +1316,8 @@ void ControlParticles::finishControl(std::vector<ControlForces> &forces, LbmFloa if(cvweight>1.) { cvweight = 1.; } // thus cvweight is in the range of 0..influenceVelocity, currently not normalized by numCParts cvweight *= ivel; - if(cvweight<0.) cvweight=0.; if(cvweight>1.) cvweight=1.; + if(cvweight<0.) cvweight=0.; + if(cvweight>1.) cvweight=1.; // LBM, FIXME todo use relaxation factor //pvel = (cvel*0.5 * cvweight) + (pvel * (1.0-cvweight)); forces[i].weightVel = cvweight; diff --git a/intern/elbeem/intern/isosurface.h b/intern/elbeem/intern/isosurface.h index 15b923866d3..30fd9adfee1 100644 --- a/intern/elbeem/intern/isosurface.h +++ b/intern/elbeem/intern/isosurface.h @@ -67,8 +67,10 @@ class IsoSurface : /*! set # of subdivisions, this has to be done before init! */ void setSubdivs(int s) { if(mInitDone) errFatal("IsoSurface::setSubdivs","Changing subdivs after init!", SIMWORLD_INITERROR); - if(s<1) s=1; if(s>10) s=10; - mSubdivs = s; } + if(s<1) s=1; + if(s>10) s=10; + mSubdivs = s; + } int getSubdivs() { return mSubdivs;} /*! set full edge settings, this has to be done before init! */ void setUseFulledgeArrays(bool set) { diff --git a/intern/ghost/intern/GHOST_ContextWGL.cpp b/intern/ghost/intern/GHOST_ContextWGL.cpp index 12ffb374d02..255c134e0e7 100644 --- a/intern/ghost/intern/GHOST_ContextWGL.cpp +++ b/intern/ghost/intern/GHOST_ContextWGL.cpp @@ -183,6 +183,7 @@ static int weight_pixel_format(PIXELFORMATDESCRIPTOR &pfd, PIXELFORMATDESCRIPTOR !(pfd.dwFlags & PFD_DOUBLEBUFFER) || /* Blender _needs_ this */ !(pfd.iPixelType == PFD_TYPE_RGBA) || (pfd.cDepthBits < 16) || + (pfd.cColorBits > 32) || /* 64 bit formats disable aero */ (pfd.dwFlags & PFD_GENERIC_FORMAT)) /* no software renderers */ { return 0; diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm index b56757cd0fe..3cce6bf520b 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm +++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm @@ -21,8 +21,6 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifdef WITH_INPUT_NDOF - #define DEBUG_NDOF_DRIVER false #include "GHOST_NDOFManagerCocoa.h" @@ -115,13 +113,15 @@ static void* load_func(void* module, const char* func_name) #define LOAD_FUNC(name) name = (name##_ptr) load_func(module, #name) +static void* module; // handle to the whole driver + static bool load_driver_functions() { if (driver_loaded) { return true; } - void* module = dlopen("3DconnexionClient.framework/3DconnexionClient", RTLD_LAZY | RTLD_LOCAL); + module = dlopen("3DconnexionClient.framework/3DconnexionClient", RTLD_LAZY | RTLD_LOCAL); if (module) { LOAD_FUNC(SetConnexionHandlers); @@ -145,8 +145,6 @@ static bool load_driver_functions() has_old_driver = (SetConnexionClientButtonMask == NULL); } - - dlclose(module); // functions will remain loaded } #if DEBUG_NDOF_DRIVER else { @@ -161,6 +159,10 @@ static bool load_driver_functions() return driver_loaded; } +static void unload_driver() +{ + dlclose(module); +} static void DeviceAdded(uint32_t unused) { @@ -268,6 +270,7 @@ GHOST_NDOFManagerCocoa::~GHOST_NDOFManagerCocoa() if (driver_loaded) { UnregisterConnexionClient(clientID); CleanupConnexionHandlers(); + unload_driver(); ghost_system = NULL; ndof_manager = NULL; @@ -278,5 +281,3 @@ bool GHOST_NDOFManagerCocoa::available() { return driver_loaded; } - -#endif // WITH_INPUT_NDOF diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 727bc9a01fb..653c0ccb472 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -838,7 +838,7 @@ GHOST_SystemX11::processEvent(XEvent *xe) case KeyRelease: { XKeyEvent *xke = &(xe->xkey); - KeySym key_sym; + KeySym key_sym = XK_VoidSymbol; KeySym key_sym_str; char ascii; #if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING) @@ -870,26 +870,30 @@ GHOST_SystemX11::processEvent(XEvent *xe) * * To address this, we: * - * - Try to get a 'number' key_sym using XLookupKeysym (with or without shift modifier). + * - Try to get a 'number' key_sym using XLookupKeysym (with virtual shift modifier), + * in a very restrictive set of cases. * - Fallback to XLookupString to get a key_sym from active user-defined keymap. * - * Note that this enforces users to use an ascii-compatible keymap with Blender - but at least it gives - * predictable and consistent results. + * Note that: + * - This effectively 'lock' main number keys to always output number events (except when using alt-gr). + * - This enforces users to use an ascii-compatible keymap with Blender - but at least it gives + * predictable and consistent results. * * Also, note that nothing in XLib sources [1] makes it obvious why those two functions give different * key_sym results... * * [1] http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/KeyBind.c */ - if ((xke->keycode >= 10 && xke->keycode < 20)) { + /* Mode_switch 'modifier' is AltGr - when this one or Shift are enabled, we do not want to apply + * that 'forced number' hack. */ + const unsigned int mode_switch_mask = XkbKeysymToModifiers(xke->display, XK_Mode_switch); + const unsigned int number_hack_forbidden_kmods_mask = mode_switch_mask | ShiftMask; + if ((xke->keycode >= 10 && xke->keycode < 20) && ((xke->state & number_hack_forbidden_kmods_mask) == 0)) { key_sym = XLookupKeysym(xke, ShiftMask); if (!((key_sym >= XK_0) && (key_sym <= XK_9))) { - key_sym = XLookupKeysym(xke, 0); + key_sym = XK_VoidSymbol; } } - else { - key_sym = XLookupKeysym(xke, 0); - } if (!XLookupString(xke, &ascii, 1, &key_sym_str, NULL)) { ascii = '\0'; diff --git a/intern/itasc/ConstraintSet.cpp b/intern/itasc/ConstraintSet.cpp index e21cd36e4c8..0baf580ca68 100644 --- a/intern/itasc/ConstraintSet.cpp +++ b/intern/itasc/ConstraintSet.cpp @@ -145,27 +145,29 @@ bool ConstraintSet::closeLoop(){ //toggle=!toggle; //svd_boost_Macie(Jf,U,S,V,B,temp,1e-3*threshold,toggle); int ret = KDL::svd_eigen_HH(m_Jf,m_U,m_S,m_V,m_temp); - if(ret<0) - return false; + if(ret<0) + return false; // the reference point and frame of the jacobian is the base frame // m_externalPose-m_internalPose is the twist to extend the end effector // to get the required pose => change the reference point to the base frame Twist twist_delta(diff(m_internalPose,m_externalPose)); twist_delta=twist_delta.RefPoint(-m_internalPose.p); - for(unsigned int i=0;i<6;i++) - m_tdelta(i)=twist_delta(i); - //TODO: use damping in constraintset inversion? - for(unsigned int i=0;i<6;i++) - if(m_S(i)<m_threshold){ + for(unsigned int i=0;i<6;i++) + m_tdelta(i)=twist_delta(i); + //TODO: use damping in constraintset inversion? + for(unsigned int i=0;i<6;i++) { + if(m_S(i)<m_threshold){ m_B.row(i).setConstant(0.0); - }else - m_B.row(i) = m_U.col(i)/m_S(i); + } else { + m_B.row(i) = m_U.col(i)/m_S(i); + } + } - m_Jf_inv.noalias()=m_V*m_B; + m_Jf_inv.noalias()=m_V*m_B; - m_chi.noalias()+=m_Jf_inv*m_tdelta; - updateJacobian(); + m_chi.noalias()+=m_Jf_inv*m_tdelta; + updateJacobian(); // m_externalPose-m_internalPose in end effector frame // this is just to compare the pose, a different formula would work too return Equal(m_internalPose.Inverse()*m_externalPose,F_identity,m_threshold); diff --git a/intern/itasc/Scene.cpp b/intern/itasc/Scene.cpp index 7ed8fc4e63c..5768a994970 100644 --- a/intern/itasc/Scene.cpp +++ b/intern/itasc/Scene.cpp @@ -146,11 +146,11 @@ bool Scene::addObject(const std::string& name, Object* object, UncontrolledObjec bool Scene::addConstraintSet(const std::string& name,ConstraintSet* task,const std::string& object1,const std::string& object2, const std::string& ee1, const std::string& ee2) { - //Check if objects exist: - ObjectMap::iterator object1_it = objects.find(object1); - ObjectMap::iterator object2_it = objects.find(object2); - if(object1_it==objects.end()||object2_it==objects.end()) - return false; + //Check if objects exist: + ObjectMap::iterator object1_it = objects.find(object1); + ObjectMap::iterator object2_it = objects.find(object2); + if(object1_it==objects.end()||object2_it==objects.end()) + return false; int ee1_index = object1_it->second->object->addEndEffector(ee1); int ee2_index = object2_it->second->object->addEndEffector(ee2); if (ee1_index < 0 || ee2_index < 0) @@ -159,11 +159,11 @@ bool Scene::addConstraintSet(const std::string& name,ConstraintSet* task,const s constraints.insert(ConstraintMap::value_type(name,new ConstraintSet_struct( task,object1_it,ee1_index,object2_it,ee2_index, Range(m_ncTotal,task->getNrOfConstraints()),Range(6*m_nsets,6)))); - if(!result.second) - return false; - m_ncTotal+=task->getNrOfConstraints(); - m_nsets+=1; - return true; + if(!result.second) + return false; + m_ncTotal+=task->getNrOfConstraints(); + m_nsets+=1; + return true; } bool Scene::addSolver(Solver* _solver){ diff --git a/intern/itasc/WSDLSSolver.cpp b/intern/itasc/WSDLSSolver.cpp index 6fdd8e6e06c..2514dbb9041 100644 --- a/intern/itasc/WSDLSSolver.cpp +++ b/intern/itasc/WSDLSSolver.cpp @@ -60,7 +60,7 @@ bool WSDLSSolver::solve(const e_matrix& A, const e_vector& Wy, const e_vector& y e_scalar N, M; // Create the Weighted jacobian - m_AWq.noalias() = A*Wq; + m_AWq.noalias() = A*Wq; for (i=0; i<m_nc; i++) m_WyAWq.row(i) = Wy(i)*m_AWq.row(i); @@ -72,11 +72,11 @@ bool WSDLSSolver::solve(const e_matrix& A, const e_vector& Wy, const e_vector& y } else { ret = KDL::svd_eigen_HH(m_WyAWq,m_U,m_S,m_V,m_temp); } - if(ret<0) - return false; + if(ret<0) + return false; m_Wy_ydot = Wy.array() * ydot.array(); - m_WqV.noalias() = Wq*m_V; + m_WqV.noalias() = Wq*m_V; qdot.setZero(); e_scalar maxDeltaS = e_scalar(0.0); e_scalar prevS = e_scalar(0.0); diff --git a/release/datafiles/blender_icons.svg b/release/datafiles/blender_icons.svg index 030953cf614..b54cadd40bc 100644 --- a/release/datafiles/blender_icons.svg +++ b/release/datafiles/blender_icons.svg @@ -892,18 +892,6 @@ style="stop-color:#ffedd5;stop-opacity:1;" /> </linearGradient> <linearGradient - inkscape:collect="always" - id="linearGradient24735"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop24737" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop24739" /> - </linearGradient> - <linearGradient id="linearGradient24727"> <stop style="stop-color:#3d361a;stop-opacity:1;" @@ -1329,30 +1317,6 @@ y1="132.15414" x2="130.10634" y2="117.10313" /> - <linearGradient - id="linearGradient30777" - inkscape:collect="always"> - <stop - id="stop30779" - offset="0" - style="stop-color:#acacac;stop-opacity:1" /> - <stop - id="stop30781" - offset="1" - style="stop-color:black;stop-opacity:0;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient29485"> - <stop - style="stop-color:black;stop-opacity:1;" - offset="0" - id="stop29487" /> - <stop - style="stop-color:black;stop-opacity:0;" - offset="1" - id="stop29489" /> - </linearGradient> <filter inkscape:collect="always" x="-0.55821538" @@ -1397,19 +1361,6 @@ style="stop-color:#9a9a9a;stop-opacity:1.0000000;" id="stop15568" /> </radialGradient> - <filter - inkscape:collect="always" - x="-0.45600089" - width="1.9120018" - y="-0.50666559" - height="2.0133312" - id="filter63011" - color-interpolation-filters="sRGB"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="1.899998" - id="feGaussianBlur63013" /> - </filter> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath13106"> @@ -5796,88 +5747,6 @@ x2="256" y2="459" gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#aigrd2" - id="radialGradient21565" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2798768,0,0,0.279916,6.0465962,-0.3619733)" - cx="20.892099" - cy="114.5684" - fx="20.892099" - fy="114.5684" - r="5.256" /> - <radialGradient - inkscape:collect="always" - xlink:href="#aigrd2" - id="radialGradient21567" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2798768,0,0,0.279916,6.0465962,-0.3619733)" - cx="20.892099" - cy="114.5684" - fx="20.892099" - fy="114.5684" - r="5.256" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient21594" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="32.076183" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient21596" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient21647" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="31.515814" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient21649" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient21977" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="31.515814" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient21979" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath22590"> @@ -5976,68 +5845,6 @@ style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> </clipPath> <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient23978" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="31.515814" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient23980" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient31320" - id="linearGradient23982" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,0.733333,808.99997,-697.8)" - x1="150.5" - y1="239.9987" - x2="150.5" - y2="237" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient29485" - id="linearGradient23986" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0,1,1,0,715,364)" - x1="147.0625" - y1="243.76387" - x2="142.9375" - y2="243.69914" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient30777" - id="linearGradient23988" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1,0,0,1.2857143,364,645.14283)" - x1="148" - y1="244.11113" - x2="144" - y2="244.11113" /> - <linearGradient - id="linearGradient3564" - inkscape:collect="always"> - <stop - id="stop3566" - offset="0" - style="stop-color:white;stop-opacity:1;" /> - <stop - id="stop3568" - offset="1" - style="stop-color:white;stop-opacity:0;" /> - </linearGradient> - <linearGradient id="linearGradient39155"> <stop id="stop39157" @@ -6049,79 +5856,6 @@ style="stop-color:#dadada;stop-opacity:1;" /> </linearGradient> <linearGradient - id="linearGradient39171" - inkscape:collect="always"> - <stop - id="stop39173" - offset="0" - style="stop-color:white;stop-opacity:1;" /> - <stop - id="stop39175" - offset="1" - style="stop-color:white;stop-opacity:0;" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient18821" - id="radialGradient21442" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.8728692,0.8400852,-1.1671853,1.2200916,594.18579,-173.07738)" - cx="75.554794" - cy="500.26215" - fx="75.554794" - fy="500.26215" - r="3.1650217" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient39155" - id="linearGradient21444" - gradientUnits="userSpaceOnUse" - x1="31.1875" - y1="18.875" - x2="29.875" - y2="34.375" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3564" - id="linearGradient21446" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.06818845,0,0,0.06818845,22.51112,27.02885)" - x1="185.9903" - y1="193.33229" - x2="190.46461" - y2="-458.05771" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient39171" - id="radialGradient21448" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.647222,0,0,1.26792,-15.47413,-5.79794)" - cx="26.109201" - cy="19.668886" - fx="26.109201" - fy="19.668886" - r="20.278975" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient22274" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="32.076183" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient22276" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> - <linearGradient inkscape:collect="always" xlink:href="#linearGradient319" id="linearGradient38718" @@ -8869,123 +8603,6 @@ y2="287.50357" /> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient24727" - id="linearGradient24809" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.043478,0,0,0.956667,765.84783,-274.57833)" - x1="59.158501" - y1="437.02835" - x2="45.021851" - y2="349.81818" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24735" - id="linearGradient24811" - gradientUnits="userSpaceOnUse" - x1="807" - y1="101.5" - x2="841" - y2="101.5" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24711" - id="linearGradient24813" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.043478,0,0,0.956667,767.34783,-275.07833)" - x1="63.539974" - y1="421.80756" - x2="63.407566" - y2="347.78201" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient16500" - id="linearGradient24815" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-127,4e-6)" - x1="954" - y1="102" - x2="936" - y2="114.99999" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24727" - id="linearGradient24839" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.043478,0,0,0.956667,765.84783,-274.57833)" - x1="59.158501" - y1="437.02835" - x2="45.021851" - y2="349.81818" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24735" - id="linearGradient24841" - gradientUnits="userSpaceOnUse" - x1="807" - y1="101.5" - x2="841" - y2="101.5" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24144" - id="linearGradient24843" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.043478,0,0,0.956667,767.34783,-275.07833)" - x1="64.019142" - y1="419.06366" - x2="63.407566" - y2="347.78201" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient16500" - id="linearGradient24845" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-127,4e-6)" - x1="954" - y1="102" - x2="936" - y2="114.99999" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24727" - id="linearGradient24867" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.043478,0,0,0.956667,765.84783,-274.57833)" - x1="59.158501" - y1="437.02835" - x2="45.021851" - y2="349.81818" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24735" - id="linearGradient24869" - gradientUnits="userSpaceOnUse" - x1="807" - y1="101.5" - x2="841" - y2="101.5" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient24711" - id="linearGradient24871" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.043478,0,0,0.956667,767.34783,-275.07833)" - x1="63.659767" - y1="422.46088" - x2="63.407566" - y2="347.78201" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient16500" - id="linearGradient24873" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-127,4e-6)" - x1="954" - y1="102" - x2="936" - y2="114.99999" /> - <linearGradient - inkscape:collect="always" xlink:href="#linearGradient24679" id="linearGradient25073" gradientUnits="userSpaceOnUse" @@ -15527,50 +15144,6 @@ <linearGradient inkscape:collect="always" xlink:href="#linearGradient44939-8" - id="linearGradient44402" - gradientUnits="userSpaceOnUse" - x1="351.15625" - y1="108.35222" - x2="345.40625" - y2="108.00847" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient44939-8" - id="linearGradient44404" - gradientUnits="userSpaceOnUse" - x1="351.71875" - y1="106.93575" - x2="347.1875" - y2="106.7795" /> - <filter - inkscape:collect="always" - id="filter44473" - x="-0.12578467" - width="1.2515693" - y="-0.11472401" - height="1.229448" - color-interpolation-filters="sRGB"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.81235925" - id="feGaussianBlur44475" /> - </filter> - <filter - inkscape:collect="always" - id="filter44477" - x="-0.12176471" - width="1.2435294" - y="-0.11828571" - height="1.2365714" - color-interpolation-filters="sRGB"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.8625" - id="feGaussianBlur44479" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient44939-8" id="linearGradient44485" gradientUnits="userSpaceOnUse" x1="279.75" @@ -16037,46 +15610,6 @@ r="3.5" /> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient30321" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="240.70209" - y1="-9.4293213" - x2="276.89801" - y2="31.515814" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient30323" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610" - id="linearGradient30368" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="31.515814" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060" - id="linearGradient30370" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> - <linearGradient - inkscape:collect="always" xlink:href="#linearGradient30208" id="linearGradient25056" gradientUnits="userSpaceOnUse" @@ -17453,16 +16986,6 @@ xlink:href="#linearGradient34488-1-8" inkscape:collect="always" /> <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient1610-71-6-9-7" - id="linearGradient21875-7-1-0-1" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" - x1="236.94902" - y1="-14.103641" - x2="278.34866" - y2="32.902874" /> - <linearGradient id="linearGradient1610-71-6-9-7"> <stop style="stop-color:black;stop-opacity:1;" @@ -17486,29 +17009,6 @@ inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> </clipPath> - <filter - inkscape:collect="always" - x="-0.45600089" - width="1.9120018" - y="-0.50666559" - height="2.0133312" - id="filter63011-6-7-0-8" - color-interpolation-filters="sRGB"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="1.899998" - id="feGaussianBlur63013-0-1-0-8" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060-6-6-2-4" - id="linearGradient21877-3-2-7-2" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-47.00001,58.00194)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> <linearGradient id="linearGradient5060-6-6-2-4"> <stop @@ -17521,16 +17021,6 @@ style="stop-color:#000000;stop-opacity:0;" /> </linearGradient> <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4671-6-4-1-7" - id="linearGradient34959-9-2-1" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" - x1="1666.1765" - y1="639.65356" - x2="1659.0875" - y2="629.23273" /> - <linearGradient id="linearGradient4671-6-4-1-7"> <stop id="stop4673-7-6-4-1" @@ -17542,16 +17032,6 @@ style="stop-color:#ffe873;stop-opacity:1" /> </linearGradient> <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4689-1-6-4-2" - id="linearGradient34961-3-6-5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" - x1="1641.4773" - y1="607.50525" - x2="1663.2872" - y2="626.40344" /> - <linearGradient id="linearGradient4689-1-6-4-2"> <stop id="stop4691-6-2-6-7" @@ -17564,95 +17044,6 @@ </linearGradient> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-88-8-4" - id="linearGradient34963-5-9-1" - gradientUnits="userSpaceOnUse" - x1="922.89703" - y1="339.66599" - x2="924.10608" - y2="344.10001" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3966-5-1-4-8-9-88-8-4"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3968-7-9-0-8-2-1-3-2" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3970-6-6-6-2-8-2-5-3" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-88-8-4" - id="linearGradient34965-1-5-2" - gradientUnits="userSpaceOnUse" - x1="919.09998" - y1="345.42163" - x2="922.104" - y2="355.75" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-8-9-5-5" - id="linearGradient34967-4-1-8" - gradientUnits="userSpaceOnUse" - x1="922.64624" - y1="342.71866" - x2="921.82654" - y2="341.98108" /> - <linearGradient - inkscape:collect="always" - id="linearGradient3966-5-1-4-8-9-8-9-5-5"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop3968-7-9-0-8-2-9-8-5-7" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop3970-6-6-6-2-8-0-2-8-6" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-88-8-4" - id="linearGradient34969-4-4-1" - gradientUnits="userSpaceOnUse" - x1="917.75" - y1="355.5" - x2="917.25" - y2="353" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-88-8-4" - id="linearGradient34971-5-0-9" - gradientUnits="userSpaceOnUse" - x1="923" - y1="343.75" - x2="923" - y2="344.75" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-88-8-4" - id="radialGradient34973-2-5-7" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4166677,-7.678944e-6,1.853542e-6,0.58333478,-1309.0016,145.80659)" - cx="924" - cy="349.20001" - fx="924" - fy="349.20001" - r="6" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient3966-5-1-4-8-9-88-8-4" - id="linearGradient34975-9-4-9" - gradientUnits="userSpaceOnUse" - x1="921.34045" - y1="341.34042" - x2="922.16492" - y2="342.16492" /> - <linearGradient - inkscape:collect="always" id="linearGradient3944-4-6-7-7"> <stop style="stop-color:#ffffff;stop-opacity:1;" @@ -21294,16 +20685,6 @@ x2="50.907307" y2="95.401253" /> <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient14829" - id="linearGradient14814" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.4126967,0,0,2.7035619,-722.19531,285.57729)" - x1="236.94902" - y1="-14.103641" - x2="276.89801" - y2="32.076183" /> - <linearGradient id="linearGradient14829"> <stop id="stop14831" @@ -21314,28 +20695,6 @@ offset="1" style="stop-color:#757575;stop-opacity:1;" /> </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient14632" - id="linearGradient14816" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-214.43013,42.779961)" - x1="148.54834" - y1="301.96149" - x2="166.33298" - y2="317.25269" /> - <linearGradient - inkscape:collect="always" - id="linearGradient14632"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop14634" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop14636" /> - </linearGradient> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath13106-0"> @@ -21349,29 +20708,6 @@ inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> </clipPath> - <filter - inkscape:collect="always" - x="-0.45600089" - width="1.9120018" - y="-0.50666559" - height="2.0133312" - id="filter63011-8" - color-interpolation-filters="sRGB"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="1.899998" - id="feGaussianBlur63013-0" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5060-9" - id="linearGradient14818" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-233.12445,-35.715412)" - x1="160.14388" - y1="376.27383" - x2="174.29811" - y2="383.69843" /> <linearGradient id="linearGradient5060-9"> <stop @@ -21383,17 +20719,6 @@ offset="1" style="stop-color:#000000;stop-opacity:0;" /> </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient18821-9" - id="radialGradient14820" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.8728692,0.8400852,-1.1671853,1.2200916,594.18579,-173.07738)" - cx="75.554794" - cy="500.26215" - fx="75.554794" - fy="500.26215" - r="3.1650217" /> <linearGradient id="linearGradient18821-9"> <stop @@ -21406,15 +20731,6 @@ id="stop18825-4" /> </linearGradient> <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient39155-5" - id="linearGradient14822" - gradientUnits="userSpaceOnUse" - x1="31.1875" - y1="18.875" - x2="29.875" - y2="34.375" /> - <linearGradient id="linearGradient39155-5"> <stop id="stop39157-4" @@ -21427,51 +20743,6 @@ </linearGradient> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient3564-9" - id="linearGradient14825" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.06818845,0,0,0.06818845,22.51112,27.02885)" - x1="185.9903" - y1="193.33229" - x2="190.46461" - y2="-458.05771" /> - <linearGradient - id="linearGradient3564-9" - inkscape:collect="always"> - <stop - id="stop3566-9" - offset="0" - style="stop-color:white;stop-opacity:1;" /> - <stop - id="stop3568-2" - offset="1" - style="stop-color:white;stop-opacity:0;" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient39171-8" - id="radialGradient14827" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.647222,0,0,1.26792,-15.47413,-5.79794)" - cx="26.109201" - cy="19.668886" - fx="26.109201" - fy="19.668886" - r="20.278975" /> - <linearGradient - id="linearGradient39171-8" - inkscape:collect="always"> - <stop - id="stop39173-9" - offset="0" - style="stop-color:white;stop-opacity:1;" /> - <stop - id="stop39175-5" - offset="1" - style="stop-color:white;stop-opacity:0;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" xlink:href="#linearGradient14829" id="linearGradient14800" gradientUnits="userSpaceOnUse" @@ -31044,6 +30315,1029 @@ y1="238" x2="226.625" y2="251.71078" /> + <linearGradient + y2="32.076183" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient22274-8" + xlink:href="#linearGradient1610-2" + inkscape:collect="always" /> + <linearGradient + id="linearGradient1610-2"> + <stop + id="stop1611-8-9" + offset="0" + style="stop-color:black;stop-opacity:1;" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.5" + id="stop6596" /> + <stop + id="stop1612-0-6" + offset="1" + style="stop-color:#c8c8c8;stop-opacity:1;" /> + </linearGradient> + <clipPath + id="clipPath13106-5" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path34850-6-6" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + id="filter63011-5" + height="2.0133312" + y="-0.50666559" + width="1.9120018" + x="-0.45600089" + inkscape:collect="always"> + <feGaussianBlur + id="feGaussianBlur63013-8" + stdDeviation="1.899998" + inkscape:collect="always" /> + </filter> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient22276-5" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6172" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6174" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <radialGradient + r="3.1650217" + fy="500.26215" + fx="75.554794" + cy="500.26215" + cx="75.554794" + gradientTransform="matrix(0.8728692,0.8400852,-1.1671853,1.2200916,594.18579,-173.07738)" + gradientUnits="userSpaceOnUse" + id="radialGradient21442-6-790" + xlink:href="#linearGradient18821-1-16" + inkscape:collect="always" /> + <linearGradient + id="linearGradient18821-1-16"> + <stop + id="stop20589" + offset="0" + style="stop-color:#e3604f;stop-opacity:1;" /> + <stop + id="stop20591" + offset="1" + style="stop-color:#e3604f;stop-opacity:0;" /> + </linearGradient> + <linearGradient + y2="34.375" + x2="29.875" + y1="18.875" + x1="31.1875" + gradientUnits="userSpaceOnUse" + id="linearGradient21444-0-352" + xlink:href="#linearGradient39155-0-813" + inkscape:collect="always" /> + <linearGradient + id="linearGradient39155-0-813"> + <stop + style="stop-color:#e6e6e6;stop-opacity:1;" + offset="0" + id="stop20595" /> + <stop + style="stop-color:#c4c4c4;stop-opacity:1;" + offset="1" + id="stop20597" /> + </linearGradient> + <linearGradient + y2="-458.05771" + x2="190.46461" + y1="193.33229" + x1="185.9903" + gradientTransform="matrix(0.06818845,0,0,0.06818845,22.51112,27.02885)" + gradientUnits="userSpaceOnUse" + id="linearGradient21446-3-145" + xlink:href="#linearGradient3564-2-380" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient3564-2-380"> + <stop + style="stop-color:#e6e6e6;stop-opacity:1;" + offset="0" + id="stop20601" /> + <stop + style="stop-color:#e6e6e6;stop-opacity:0;" + offset="1" + id="stop20603" /> + </linearGradient> + <radialGradient + r="20.278975" + fy="19.668886" + fx="26.109201" + cy="19.668886" + cx="26.109201" + gradientTransform="matrix(1.647222,0,0,1.26792,-15.47413,-5.79794)" + gradientUnits="userSpaceOnUse" + id="radialGradient21448-8-143" + xlink:href="#linearGradient3564-2-380" + inkscape:collect="always" /> + <linearGradient + y2="32.902874" + x2="278.34866" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient21875-7-1-0-1" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath13106-9-2-9-9-4" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path34850-4-7-0-4-0" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + inkscape:connector-curvature="0" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + id="filter63011-6-7-0-8" + height="2.0133312" + y="-0.50666559" + width="1.9120018" + x="-0.45600089" + inkscape:collect="always"> + <feGaussianBlur + id="feGaussianBlur63013-0-1-0-8" + stdDeviation="1.899998" + inkscape:collect="always" /> + </filter> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient21877-3-2-7-2" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6208" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6210" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + inkscape:connector-curvature="0" /> + </clipPath> + <linearGradient + y2="629.23273" + x2="1659.0875" + y1="639.65356" + x1="1666.1765" + gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" + gradientUnits="userSpaceOnUse" + id="linearGradient34959-9-2-1" + xlink:href="#linearGradient4671-6-4-1-7" + inkscape:collect="always" /> + <linearGradient + y2="626.40344" + x2="1663.2872" + y1="607.50525" + x1="1641.4773" + gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)" + gradientUnits="userSpaceOnUse" + id="linearGradient34961-3-6-5" + xlink:href="#linearGradient4689-1-6-4-2" + inkscape:collect="always" /> + <linearGradient + y2="344.10001" + x2="924.10608" + y1="339.66599" + x1="922.89703" + gradientUnits="userSpaceOnUse" + id="linearGradient34963-5-9-1" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="355.75" + x2="922.104" + y1="345.42163" + x1="919.09998" + gradientUnits="userSpaceOnUse" + id="linearGradient34965-1-5-2" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="341.98108" + x2="921.82654" + y1="342.71866" + x1="922.64624" + gradientUnits="userSpaceOnUse" + id="linearGradient34967-4-1-8" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="353" + x2="917.25" + y1="355.5" + x1="917.75" + gradientUnits="userSpaceOnUse" + id="linearGradient34969-4-4-1" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="344.75" + x2="923" + y1="343.75" + x1="923" + gradientUnits="userSpaceOnUse" + id="linearGradient34971-5-0-9" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <radialGradient + r="6" + fy="349.20001" + fx="924" + cy="349.20001" + cx="924" + gradientTransform="matrix(2.4166677,-7.678944e-6,1.853542e-6,0.58333478,-1309.0016,145.80659)" + gradientUnits="userSpaceOnUse" + id="radialGradient34973-2-5-7" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="342.16492" + x2="922.16492" + y1="341.34042" + x1="921.34045" + gradientUnits="userSpaceOnUse" + id="linearGradient34975-9-4-9" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="349.81818" + x2="45.021851" + y1="437.02835" + x1="59.158501" + gradientTransform="matrix(1.043478,0,0,0.956667,765.84783,-274.57833)" + gradientUnits="userSpaceOnUse" + id="linearGradient24867" + xlink:href="#linearGradient24727" + inkscape:collect="always" /> + <linearGradient + y2="101.5" + x2="841" + y1="101.5" + x1="807" + gradientUnits="userSpaceOnUse" + id="linearGradient24869" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <linearGradient + y2="347.78201" + x2="63.407566" + y1="422.46088" + x1="63.659767" + gradientTransform="matrix(1.043478,0,0,0.956667,767.34783,-275.07833)" + gradientUnits="userSpaceOnUse" + id="linearGradient24871" + xlink:href="#linearGradient24711" + inkscape:collect="always" /> + <linearGradient + y2="114.99999" + x2="936" + y1="102" + x1="954" + gradientTransform="translate(-127,4e-6)" + gradientUnits="userSpaceOnUse" + id="linearGradient24873" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter6146" + x="-0.30000001" + width="1.35" + y="-0.15000001" + height="1.4"> + <feFlood + flood-opacity="0.40000000000000002" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood6148" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite6150" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.5" + result="blur" + id="feGaussianBlur6152" /> + <feOffset + dx="-2" + dy="2" + result="offset" + id="feOffset6154" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite6156" /> + </filter> + <linearGradient + y2="108.00847" + x2="345.40625" + y1="108.35222" + x1="351.15625" + gradientUnits="userSpaceOnUse" + id="linearGradient44402" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="106.7795" + x2="347.1875" + y1="106.93575" + x1="351.71875" + gradientUnits="userSpaceOnUse" + id="linearGradient44404" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="349.81818" + x2="45.021851" + y1="437.02835" + x1="59.158501" + gradientTransform="matrix(1.043478,0,0,0.956667,765.84783,-274.57833)" + gradientUnits="userSpaceOnUse" + id="linearGradient24839" + xlink:href="#linearGradient24727" + inkscape:collect="always" /> + <linearGradient + y2="101.5" + x2="841" + y1="101.5" + x1="807" + gradientUnits="userSpaceOnUse" + id="linearGradient24841" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <linearGradient + y2="347.78201" + x2="63.407566" + y1="419.06366" + x1="64.019142" + gradientTransform="matrix(1.043478,0,0,0.956667,767.34783,-275.07833)" + gradientUnits="userSpaceOnUse" + id="linearGradient24843" + xlink:href="#linearGradient24144" + inkscape:collect="always" /> + <linearGradient + y2="114.99999" + x2="936" + y1="102" + x1="954" + gradientTransform="translate(-127,4e-6)" + gradientUnits="userSpaceOnUse" + id="linearGradient24845" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <linearGradient + y2="349.81818" + x2="45.021851" + y1="437.02835" + x1="59.158501" + gradientTransform="matrix(1.043478,0,0,0.956667,765.84783,-274.57833)" + gradientUnits="userSpaceOnUse" + id="linearGradient24809" + xlink:href="#linearGradient24727" + inkscape:collect="always" /> + <linearGradient + y2="101.5" + x2="841" + y1="101.5" + x1="807" + gradientUnits="userSpaceOnUse" + id="linearGradient24811" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <linearGradient + y2="347.78201" + x2="63.407566" + y1="421.80756" + x1="63.539974" + gradientTransform="matrix(1.043478,0,0,0.956667,767.34783,-275.07833)" + gradientUnits="userSpaceOnUse" + id="linearGradient24813" + xlink:href="#linearGradient24711" + inkscape:collect="always" /> + <linearGradient + y2="114.99999" + x2="936" + y1="102" + x1="954" + gradientTransform="translate(-127,4e-6)" + gradientUnits="userSpaceOnUse" + id="linearGradient24815" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter6078" + x="-0.30000001" + width="1.35" + height="1.4" + y="-0.15000001"> + <feFlood + flood-opacity="0.40000000000000002" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood6080" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite6082" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.5" + result="blur" + id="feGaussianBlur6084" /> + <feOffset + dx="-2" + dy="2" + result="offset" + id="feOffset6086" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite6088" /> + </filter> + <linearGradient + y2="32.076183" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient22274" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath13106-7" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path34850-1" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + id="filter63011" + height="2.0133312" + y="-0.50666559" + width="1.9120018" + x="-0.45600089" + inkscape:collect="always"> + <feGaussianBlur + id="feGaussianBlur63013" + stdDeviation="1.899998" + inkscape:collect="always" /> + </filter> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient22276" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6380" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6382" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <radialGradient + r="3.1650217" + fy="500.26215" + fx="75.554794" + cy="500.26215" + cx="75.554794" + gradientTransform="matrix(0.8728692,0.8400852,-1.1671853,1.2200916,594.18579,-173.07738)" + gradientUnits="userSpaceOnUse" + id="radialGradient21442" + xlink:href="#linearGradient18821" + inkscape:collect="always" /> + <linearGradient + y2="34.375" + x2="29.875" + y1="18.875" + x1="31.1875" + gradientUnits="userSpaceOnUse" + id="linearGradient21444" + xlink:href="#linearGradient39155" + inkscape:collect="always" /> + <linearGradient + y2="-458.05771" + x2="190.46461" + y1="193.33229" + x1="185.9903" + gradientTransform="matrix(0.06818845,0,0,0.06818845,22.51112,27.02885)" + gradientUnits="userSpaceOnUse" + id="linearGradient21446" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <radialGradient + r="20.278975" + fy="19.668886" + fx="26.109201" + cy="19.668886" + cx="26.109201" + gradientTransform="matrix(1.647222,0,0,1.26792,-15.47413,-5.79794)" + gradientUnits="userSpaceOnUse" + id="radialGradient21448" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="31.515814" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient23978" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath6411" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6413" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient23980" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6426" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6428" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="237" + x2="150.5" + y1="239.9987" + x1="150.5" + gradientTransform="matrix(1,0,0,0.733333,808.99997,-697.8)" + gradientUnits="userSpaceOnUse" + id="linearGradient23982" + xlink:href="#linearGradient18134" + inkscape:collect="always" /> + <linearGradient + y2="243.69914" + x2="142.9375" + y1="243.76387" + x1="147.0625" + gradientTransform="matrix(0,1,1,0,715,364)" + gradientUnits="userSpaceOnUse" + id="linearGradient23986" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <linearGradient + y2="244.11113" + x2="144" + y1="244.11113" + x1="148" + gradientTransform="matrix(1,0,0,1.2857143,364,645.14283)" + gradientUnits="userSpaceOnUse" + id="linearGradient23988" + xlink:href="#linearGradient30777" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient30777"> + <stop + style="stop-color:#acacac;stop-opacity:1" + offset="0" + id="stop30779" /> + <stop + style="stop-color:black;stop-opacity:0;" + offset="1" + id="stop30781" /> + </linearGradient> + <clipPath + id="clipPath23877-4" + clipPathUnits="userSpaceOnUse"> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate" + id="rect23879-6" + width="15" + height="6" + x="952" + y="-540" + transform="scale(1,-1)" /> + </clipPath> + <linearGradient + y2="31.515814" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient30368" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath6455" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6457" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient30370" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6470" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6472" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <clipPath + id="clipPath20586-3" + clipPathUnits="userSpaceOnUse"> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + transform="matrix(1.870472,0.1894819,-0.6587894,2.4281336,319.59052,-798.11661)" + id="path34889-5" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + id="filter20578-5" + height="3.0439126" + y="-1.0219563" + width="2.1164308" + x="-0.55821538" + inkscape:collect="always"> + <feGaussianBlur + id="feGaussianBlur20580-2" + stdDeviation="2.0410255" + inkscape:collect="always" /> + </filter> + <clipPath + id="clipPath6482" + clipPathUnits="userSpaceOnUse"> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + transform="matrix(1.870472,0.1894819,-0.6587894,2.4281336,319.59052,-798.11661)" + id="path6484" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + </clipPath> + <linearGradient + y2="32.076183" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient21594" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath6497" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6499" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient21596" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6512" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6514" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="31.515814" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient21647" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath6527" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6529" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient21649" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6542" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6544" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <radialGradient + r="5.256" + fy="114.5684" + fx="20.892099" + cy="114.5684" + cx="20.892099" + gradientTransform="matrix(0.2798768,0,0,0.279916,6.0465962,-0.3619733)" + gradientUnits="userSpaceOnUse" + id="radialGradient21565" + xlink:href="#aigrd2-3" + inkscape:collect="always" /> + <radialGradient + gradientUnits="userSpaceOnUse" + fy="114.5684" + fx="20.892099" + r="5.256" + cy="114.5684" + cx="20.892099" + id="aigrd2-3"> + <stop + id="stop15566-9" + style="stop-color:#F0F0F0" + offset="0" /> + <stop + id="stop15568-7" + style="stop-color:#9a9a9a;stop-opacity:1.0000000;" + offset="1.0000000" /> + </radialGradient> + <radialGradient + r="5.256" + fy="114.5684" + fx="20.892099" + cy="114.5684" + cx="20.892099" + gradientTransform="matrix(0.2798768,0,0,0.279916,6.0465962,-0.3619733)" + gradientUnits="userSpaceOnUse" + id="radialGradient21567" + xlink:href="#aigrd2-3" + inkscape:collect="always" /> + <radialGradient + gradientUnits="userSpaceOnUse" + fy="114.5684" + fx="20.892099" + r="5.256" + cy="114.5684" + cx="20.892099" + id="radialGradient6555"> + <stop + id="stop6557" + style="stop-color:#F0F0F0" + offset="0" /> + <stop + id="stop6559" + style="stop-color:#9a9a9a;stop-opacity:1.0000000;" + offset="1.0000000" /> + </radialGradient> + <linearGradient + y2="31.515814" + x2="276.89801" + y1="-9.4293213" + x1="240.70209" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient30321" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath6568" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6570" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient30323" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6583" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6585" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="31.515814" + x2="276.89801" + y1="-14.103641" + x1="236.94902" + gradientTransform="matrix(2.4126967,0,0,2.7035619,-536.07088,379.29465)" + gradientUnits="userSpaceOnUse" + id="linearGradient21977" + xlink:href="#linearGradient16595" + inkscape:collect="always" /> + <clipPath + id="clipPath6599" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6601" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> + <linearGradient + y2="383.69843" + x2="174.29811" + y1="376.27383" + x1="160.14388" + gradientTransform="translate(-47.00001,58.00194)" + gradientUnits="userSpaceOnUse" + id="linearGradient21979" + xlink:href="#linearGradient18495" + inkscape:collect="always" /> + <clipPath + id="clipPath6614" + clipPathUnits="userSpaceOnUse"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path6616" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + </clipPath> </defs> <sodipodi:namedview id="base" @@ -31055,16 +31349,16 @@ objecttolerance="10000" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="10.192144" - inkscape:cx="406.73801" - inkscape:cy="204.25086" + inkscape:zoom="1.274018" + inkscape:cx="519.70993" + inkscape:cy="325.90484" inkscape:document-units="px" - inkscape:current-layer="g24024-1" + inkscape:current-layer="layer1" showgrid="true" - inkscape:window-width="1680" - inkscape:window-height="987" - inkscape:window-x="-8" - inkscape:window-y="-8" + inkscape:window-width="1920" + inkscape:window-height="1005" + inkscape:window-x="-2" + inkscape:window-y="27" inkscape:snap-nodes="false" inkscape:snap-bbox="true" showguides="true" @@ -75998,1951 +76292,6 @@ </g> </g> <g - id="g32752" - inkscape:export-filename="C:\Documents and Settings\Pracownia\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\RELEASES\v. 2.5.06\prvicons 2.5.06.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - y="180" - x="872" - height="192" - width="192" - id="rect30285" - style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.39191818;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(856,-203)" - id="g21955" - style="opacity:0.3;display:inline;enable-background:new"> - <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect21957" - width="48" - height="48" - x="108" - y="430" - rx="2.4004419" - ry="0" /> - <g - id="g21959"> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21961" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient21977);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" - id="path21963" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path21965" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path21967" - style="fill:none;stroke:url(#linearGradient21979);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21969" - sodipodi:nodetypes="cccccc" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path21971" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21973" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21975" - sodipodi:nodetypes="ccc" /> - </g> - </g> - <g - id="g30335"> - <g - id="g21367" - transform="translate(760,-202)"> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21369" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient30321);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" - id="path21371" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path21373" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path21375" - style="fill:none;stroke:url(#linearGradient30323);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21377" - sodipodi:nodetypes="cccccc" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path21569" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21379" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21381" - sodipodi:nodetypes="ccc" /> - </g> - <path - inkscape:connector-curvature="0" - style="font-size:33.49144363px;font-style:normal;font-weight:normal;fill:#214478;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans" - d="m 891.07148,245 -0.0715,9 2.39012,0 C 896,254 896,253 896.5,251 l 0.5,0 0,7 -0.5,0 c -0.5,-2 -0.5,-3 -3.10988,-3 L 891,255 l 0,7 c 0,2.5 1,3.25 3.14146,3.39973 l -0.004,0.60029 L 885,266 l 0.004,-0.60029 C 887,265.25 888,264.5 888.00001,262 L 888,248 c 0,-2.5 -1,-3.25 -3,-3.5 l 0,-0.5 16,0 0,5 -0.5,0 c -0.50001,-1.99999 -1.5,-4 -4.5,-4 l -4.92852,0 z" - id="text13209" - sodipodi:nodetypes="ccccccccccccccccccccccc" /> - </g> - <g - style="display:inline;enable-background:new" - id="g21625" - transform="translate(904,-154)" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - ry="0" - rx="2.4004419" - y="430" - x="108" - height="48" - width="48" - id="rect21627" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g21629"> - <path - inkscape:connector-curvature="0" - style="fill:url(#linearGradient21647);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path21631" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <g - style="opacity:0.5;fill:#000000;display:inline" - id="g16261" - transform="matrix(1.2499985,0,0,1,-87.6203,-147.85351)"> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect35099" - width="17.600004" - height="1" - x="167.69646" - y="598.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect35101" - width="17.600004" - height="1" - x="167.69646" - y="600.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15690" - width="17.600004" - height="1" - x="167.69646" - y="602.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15692" - width="17.600004" - height="1" - x="167.69646" - y="604.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15694" - width="17.600004" - height="1" - x="167.69646" - y="606.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15696" - width="17.600004" - height="1" - x="167.69646" - y="608.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15698" - width="17.600004" - height="1" - x="167.69646" - y="610.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15700" - width="17.600004" - height="1" - x="167.69646" - y="612.85352" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15732" - width="14.400002" - height="1" - x="167.69646" - y="614.85352" - rx="0.09920612" - ry="0.065390877" /> - <g - transform="translate(150.89645,557.85352)" - id="g4849" - style="fill:#000000;display:inline"> - <rect - ry="0.065390877" - rx="0.12125195" - y="29" - x="16.799992" - height="1" - width="17.600004" - id="rect15736" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.12125195" - y="31" - x="16.799992" - height="1" - width="17.600004" - id="rect15738" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.12125195" - y="33" - x="16.799992" - height="1" - width="17.600004" - id="rect15740" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.12125195" - y="35" - x="16.799992" - height="1" - width="17.600004" - id="rect15742" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.055114571" - y="37" - x="16.799992" - height="1" - width="8.0000095" - id="rect15744" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - </g> - <rect - ry="0.065390304" - rx="0.0057410933" - y="617.85352" - x="184.49646" - height="0.99999124" - width="0.83333319" - id="rect16334" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - </g> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21633" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21635" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient21649);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path21637" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - id="path21639" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21641" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path21643" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <g - id="g35119" - transform="translate(2,-160.99999)" - style="display:inline"> - <g - style="display:inline" - transform="translate(105.39645,589.71201)" - id="g16097"> - <g - id="g16099" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" - transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)"> - <radialGradient - id="radialGradient16101" - cx="20.892099" - cy="114.5684" - r="5.256" - fx="20.892099" - fy="114.5684" - gradientUnits="userSpaceOnUse"> - <stop - offset="0" - style="stop-color:#F0F0F0" - id="stop16103" /> - <stop - offset="1" - style="stop-color:#474747" - id="stop16105" /> - </radialGradient> - <radialGradient - id="radialGradient16109" - cx="20.892099" - cy="64.567902" - r="5.257" - fx="20.892099" - fy="64.567902" - gradientUnits="userSpaceOnUse"> - <stop - offset="0" - style="stop-color:#F0F0F0" - id="stop16111" /> - <stop - offset="1" - style="stop-color:#474747" - id="stop16113" /> - </radialGradient> - </g> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" - d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" - id="path16107" /> - <path - inkscape:connector-curvature="0" - style="fill:url(#radialGradient21565);fill-rule:nonzero;stroke:none" - d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" - id="path16117" /> - </g> - <g - id="g16131" - transform="translate(105.39645,579.71201)" - style="display:inline"> - <g - transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" - id="g16133"> - <radialGradient - gradientUnits="userSpaceOnUse" - fy="114.5684" - fx="20.892099" - r="5.256" - cy="114.5684" - cx="20.892099" - id="radialGradient16135"> - <stop - id="stop16137" - style="stop-color:#F0F0F0" - offset="0" /> - <stop - id="stop16140" - style="stop-color:#474747" - offset="1" /> - </radialGradient> - <radialGradient - gradientUnits="userSpaceOnUse" - fy="64.567902" - fx="20.892099" - r="5.257" - cy="64.567902" - cx="20.892099" - id="radialGradient16142"> - <stop - id="stop16144" - style="stop-color:#F0F0F0" - offset="0" /> - <stop - id="stop16146" - style="stop-color:#474747" - offset="1" /> - </radialGradient> - </g> - <path - inkscape:connector-curvature="0" - id="path35139" - d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" /> - <path - inkscape:connector-curvature="0" - id="path35141" - d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" - style="fill:url(#radialGradient21567);fill-rule:nonzero;stroke:none" /> - </g> - </g> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path21645" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - </g> - </g> - <g - style="display:inline;enable-background:new" - id="g21572" - transform="translate(808,-203)" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - ry="0" - rx="2.4004419" - y="430" - x="108" - height="48" - width="48" - id="rect21574" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g21576"> - <path - inkscape:connector-curvature="0" - style="fill:url(#linearGradient21594);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path21578" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21580" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21582" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient21596);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path21584" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - id="path21586" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21588" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path21590" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path21592" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - </g> - </g> - <g - id="g30382"> - <g - id="g23655" - transform="translate(760,-154)"> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path23657" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient30368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" - id="path23659" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path23661" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path23663" - style="fill:none;stroke:url(#linearGradient30370);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path23665" - sodipodi:nodetypes="cccccc" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path23667" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path23669" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path23671" - sodipodi:nodetypes="ccc" /> - </g> - <path - inkscape:connector-curvature="0" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 888,295 1,0 0,14 -1,0 0,-14 z" - id="path23675" - sodipodi:nodetypes="ccccc" /> - <path - inkscape:connector-curvature="0" - id="path23677" - d="m 900,294 1.00002,-1 0,14 -1.00002,0 0,-13 z" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="ccccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccc" - id="path23679" - d="m 901.00003,292 0,2.25 -13.00002,2 0,-2.25 13.00002,-2 z" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g23681" - transform="matrix(1.1428564,0,0,1.2000001,822.71436,-355.40005)"> - <path - transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" - d="M 57.5,554 A 4.5,2.25 0 0 1 53,556.25 4.5,2.25 0 0 1 48.5,554 4.5,2.25 0 0 1 53,551.75 4.5,2.25 0 0 1 57.5,554 Z" - sodipodi:ry="2.25" - sodipodi:rx="4.5" - sodipodi:cy="554" - sodipodi:cx="53" - id="path23683" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter20578);enable-background:accumulate" - id="path23685" - sodipodi:cx="53" - sodipodi:cy="554" - sodipodi:rx="4.5" - sodipodi:ry="2.25" - d="M 57.5,554 A 4.5,2.25 0 0 1 53,556.25 4.5,2.25 0 0 1 48.5,554 4.5,2.25 0 0 1 53,551.75 4.5,2.25 0 0 1 57.5,554 Z" - transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" - inkscape:transform-center-y="0.3813435" - clip-path="url(#clipPath20586)" /> - </g> - <path - inkscape:connector-curvature="0" - style="opacity:0.38999999;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 901.00003,292 -1e-5,1 -13.00002,2 10e-6,-1 13.00002,-2 z" - id="path23694" - sodipodi:nodetypes="ccccc" /> - <g - transform="matrix(1.1428564,0,0,1.2000001,834.71436,-357.40005)" - id="g23717"> - <path - sodipodi:type="arc" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path23724" - sodipodi:cx="53" - sodipodi:cy="554" - sodipodi:rx="4.5" - sodipodi:ry="2.25" - d="M 57.5,554 A 4.5,2.25 0 0 1 53,556.25 4.5,2.25 0 0 1 48.5,554 4.5,2.25 0 0 1 53,551.75 4.5,2.25 0 0 1 57.5,554 Z" - transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" /> - <path - clip-path="url(#clipPath20586)" - inkscape:transform-center-y="0.3813435" - transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" - d="M 57.5,554 A 4.5,2.25 0 0 1 53,556.25 4.5,2.25 0 0 1 48.5,554 4.5,2.25 0 0 1 53,551.75 4.5,2.25 0 0 1 57.5,554 Z" - sodipodi:ry="2.25" - sodipodi:rx="4.5" - sodipodi:cy="554" - sodipodi:cx="53" - id="path23726" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter20578);enable-background:accumulate" - sodipodi:type="arc" /> - </g> - </g> - <g - id="g23922" - transform="translate(-16,-220)" - style="display:inline;enable-background:new"> - <g - style="display:inline" - id="g23924" - transform="translate(824,66)" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - ry="0" - rx="2.4004419" - y="430" - x="108" - height="48" - width="48" - id="rect23926" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g23928"> - <path - inkscape:connector-curvature="0" - style="fill:url(#linearGradient23978);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path23930" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path23932" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path23934" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient23980);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path23936" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - id="path23938" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path23940" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path23942" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path23944" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - </g> - </g> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" - id="path23946" - d="m 952,530 0,10 1,0 1,0 11,0 1,0 1,0 0,-10 -15,0 z m 1,2 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> - <rect - transform="scale(1,-1)" - style="fill:url(#linearGradient23982);fill-opacity:1;fill-rule:nonzero;stroke:none" - id="rect23948" - width="13" - height="5.5" - x="953" - y="-524" /> - <path - inkscape:connector-curvature="0" - id="path23952" - transform="translate(76,0)" - d="m 876,514 0,17 15,0 0,-17 -1,0 0,1 -1,0 0,-1 -11,0 0,1 -1,0 0,-1 -1,0 z m 1,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" - style="fill:url(#linearGradient23986);fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 952,507 3,0 0,3 9,0 0,-3 3,0 0,7 -15,0 0,-7 z m 1,0 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z m 12,-4 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z" - id="path23954" /> - <rect - transform="matrix(0,1,1,0,0,0)" - ry="0" - y="955" - x="507" - height="9" - width="3" - id="rect23956" - style="fill:url(#linearGradient23988);fill-opacity:1;fill-rule:nonzero;stroke:none" /> - <rect - style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="rect23958" - width="9" - height="9" - x="512" - y="955" - ry="0" - transform="matrix(0,1,1,0,0,0)" /> - <rect - transform="matrix(0,1,1,0,0,0)" - ry="0" - y="955" - x="523" - height="9" - width="9" - id="rect23960" - style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" /> - <path - transform="matrix(0,-0.5624971,0.5624971,0,893.12531,590.74965)" - sodipodi:type="arc" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path23962" - sodipodi:cx="132" - sodipodi:cy="118" - sodipodi:rx="8" - sodipodi:ry="8" - d="m 140,118 a 8,8 0 0 1 -8,8 8,8 0 0 1 -8,-8 8,8 0 0 1 8,-8 8,8 0 0 1 8,8 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" - d="m 140,118 a 8,8 0 0 1 -8,8 8,8 0 0 1 -8,-8 8,8 0 0 1 8,-8 8,8 0 0 1 8,8 z" - sodipodi:ry="8" - sodipodi:rx="8" - sodipodi:cy="118" - sodipodi:cx="132" - id="path23964" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - sodipodi:type="arc" - transform="matrix(0,-0.5624964,0.5624964,0,893.12545,601.74956)" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccccccccc" - id="path23966" - d="m 961.00001,519.00005 -3,0 0,-0.99992 0.99994,0 6e-5,-2.00008 -1,0 0,-1 1,0 0,-1 1.00006,0 0,4.00008 0.99994,0 0,0.99992 z" /> - <path - inkscape:connector-curvature="0" - d="m 958,525 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m -1,1 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" - id="path23968" /> - <rect - style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="rect23970" - width="6" - height="9" - x="534" - y="955" - ry="0" - transform="matrix(0,1,1,0,0,0)" /> - <g - clip-path="url(#clipPath23877)" - id="g23972"> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" - d="m 140,118 a 8,8 0 0 1 -8,8 8,8 0 0 1 -8,-8 8,8 0 0 1 8,-8 8,8 0 0 1 8,8 z" - sodipodi:ry="8" - sodipodi:rx="8" - sodipodi:cy="118" - sodipodi:cx="132" - id="path23974" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - sodipodi:type="arc" - transform="matrix(0,-0.5624964,0.5624964,0,893.12545,612.74956)" /> - <path - inkscape:connector-curvature="0" - d="m 958,536 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,1 -2,0 0,1 2,0 0,-1 z" - id="path23976" /> - </g> - </g> - <g - transform="translate(208,88)" - id="g45475" - style="display:inline;enable-background:new"> - <g - style="display:inline" - id="g22242" - transform="translate(696,-194)" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - ry="0" - rx="2.4004419" - y="430" - x="108" - height="48" - width="48" - id="rect22244" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g22246"> - <path - inkscape:connector-curvature="0" - style="fill:url(#linearGradient22274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path22249" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path22251" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path22253" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient22276);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path22264" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - id="path22266" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path22268" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" /> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path22270" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path22272" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - </g> - </g> - <g - id="g21517" - inkscape:label="Layer 1" - transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)"> - <path - transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" - d="M 43.487067,38.98439 A 15.467961,5.3033009 0 0 1 28.019106,44.287691 15.467961,5.3033009 0 0 1 12.551145,38.98439 15.467961,5.3033009 0 0 1 28.019106,33.681089 15.467961,5.3033009 0 0 1 43.487067,38.98439 Z" - sodipodi:ry="5.3033009" - sodipodi:rx="15.467961" - sodipodi:cy="38.98439" - sodipodi:cx="28.019106" - id="path35486" - style="opacity:0.54857142;fill:url(#radialGradient21442);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="csssssssssscccsscccscccssccc" - d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" - id="path2482" - style="fill:#f57900;fill-rule:evenodd;stroke:#aa4400;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" /> - <path - transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" - d="M 42.75,25.75 A 11.5625,10.125 0 0 1 31.1875,35.875 11.5625,10.125 0 0 1 19.625,25.75 11.5625,10.125 0 0 1 31.1875,15.625 11.5625,10.125 0 0 1 42.75,25.75 Z" - sodipodi:ry="10.125" - sodipodi:rx="11.5625" - sodipodi:cy="25.75" - sodipodi:cx="31.1875" - id="path39153" - style="fill:url(#linearGradient21444);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - inkscape:connector-curvature="0" - style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" - d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 z" - id="path21414" - sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" /> - <path - inkscape:connector-curvature="0" - d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" - id="path2478" - style="fill:#3465a4;fill-rule:evenodd;stroke:none" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" - id="path39166" - d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 z" - style="opacity:0.51999996;fill:url(#radialGradient21448);fill-opacity:1;fill-rule:evenodd;stroke:none" /> - </g> - </g> - <g - style="opacity:0.5" - id="g24847" - transform="translate(162,248)"> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccssssccc" - style="fill:url(#linearGradient24867);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path24849" - d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" /> - <path - inkscape:connector-curvature="0" - id="path24851" - style="opacity:0.07999998;fill:url(#linearGradient24869);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" - sodipodi:nodetypes="cccccccccccccccccccccccccccccc" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="74.800003" - inkscape:export-xdpi="74.800003" - inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" - sodipodi:nodetypes="csccsczc" - id="path24853" - d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" - style="fill:url(#linearGradient24871);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - inkscape:connector-curvature="0" - d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 z" - id="path24855" - style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - sodipodi:nodetypes="ccssccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" - d="m 840.5,89 0,4.5" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24857" /> - <path - inkscape:connector-curvature="0" - id="path24859" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccsc" - d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" - style="opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - id="path24861" /> - <path - inkscape:connector-curvature="0" - d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" - id="path24863" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="ccccsscccssssccc" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:url(#linearGradient24873);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 841.5,94.5 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,18 c 0,2.25 -1.25,3 -2.5,3" - id="path24865" - sodipodi:nodetypes="csscc" /> - </g> - <g - style="opacity:0.5" - transform="translate(114,248)" - id="g24784"> - <path - inkscape:connector-curvature="0" - d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" - id="path24789" - style="fill:url(#linearGradient24809);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="ccccccssssccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccccccccccccccccccc" - d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" - style="opacity:0.07999998;fill:url(#linearGradient24811);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24791" /> - <path - inkscape:connector-curvature="0" - style="fill:url(#linearGradient24813);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" - id="path24793" - sodipodi:nodetypes="csccsczc" - inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" - inkscape:export-xdpi="74.800003" - inkscape:export-ydpi="74.800003" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccssccc" - style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path24796" - d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 z" /> - <path - inkscape:connector-curvature="0" - id="path24799" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 840.5,89 0,4.5" - sodipodi:nodetypes="cc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24801" /> - <path - inkscape:connector-curvature="0" - id="path24803" - style="opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" - sodipodi:nodetypes="cccccccsc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccsscccssssccc" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path24805" - d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="csscc" - id="path24807" - d="m 841.5,94.5 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,18 c 0,2.25 -1.25,3 -2.5,3" - style="fill:none;stroke:url(#linearGradient24815);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> - </g> - <g - transform="translate(0,-2)" - style="opacity:0.4;stroke:#3d361a;filter:url(#filter44473)" - id="g44424"> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" - id="path44406" - d="m 950.25,362 -5.25,0 -1,-1 0,-10" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path44408" - d="M 948.25,354.25 944,350.00563 939.75,354.25" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" /> - </g> - <g - transform="translate(617,273)" - id="g44334" - style="display:inline;enable-background:new"> - <rect - style="opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect44336" - width="16" - height="16" - x="320" - y="73" /> - <g - transform="translate(0,-21)" - id="g44338"> - <g - id="g44340"> - <g - transform="translate(0,21)" - id="g44342"> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" - id="path44344" - d="m 333.25,87 -5.25,0 -1,-1 0,-10" - style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path44346" - d="M 331.25,79.25 327,75.005631 322.75,79.25" - style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> - </g> - <g - transform="translate(0,21)" - id="g44348"> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 333.25,87 -5.25,0 -1,-1 0,-10" - id="path44350" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="M 331.25,79.25 327,75.005631 322.75,79.25" - id="path44352" - sodipodi:nodetypes="ccc" /> - </g> - </g> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 328.5,107.5 5,0 m -7,-9 0,8.5 m -4.25,-7 4.5,-4.5" - id="path44354" - sodipodi:nodetypes="cccccc" /> - </g> - </g> - <g - transform="translate(66,248)" - id="g24818" - style="display:inline;enable-background:new"> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccssssccc" - style="fill:url(#linearGradient24839);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path24821" - d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" /> - <path - inkscape:connector-curvature="0" - id="path24823" - style="opacity:0.07999998;fill:url(#linearGradient24841);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" - sodipodi:nodetypes="cccccccccccccccccccccccccccccc" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="74.800003" - inkscape:export-xdpi="74.800003" - inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" - sodipodi:nodetypes="csccsczc" - id="path24825" - d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-16 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,17 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" - style="fill:url(#linearGradient24843);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - inkscape:connector-curvature="0" - d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 z" - id="path24827" - style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - sodipodi:nodetypes="ccssccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" - d="m 840.5,89 0,7.5" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24829" /> - <path - inkscape:connector-curvature="0" - id="path24831" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 848.5,98.75 0,14.75 c 0,1.25 0.25,3 -1.25,4" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccsc" - d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-16 34,0 m -29,-10 c 0,0.5 0.5286,1 1,1 l 20,0" - style="opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - id="path24833" /> - <path - inkscape:connector-curvature="0" - d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-16 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-8 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" - id="path24835" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="ccccsscccssssccc" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:url(#linearGradient24845);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 841.5,96.500004 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,15.999996 c 0,2.25 -1.25,3 -2.5,3" - id="path24837" - sodipodi:nodetypes="csscc" /> - </g> - <g - style="opacity:0.4;filter:url(#filter44477)" - id="g44455"> - <path - inkscape:connector-curvature="0" - transform="translate(645,252.05)" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - id="path44446" - sodipodi:nodetypes="cs" /> - <path - inkscape:connector-curvature="0" - transform="translate(645,252.05)" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343,108.25 0,-4.25 4.25,0" - id="path44449" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - transform="matrix(-1,0,0,-1,1343,456.05)" - sodipodi:nodetypes="cs" - id="path44451" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - inkscape:connector-curvature="0" - transform="matrix(-1,0,0,-1,1343,456.05)" - sodipodi:nodetypes="ccc" - id="path44453" - d="m 343,108.25 0,-4.25 4.25,0" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - </g> - <g - transform="translate(645,273.05)" - id="g44356" - style="display:inline;enable-background:new"> - <rect - y="73" - x="341" - height="16" - width="16" - id="rect44358" - style="opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - transform="translate(0,-21)" - id="g44360"> - <g - id="g44362"> - <g - id="g44364"> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cs" - id="path44366" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path44368" - d="m 343,108.25 0,-4.25 4.25,0" - style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - </g> - <g - id="g44370"> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343,108.25 0,-4.25 4.25,0" - id="path44372" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - id="path44374" - sodipodi:nodetypes="cs" /> - </g> - <path - inkscape:connector-curvature="0" - id="path44376" - d="m 344,105 0,1 0,1.5 1,0 0,-1.5 1.5,0 0,-1 -1.5,0 -1,0 z" - style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - </g> - <g - id="g44378" - transform="matrix(-1,0,0,-1,698,204)"> - <g - id="g44380"> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - id="path44382" - sodipodi:nodetypes="cs" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343,108.25 0,-4.25 4.25,0" - id="path44384" - sodipodi:nodetypes="ccc" /> - </g> - <g - id="g44386"> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path44388" - d="m 343,108.25 0,-4.25 4.25,0" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cs" - id="path44390" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - </g> - <path - inkscape:connector-curvature="0" - style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 344,105 0,1 0,1.5 1,0 0,-1.5 1.5,0 0,-1 -1.5,0 -1,0 z" - id="path44392" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:url(#linearGradient44402);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 344.90625,106.59375 c 2.52573,2.51828 6.66805,2.52691 9.1875,0 l 0.5,-0.5" - id="path44394" - sodipodi:nodetypes="ccc" /> - </g> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 350.5,99.5 4,0 0,-4" - id="path44396" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 347.5,103.5 -4.5,0 c -0.25,0 -0.5,0.25 -0.5,0.5 l 0,4.5" - id="path44398" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - style="fill:none;stroke:url(#linearGradient44404);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 345.59375,105.90625 c 2.07803,2.0719 5.36384,2.10325 7.53125,0.1875 L 354,105.25" - id="path44400" - sodipodi:nodetypes="ccc" /> - </g> - </g> - <g - id="g34977" - style="display:inline;enable-background:new"> - <g - style="display:inline" - id="g21853-3" - transform="translate(856,-154)" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - ry="0" - rx="2.4004419" - y="430" - x="108" - height="48" - width="48" - id="rect21855-8" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g21857-6"> - <path - inkscape:connector-curvature="0" - style="fill:url(#linearGradient21875-7-1-0-1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path21859-9" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21861-8" - sodipodi:nodetypes="cccc" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106-9-2-9-9)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21863-6" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-6-7-0-8)" /> - <path - inkscape:connector-curvature="0" - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient21877-3-2-7-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path21865-6" - sodipodi:nodetypes="ccc" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - id="path21867-2" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - clip-path="url(#clipPath13106-9-2-9-9)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21869-3" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011-6-7-0-8)" /> - <path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path21871-8" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" - id="path21873-2" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - </g> - </g> - <g - id="g34938" - transform="translate(63,-47)"> - <path - id="path61236" - style="color:#000000;fill:url(#linearGradient34959-9-2-1);fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.17893334;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 919.5,356.5067 0,-3 c 0,-1.73575 1.26424,-3 3,-3 l 5,0 c 1.73576,0 3,-1.26425 3,-3 l 0,-3.0064 2.5,0.006 c 2,0 3.5,2.5 3.5,6 0,3.5 -1.25,6 -3.5,6 -4.98134,0 -12.77318,0 -2.5,0 l 0,2.75 c 0,2.5 -2,3.24997 -5.5,3.24998 l 0,2e-5 c -3.5,0.0104 -5.5,-0.75 -5.5,-3.25 l 0,-2.7628" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cssssccsscsccsc" /> - <path - sodipodi:nodetypes="cssssccsscsccsc" - inkscape:connector-curvature="0" - d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3.0064 -2.5,-0.006 c -2,0 -3.5,-2.5 -3.5,-6 0,-3.5 1.25,-6 3.5,-6 4.98134,0 12.77318,0 2.5,0 l 0,-2.75 c 0,-2.5 2,-3.24997 5.5,-3.24998 l 0,-2e-5 c 3.5,-0.0104 5.5,0.75 5.5,3.25 l 0,2.7628" - style="color:#000000;fill:url(#linearGradient34961-3-6-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.17893334;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path61233" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccscccsccccsccccc" - id="path61167" - d="m 925,338.50002 c -3.5,10e-6 -5.5,0.74998 -5.5,3.24998 l 0,2.75 5.5,0 -8,0 c -2.25,0 -3.5,2.5 -3.5,6 0,3.5 1.5,6 3.5,6 l 2.5,0.0128 0,2.9872 c 0,2 2,3.01281 5.5,3.0128 3.5,-1e-5 5.5,-1.0128 5.5,-3.0128 l 0,-3 -5.5,0 8,0 c 2,0 3.5,-2.5 3.5,-6 0,-3.5 -1.5,-6 -3.5,-6 l -2.5,0.0128 0,-2.7628 c 0,-2.5 -2,-3.26045 -5.5,-3.25 z" - style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-opacity:0.8627451;stroke-dasharray:none" /> - <path - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - id="path61169" - d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3" - style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - d="m 923,342 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z" - sodipodi:ry="1" - sodipodi:rx="1" - sodipodi:cy="342" - sodipodi:cx="922" - id="path61220" - style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - d="m 929,359 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z" - sodipodi:ry="1" - sodipodi:rx="1" - sodipodi:cy="359" - sodipodi:cx="928" - id="path61222" - style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <g - style="opacity:0.4" - id="g61345"> - <path - style="fill:none;stroke:url(#linearGradient34963-5-9-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" - d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" - id="path61333" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cszsc" /> - <path - style="fill:none;stroke:url(#linearGradient34965-1-5-2);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5 0,3 1.28917,5 2.5,5 l 1.5,0" - id="path61335" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccszsc" /> - <path - style="fill:none;stroke:none" - d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" - id="path61337" - inkscape:connector-curvature="0" /> - <path - style="fill:none;stroke:none" - d="m 918.5,355.25 0,-1.75 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" - id="path61339" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cssssc" /> - <path - transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" - sodipodi:type="arc" - style="color:#000000;fill:none;stroke:url(#linearGradient34967-4-1-8);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path61355" - sodipodi:cx="922" - sodipodi:cy="342" - sodipodi:rx="1" - sodipodi:ry="1" - d="m 923,342 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z" /> - </g> - <g - style="opacity:0.8;stroke:#ff0000" - transform="matrix(-1,0,0,-1,1850,701)" - id="g34104"> - <path - sodipodi:nodetypes="cszsc" - inkscape:connector-curvature="0" - id="path34106" - d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" - style="fill:none;stroke:none" /> - <path - sodipodi:nodetypes="csc" - inkscape:connector-curvature="0" - id="path34108" - d="m 914.5,350.5 c 0,3 1.28917,5 2.5,5 l 1.5,0" - style="fill:none;stroke:url(#linearGradient34969-4-4-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path34110" - d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" - style="fill:none;stroke:url(#linearGradient34971-5-0-9);stroke-linecap:round;stroke-linejoin:round" /> - <path - sodipodi:nodetypes="cssssc" - inkscape:connector-curvature="0" - id="path34113" - d="m 918.5,355.5 0,-2 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" - style="fill:none;stroke:url(#radialGradient34973-2-5-7);stroke-linecap:round;stroke-linejoin:round" /> - <path - d="m 923,342 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z" - sodipodi:ry="1" - sodipodi:rx="1" - sodipodi:cy="342" - sodipodi:cx="922" - id="path34115" - style="color:#000000;fill:none;stroke:url(#linearGradient34975-9-4-9);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" - transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" /> - <path - style="fill:none;stroke:none" - d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5" - id="path34901" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccsc" /> - </g> - </g> - </g> - <g - style="display:inline;enable-background:new" - id="g14765" - inkscape:export-filename="/home/georg/Arbeitsfläche/2012/Blender Coding/Patch #2a/icon_big_redone 5a.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - transform="translate(1090.1244,-109.28264)"> - <rect - ry="0" - rx="2.4004419" - y="336.28265" - x="-78.124435" - height="48" - width="48" - id="rect14767" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path14769" - d="m -60.624426,339.78264 22.999995,0 0,41 -32.999995,0 0,-31 10,-10 z" - style="fill:url(#linearGradient14814);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccc" - id="path14771" - style="opacity:0.7;fill:none;stroke:url(#linearGradient14816);stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.56470588" - d="m -38.874431,340.78264 c -4.875,0 -21.749995,0 -21.749995,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-8)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path14773" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106-0)" - inkscape:connector-curvature="0" - transform="translate(-186.12444,-93.717362)" /> - <path - sodipodi:nodetypes="ccc" - id="path14775" - style="fill:none;stroke:url(#linearGradient14818);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m -68.624426,350.03264 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m -70.624426,349.03264 0,31.75 32.999995,0 0,-41 -23.749995,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path14777" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011-8)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path14779" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106-0)" - inkscape:connector-curvature="0" - transform="translate(-186.12444,-93.717362)" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path14781" - d="m -70.124426,349.28264 0.0108,0.72434 9.9892,-2.72434 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:0.75294118;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m -38.624431,341.28264 0,38.5 -30.499995,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path14783" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - <g - transform="matrix(0.5406242,0,0,0.5829534,-67.987756,347.93806)" - inkscape:label="Layer 1" - id="g14785"> - <path - sodipodi:type="arc" - style="opacity:0.54857142;fill:url(#radialGradient14820);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path14788" - sodipodi:cx="28.019106" - sodipodi:cy="38.98439" - sodipodi:rx="15.467961" - sodipodi:ry="5.3033009" - d="M 43.487067,38.98439 A 15.467961,5.3033009 0 0 1 28.019106,44.287691 15.467961,5.3033009 0 0 1 12.551145,38.98439 15.467961,5.3033009 0 0 1 28.019106,33.681089 15.467961,5.3033009 0 0 1 43.487067,38.98439 Z" - transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" /> - <path - style="fill:#f57900;fill-rule:evenodd;stroke:#aa4400;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" - id="path14790" - d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" - sodipodi:nodetypes="csssssssssscccsscccscccssccc" - inkscape:connector-curvature="0" /> - <path - sodipodi:type="arc" - style="fill:url(#linearGradient14822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path14792" - sodipodi:cx="31.1875" - sodipodi:cy="25.75" - sodipodi:rx="11.5625" - sodipodi:ry="10.125" - d="M 42.75,25.75 A 11.5625,10.125 0 0 1 31.1875,35.875 11.5625,10.125 0 0 1 19.625,25.75 11.5625,10.125 0 0 1 31.1875,15.625 11.5625,10.125 0 0 1 42.75,25.75 Z" - transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" /> - <path - sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" - id="path14794" - d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 z" - style="opacity:0.4857143;fill:none;stroke:url(#linearGradient14825);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" - inkscape:connector-curvature="0" /> - <path - style="fill:#3465a4;fill-rule:evenodd;stroke:none" - id="path14796" - d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.51999996;fill:url(#radialGradient14827);fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 z" - id="path14798" - sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" - inkscape:connector-curvature="0" /> - </g> - </g> - </g> - <g id="ICON_FULLSCREEN_ENTER" inkscape:export-filename="C:\Documents and Settings\Pracownia\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 3\fullscreen.png" inkscape:export-xdpi="90" @@ -92433,6 +90782,1880 @@ sodipodi:nodetypes="ccsccsc" inkscape:connector-curvature="0" /> </g> + <rect + y="180.18372" + x="871.95667" + height="192" + width="192" + id="rect30285" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.39191818;marker:none;enable-background:accumulate" /> + <g + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + transform="translate(859.95667,-201.81628)" + id="g21955" + style="display:inline;opacity:0.3;enable-background:new"> + <rect + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" + id="rect21957" + width="48" + height="48" + x="108" + y="430" + rx="2.4004419" + ry="0" /> + <g + id="g21959"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21961" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient21977);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path21963" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 115,444 12,0 -1,-11 -11,11 z" + id="path21965" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106-7)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21967" + style="fill:none;stroke:url(#linearGradient21979);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.5,443.75 9,-2.5 0,-6" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21969" + sodipodi:nodetypes="cccccc" /> + <path + inkscape:connector-curvature="0" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 116,443 11,1 -2,-10 -9,9 z" + id="path21971" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106-7)" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21973" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.5,435 0,38.5 -30.5,0" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21975" + sodipodi:nodetypes="ccc" /> + </g> + </g> + <g + style="display:inline;enable-background:new" + transform="translate(3.9566736,0.18371585)" + id="g30335"> + <g + id="g21367" + transform="translate(760,-202)"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21369" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient30321);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path21371" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 115,444 12,0 -1,-11 -11,11 z" + id="path21373" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106-7)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21375" + style="fill:none;stroke:url(#linearGradient30323);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.5,443.75 9,-2.5 0,-6" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21377" + sodipodi:nodetypes="cccccc" /> + <path + inkscape:connector-curvature="0" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 116,443 11,1 -2,-10 -9,9 z" + id="path21569" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106-7)" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21379" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.5,435 0,38.5 -30.5,0" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21381" + sodipodi:nodetypes="ccc" /> + </g> + <path + inkscape:connector-curvature="0" + style="font-style:normal;font-weight:normal;font-size:33.49144363px;font-family:'Bitstream Vera Sans';display:inline;fill:#214478;fill-opacity:1;stroke:none" + d="m 891.07148,245 -0.0715,9 2.39012,0 C 896,254 896,253 896.5,251 l 0.5,0 0,7 -0.5,0 c -0.5,-2 -0.5,-3 -3.10988,-3 L 891,255 l 0,7 c 0,2.5 1,3.25 3.14146,3.39973 l -0.004,0.60029 L 885,266 l 0.004,-0.60029 C 887,265.25 888,264.5 888.00001,262 L 888,248 c 0,-2.5 -1,-3.25 -3,-3.5 l 0,-0.5 16,0 0,5 -0.5,0 c -0.50001,-1.99999 -1.5,-4 -4.5,-4 l -4.92852,0 z" + id="text13209" + sodipodi:nodetypes="ccccccccccccccccccccccc" /> + </g> + <g + style="display:inline;enable-background:new" + id="g21625" + transform="translate(907.95667,-153.81628)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect21627" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g21629"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient21647);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path21631" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <g + style="display:inline;opacity:0.5;fill:#000000" + id="g16261" + transform="matrix(1.2499985,0,0,1,-87.6203,-147.85351)"> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect35099" + width="17.600004" + height="1" + x="167.69646" + y="598.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect35101" + width="17.600004" + height="1" + x="167.69646" + y="600.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15690" + width="17.600004" + height="1" + x="167.69646" + y="602.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15692" + width="17.600004" + height="1" + x="167.69646" + y="604.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15694" + width="17.600004" + height="1" + x="167.69646" + y="606.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15696" + width="17.600004" + height="1" + x="167.69646" + y="608.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15698" + width="17.600004" + height="1" + x="167.69646" + y="610.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15700" + width="17.600004" + height="1" + x="167.69646" + y="612.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15732" + width="14.400002" + height="1" + x="167.69646" + y="614.85352" + rx="0.09920612" + ry="0.065390877" /> + <g + transform="translate(150.89645,557.85352)" + id="g4849" + style="display:inline;fill:#000000"> + <rect + ry="0.065390877" + rx="0.12125195" + y="29" + x="16.799992" + height="1" + width="17.600004" + id="rect15736" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + ry="0.065390877" + rx="0.12125195" + y="31" + x="16.799992" + height="1" + width="17.600004" + id="rect15738" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + ry="0.065390877" + rx="0.12125195" + y="33" + x="16.799992" + height="1" + width="17.600004" + id="rect15740" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + ry="0.065390877" + rx="0.12125195" + y="35" + x="16.799992" + height="1" + width="17.600004" + id="rect15742" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + ry="0.065390877" + rx="0.055114571" + y="37" + x="16.799992" + height="1" + width="8.0000095" + id="rect15744" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + </g> + <rect + ry="0.065390304" + rx="0.0057410933" + y="617.85352" + x="184.49646" + height="0.99999124" + width="0.83333319" + id="rect16334" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + </g> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21633" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21635" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient21649);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path21637" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path21639" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21641" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path21643" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <g + id="g35119" + transform="translate(2,-160.99999)" + style="display:inline"> + <g + style="display:inline" + transform="translate(105.39645,589.71201)" + id="g16097"> + <g + id="g16099" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" + transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)"> + <radialGradient + id="radialGradient16101" + cx="20.892099" + cy="114.5684" + r="5.256" + fx="20.892099" + fy="114.5684" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#F0F0F0" + id="stop16103" /> + <stop + offset="1" + style="stop-color:#474747" + id="stop16105" /> + </radialGradient> + <radialGradient + id="radialGradient16109" + cx="20.892099" + cy="64.567902" + r="5.257" + fx="20.892099" + fy="64.567902" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#F0F0F0" + id="stop16111" /> + <stop + offset="1" + style="stop-color:#474747" + id="stop16113" /> + </radialGradient> + </g> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" + id="path16107" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient21565);fill-rule:nonzero;stroke:none" + d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" + id="path16117" /> + </g> + <g + id="g16131" + transform="translate(105.39645,579.71201)" + style="display:inline"> + <g + transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" + id="g16133"> + <radialGradient + gradientUnits="userSpaceOnUse" + fy="114.5684" + fx="20.892099" + r="5.256" + cy="114.5684" + cx="20.892099" + id="radialGradient16135"> + <stop + id="stop16137" + style="stop-color:#F0F0F0" + offset="0" /> + <stop + id="stop16140" + style="stop-color:#474747" + offset="1" /> + </radialGradient> + <radialGradient + gradientUnits="userSpaceOnUse" + fy="64.567902" + fx="20.892099" + r="5.257" + cy="64.567902" + cx="20.892099" + id="radialGradient16142"> + <stop + id="stop16144" + style="stop-color:#F0F0F0" + offset="0" /> + <stop + id="stop16146" + style="stop-color:#474747" + offset="1" /> + </radialGradient> + </g> + <path + inkscape:connector-curvature="0" + id="path35139" + d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" + style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <path + inkscape:connector-curvature="0" + id="path35141" + d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" + style="fill:url(#radialGradient21567);fill-rule:nonzero;stroke:none" /> + </g> + </g> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21645" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <g + style="display:inline;enable-background:new" + id="g21572" + transform="translate(811.95667,-201.81628)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect21574" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g21576"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient21594);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path21578" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21580" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21582" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient21596);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path21584" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path21586" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21588" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path21590" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21592" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <g + style="display:inline;enable-background:new" + transform="translate(3.9566736,0.18371585)" + id="g30382"> + <g + id="g23655" + transform="translate(760,-154)"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path23657" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient30368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path23659" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 115,444 12,0 -1,-11 -11,11 z" + id="path23661" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106-7)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path23663" + style="fill:none;stroke:url(#linearGradient30370);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.5,443.75 9,-2.5 0,-6" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path23665" + sodipodi:nodetypes="cccccc" /> + <path + inkscape:connector-curvature="0" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 116,443 11,1 -2,-10 -9,9 z" + id="path23667" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106-7)" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path23669" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.5,435 0,38.5 -30.5,0" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path23671" + sodipodi:nodetypes="ccc" /> + </g> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + d="m 888,295 1,0 0,14 -1,0 0,-14 z" + id="path23675" + sodipodi:nodetypes="ccccc" /> + <path + inkscape:connector-curvature="0" + id="path23677" + d="m 900,294 1.00002,-1 0,14 -1.00002,0 0,-13 z" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" + id="path23679" + d="m 901.00003,292 0,2.25 -13.00002,2 0,-2.25 13.00002,-2 z" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + <g + id="g23681" + transform="matrix(1.1428564,0,0,1.2000001,822.71436,-355.40005)"> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" + id="path23683" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + style="display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;filter:url(#filter20578-5);enable-background:accumulate" + id="path23685" + transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" + inkscape:transform-center-y="0.3813435" + clip-path="url(#clipPath20586-3)" /> + </g> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;opacity:0.38999999;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + d="m 901.00003,292 -1e-5,1 -13.00002,2 10e-6,-1 13.00002,-2 z" + id="path23694" + sodipodi:nodetypes="ccccc" /> + <g + transform="matrix(1.1428564,0,0,1.2000001,834.71436,-357.40005)" + id="g23717"> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + id="path23724" + transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" /> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + clip-path="url(#clipPath20586-3)" + inkscape:transform-center-y="0.3813435" + transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" + id="path23726" + style="display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;filter:url(#filter20578-5);enable-background:accumulate" /> + </g> + </g> + <g + id="g23922" + transform="translate(-12.043326,-219.81628)" + style="display:inline;enable-background:new"> + <g + style="display:inline" + id="g23924" + transform="translate(824,66)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect23926" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g23928"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient23978);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path23930" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path23932" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path23934" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient23980);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path23936" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path23938" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path23940" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path23942" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path23944" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" + id="path23946" + d="m 952,530 0,10 1,0 1,0 11,0 1,0 1,0 0,-10 -15,0 z m 1,2 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <rect + transform="scale(1,-1)" + style="fill:url(#linearGradient23982);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="rect23948" + width="13" + height="5.5" + x="953" + y="-524" /> + <path + inkscape:connector-curvature="0" + id="path23952" + transform="translate(76,0)" + d="m 876,514 0,17 15,0 0,-17 -1,0 0,1 -1,0 0,-1 -11,0 0,1 -1,0 0,-1 -1,0 z m 1,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" + style="fill:url(#linearGradient23986);fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 952,507 3,0 0,3 9,0 0,-3 3,0 0,7 -15,0 0,-7 z m 1,0 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z m 12,-4 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z" + id="path23954" /> + <rect + transform="matrix(0,1,1,0,0,0)" + ry="0" + y="955" + x="507" + height="9" + width="3" + id="rect23956" + style="fill:url(#linearGradient23988);fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <rect + style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="rect23958" + width="9" + height="9" + x="512" + y="955" + ry="0" + transform="matrix(0,1,1,0,0,0)" /> + <rect + transform="matrix(0,1,1,0,0,0)" + ry="0" + y="955" + x="523" + height="9" + width="9" + id="rect23960" + style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <circle + r="8" + cy="118" + cx="132" + transform="matrix(0,-0.5624971,0.5624971,0,893.12531,590.74965)" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path23962" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <circle + r="8" + cy="118" + cx="132" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" + id="path23964" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(0,-0.5624964,0.5624964,0,893.12545,601.74956)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccc" + id="path23966" + d="m 961.00001,519.00005 -3,0 0,-0.99992 0.99994,0 6e-5,-2.00008 -1,0 0,-1 1,0 0,-1 1.00006,0 0,4.00008 0.99994,0 0,0.99992 z" /> + <path + inkscape:connector-curvature="0" + d="m 958,525 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m -1,1 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + id="path23968" /> + <rect + style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="rect23970" + width="6" + height="9" + x="534" + y="955" + ry="0" + transform="matrix(0,1,1,0,0,0)" /> + <g + clip-path="url(#clipPath23877-4)" + id="g23972"> + <circle + r="8" + cy="118" + cx="132" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" + id="path23974" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(0,-0.5624964,0.5624964,0,893.12545,612.74956)" /> + <path + inkscape:connector-curvature="0" + d="m 958,536 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,1 -2,0 0,1 2,0 0,-1 z" + id="path23976" /> + </g> + </g> + <g + transform="translate(211.95667,88.183716)" + id="g45475" + style="display:inline;enable-background:new"> + <g + style="display:inline" + id="g22242" + transform="translate(696,-194)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect22244" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g22246"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient22274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path22249" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path22251" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path22253" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient22276);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path22264" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path22266" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-7)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path22268" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path22270" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path22272" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <g + id="g21517" + inkscape:label="Layer 1" + transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)"> + <ellipse + ry="5.3033009" + rx="15.467961" + cy="38.98439" + cx="28.019106" + transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" + id="path35486" + style="display:inline;overflow:visible;visibility:visible;opacity:0.54857142;fill:url(#radialGradient21442);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssssssssscccsscccscccssccc" + d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" + id="path2482" + style="fill:#f57900;fill-rule:evenodd;stroke:#aa4400;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" /> + <ellipse + ry="10.125" + rx="11.5625" + cy="25.75" + cx="31.1875" + transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" + id="path39153" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient21444);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 Z" + id="path21414" + sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" /> + <path + inkscape:connector-curvature="0" + d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" + id="path2478" + style="fill:#3465a4;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" + id="path39166" + d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 Z" + style="opacity:0.51999996;fill:url(#radialGradient21448);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + </g> + </g> + <g + transform="translate(-0.04332638,0.18371585)" + style="display:inline;enable-background:new" + id="g6090"> + <g + id="g24784" + transform="translate(116,247.5)" + style="opacity:0.5"> + <path + sodipodi:nodetypes="ccccccssssccc" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24809);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="path24789" + d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" + inkscape:connector-curvature="0" /> + <path + id="path24791" + style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:url(#linearGradient24811);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" + sodipodi:nodetypes="cccccccccccccccccccccccccccccc" + inkscape:connector-curvature="0" /> + <path + inkscape:export-ydpi="74.800003" + inkscape:export-xdpi="74.800003" + inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" + sodipodi:nodetypes="csccsczc" + id="path24793" + d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24813);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 Z" + id="path24796" + style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + sodipodi:nodetypes="ccssccc" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + d="m 840.5,89 0,4.5" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24799" + inkscape:connector-curvature="0" /> + <path + id="path24801" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cccccccsc" + d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" + style="display:inline;opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path24803" + inkscape:connector-curvature="0" /> + <path + d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" + id="path24805" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccsscccssssccc" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:url(#linearGradient24815);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 841.5,94.5 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,18 c 0,2.25 -1.25,3 -2.5,3" + id="path24807" + sodipodi:nodetypes="csscc" + inkscape:connector-curvature="0" /> + </g> + <g + style="display:inline;filter:url(#filter6078);enable-background:new" + id="g44334" + transform="translate(619,272.5)"> + <rect + y="73" + x="320" + height="16" + width="16" + id="rect44336" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;enable-background:accumulate" /> + <g + id="g44338" + transform="translate(0,-21)"> + <g + id="g44340"> + <g + id="g44342" + transform="translate(0,21)"> + <path + style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 333.25,87 -5.25,0 -1,-1 0,-10" + id="path44344" + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 331.25,79.25 327,75.005631 322.75,79.25" + id="path44346" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /> + </g> + <g + id="g44348" + transform="translate(0,21)"> + <path + sodipodi:nodetypes="cccc" + id="path44350" + d="m 333.25,87 -5.25,0 -1,-1 0,-10" + style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + id="path44352" + d="M 331.25,79.25 327,75.005631 322.75,79.25" + style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> + </g> + <path + sodipodi:nodetypes="cccccc" + id="path44354" + d="m 328.5,107.5 5,0 m -7,-9 0,8.5 m -4.25,-7 4.5,-4.5" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + transform="translate(67.956674,247.68372)" + id="g24818" + style="display:inline;enable-background:new"> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccssssccc" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24839);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="path24821" + d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" /> + <path + inkscape:connector-curvature="0" + id="path24823" + style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:url(#linearGradient24841);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" + sodipodi:nodetypes="cccccccccccccccccccccccccccccc" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="74.800003" + inkscape:export-xdpi="74.800003" + inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" + sodipodi:nodetypes="csccsczc" + id="path24825" + d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-16 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,17 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24843);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 Z" + id="path24827" + style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + sodipodi:nodetypes="ccssccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + d="m 840.5,89 0,7.5" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24829" /> + <path + inkscape:connector-curvature="0" + id="path24831" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 848.5,98.75 0,14.75 c 0,1.25 0.25,3 -1.25,4" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccsc" + d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-16 34,0 m -29,-10 c 0,0.5 0.5286,1 1,1 l 20,0" + style="display:inline;opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path24833" /> + <path + inkscape:connector-curvature="0" + d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-16 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-8 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" + id="path24835" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccsscccssssccc" /> + <path + inkscape:connector-curvature="0" + style="fill:none;stroke:url(#linearGradient24845);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 841.5,96.500004 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,15.999996 c 0,2.25 -1.25,3 -2.5,3" + id="path24837" + sodipodi:nodetypes="csscc" /> + </g> + <g + transform="translate(-0.04332638,0.18371585)" + style="display:inline;enable-background:new" + id="g6158"> + <g + transform="translate(164,247.5)" + id="g24847" + style="opacity:0.5"> + <path + d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" + id="path24849" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24867);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccccssssccc" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cccccccccccccccccccccccccccccc" + d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" + style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:url(#linearGradient24869);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24851" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24871);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" + d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" + id="path24853" + sodipodi:nodetypes="csccsczc" + inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" + inkscape:export-xdpi="74.800003" + inkscape:export-ydpi="74.800003" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccssccc" + style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path24855" + d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 Z" + inkscape:connector-curvature="0" /> + <path + id="path24857" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 840.5,89 0,4.5" + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24859" + inkscape:connector-curvature="0" /> + <path + id="path24861" + style="display:inline;opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" + sodipodi:nodetypes="cccccccsc" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccccsscccssssccc" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="path24863" + d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="csscc" + id="path24865" + d="m 841.5,94.5 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,18 c 0,2.25 -1.25,3 -2.5,3" + style="fill:none;stroke:url(#linearGradient24873);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> + <g + style="display:inline;filter:url(#filter6146);enable-background:new" + id="g44356" + transform="translate(647,272.55)"> + <rect + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;enable-background:accumulate" + id="rect44358" + width="16" + height="16" + x="341" + y="73" /> + <g + id="g44360" + transform="translate(0,-21)"> + <g + id="g44362"> + <g + id="g44364"> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" + id="path44366" + sodipodi:nodetypes="cs" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 343,108.25 0,-4.25 4.25,0" + id="path44368" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /> + </g> + <g + id="g44370"> + <path + sodipodi:nodetypes="ccc" + id="path44372" + d="m 343,108.25 0,-4.25 4.25,0" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cs" + id="path44374" + d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + <path + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" + d="m 344,105 0,1 0,1.5 1,0 0,-1.5 1.5,0 0,-1 -1.5,0 -1,0 z" + id="path44376" + inkscape:connector-curvature="0" /> + </g> + <g + transform="matrix(-1,0,0,-1,698,204)" + id="g44378"> + <g + id="g44380"> + <path + sodipodi:nodetypes="cs" + id="path44382" + d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + id="path44384" + d="m 343,108.25 0,-4.25 4.25,0" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + <g + id="g44386"> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 343,108.25 0,-4.25 4.25,0" + id="path44388" + sodipodi:nodetypes="ccc" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" + id="path44390" + sodipodi:nodetypes="cs" + inkscape:connector-curvature="0" /> + </g> + <path + id="path44392" + d="m 344,105 0,1 0,1.5 1,0 0,-1.5 1.5,0 0,-1 -1.5,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + id="path44394" + d="m 344.90625,106.59375 c 2.52573,2.51828 6.66805,2.52691 9.1875,0 l 0.5,-0.5" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient44402);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + <path + sodipodi:nodetypes="ccc" + id="path44396" + d="m 350.5,99.5 4,0 0,-4" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cccc" + id="path44398" + d="m 347.5,103.5 -4.5,0 c -0.25,0 -0.5,0.25 -0.5,0.5 l 0,4.5" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="ccc" + id="path44400" + d="m 345.59375,105.90625 c 2.07803,2.0719 5.36384,2.10325 7.53125,0.1875 L 354,105.25" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient44404);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + transform="translate(3.9566736,0.18371585)" + id="g34977" + style="display:inline;enable-background:new"> + <g + style="display:inline" + id="g21853-3" + transform="translate(856,-154)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect21855-8" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g21857-6"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient21875-7-1-0-1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path21859-9" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21861-8" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-9-2-9-9-4)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21863-6" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-6-7-0-8)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient21877-3-2-7-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path21865-6" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path21867-2" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-9-2-9-9-4)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21869-3" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-6-7-0-8)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path21871-8" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21873-2" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <g + id="g34938" + transform="translate(63,-47)"> + <path + id="path61236" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient34959-9-2-1);fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.17893334;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 919.5,356.5067 0,-3 c 0,-1.73575 1.26424,-3 3,-3 l 5,0 c 1.73576,0 3,-1.26425 3,-3 l 0,-3.0064 2.5,0.006 c 2,0 3.5,2.5 3.5,6 0,3.5 -1.25,6 -3.5,6 -4.98134,0 -12.77318,0 -2.5,0 l 0,2.75 c 0,2.5 -2,3.24997 -5.5,3.24998 l 0,2e-5 c -3.5,0.0104 -5.5,-0.75 -5.5,-3.25 l 0,-2.7628" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssccsscsccsc" /> + <path + sodipodi:nodetypes="cssssccsscsccsc" + inkscape:connector-curvature="0" + d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3.0064 -2.5,-0.006 c -2,0 -3.5,-2.5 -3.5,-6 0,-3.5 1.25,-6 3.5,-6 4.98134,0 12.77318,0 2.5,0 l 0,-2.75 c 0,-2.5 2,-3.24997 5.5,-3.24998 l 0,-2e-5 c 3.5,-0.0104 5.5,0.75 5.5,3.25 l 0,2.7628" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient34961-3-6-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.17893334;marker:none;enable-background:accumulate" + id="path61233" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccscccsccccsccccc" + id="path61167" + d="m 925,338.50002 c -3.5,10e-6 -5.5,0.74998 -5.5,3.24998 l 0,2.75 5.5,0 -8,0 c -2.25,0 -3.5,2.5 -3.5,6 0,3.5 1.5,6 3.5,6 l 2.5,0.0128 0,2.9872 c 0,2 2,3.01281 5.5,3.0128 3.5,-1e-5 5.5,-1.0128 5.5,-3.0128 l 0,-3 -5.5,0 8,0 c 2,0 3.5,-2.5 3.5,-6 0,-3.5 -1.5,-6 -3.5,-6 l -2.5,0.0128 0,-2.7628 c 0,-2.5 -2,-3.26045 -5.5,-3.25 z" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.8627451" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path61169" + d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373;marker:none;enable-background:accumulate" /> + <circle + r="1" + cy="342" + cx="922" + id="path61220" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate" /> + <circle + r="1" + cy="359" + cx="928" + id="path61222" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate" /> + <g + style="opacity:0.4" + id="g61345"> + <path + style="fill:none;stroke:url(#linearGradient34963-5-9-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" + d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" + id="path61333" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cszsc" /> + <path + style="fill:none;stroke:url(#linearGradient34965-1-5-2);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5 0,3 1.28917,5 2.5,5 l 1.5,0" + id="path61335" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccszsc" /> + <path + style="fill:none;stroke:none" + d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" + id="path61337" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:none" + d="m 918.5,355.25 0,-1.75 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" + id="path61339" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssc" /> + <circle + r="1" + cy="342" + cx="922" + transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient34967-4-1-8);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate" + id="path61355" /> + </g> + <g + style="opacity:0.8;stroke:#ff0000" + transform="matrix(-1,0,0,-1,1850,701)" + id="g34104"> + <path + sodipodi:nodetypes="cszsc" + inkscape:connector-curvature="0" + id="path34106" + d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" + style="fill:none;stroke:none" /> + <path + sodipodi:nodetypes="csc" + inkscape:connector-curvature="0" + id="path34108" + d="m 914.5,350.5 c 0,3 1.28917,5 2.5,5 l 1.5,0" + style="fill:none;stroke:url(#linearGradient34969-4-4-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path34110" + d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" + style="fill:none;stroke:url(#linearGradient34971-5-0-9);stroke-linecap:round;stroke-linejoin:round" /> + <path + sodipodi:nodetypes="cssssc" + inkscape:connector-curvature="0" + id="path34113" + d="m 918.5,355.5 0,-2 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" + style="fill:none;stroke:url(#radialGradient34973-2-5-7);stroke-linecap:round;stroke-linejoin:round" /> + <circle + r="1" + cy="342" + cx="922" + id="path34115" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient34975-9-4-9);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate" + transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" /> + <path + style="fill:none;stroke:none" + d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5" + id="path34901" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccsc" /> + </g> + </g> + </g> + <g + transform="translate(211.95667,-7.8162842)" + id="g45475-4" + style="display:inline;enable-background:new"> + <g + style="display:inline" + id="g22242-6" + transform="translate(696,-194)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect22244-9" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g22246-2"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient22274-8);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path22249-8" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path22251-9" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-5)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path22253-5" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-5)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient22276-5);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path22264-3" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path22266-6" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-5)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path22268-0" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-5)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path22270-1" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path22272-3" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <g + id="g21517-6" + inkscape:label="Layer 1" + transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)"> + <ellipse + ry="5.3033009" + rx="15.467961" + cy="38.98439" + cx="28.019106" + transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" + id="path35486-4" + style="display:inline;overflow:visible;visibility:visible;opacity:0.54857142;fill:url(#radialGradient21442-6-790);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssssssssscccsscccscccssccc" + d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" + id="path2482-9" + style="fill:#dd6d00;fill-rule:evenodd;stroke:#993d00;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" /> + <ellipse + ry="10.125" + rx="11.5625" + cy="25.75" + cx="31.1875" + transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" + id="path39153-3" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient21444-0-352);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446-3-145);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 Z" + id="path21414-5" + sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" /> + <path + inkscape:connector-curvature="0" + d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" + id="path2478-8" + style="fill:#2f5b94;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" + id="path39166-5" + d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 Z" + style="opacity:0.51999996;fill:url(#radialGradient21448-8-143);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + </g> + </g> </g> <g inkscape:groupmode="layer" diff --git a/release/datafiles/locale b/release/datafiles/locale -Subproject 9628dc1922be2fb6281bc66f5f7512c2a57c294 +Subproject dc166057192ea882b5cc70484d4c8bacd7cb41b diff --git a/release/datafiles/prvicons.png b/release/datafiles/prvicons.png Binary files differindex 7209385da9c..ccd47438da6 100644 --- a/release/datafiles/prvicons.png +++ b/release/datafiles/prvicons.png diff --git a/release/datafiles/prvicons.svg b/release/datafiles/prvicons.svg index e0894ff2dc8..0d64bf78865 100644 --- a/release/datafiles/prvicons.svg +++ b/release/datafiles/prvicons.svg @@ -14,7 +14,7 @@ height="192" id="svg2" sodipodi:version="0.32" - inkscape:version="0.48.4 r9939" + inkscape:version="0.91 r13725" version="1.0" sodipodi:docname="prvicons.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" @@ -32,19 +32,19 @@ objecttolerance="10000" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="5.6568542" - inkscape:cx="118.09116" - inkscape:cy="73.89985" + inkscape:zoom="4.29" + inkscape:cx="86.93017" + inkscape:cy="96" inkscape:document-units="px" - inkscape:current-layer="g32752" - showgrid="false" + inkscape:current-layer="layer1" + showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1018" - inkscape:window-x="-8" - inkscape:window-y="-8" + inkscape:window-height="1005" + inkscape:window-x="-2" + inkscape:window-y="27" inkscape:snap-nodes="true" - inkscape:snap-bbox="false" - showguides="true" + inkscape:snap-bbox="true" + showguides="false" inkscape:guide-bbox="true" inkscape:object-nodes="false" inkscape:object-paths="false" @@ -53,28 +53,29 @@ inkscape:window-maximized="1" inkscape:bbox-paths="false" inkscape:snap-global="true" - inkscape:snap-bbox-midpoints="false" + inkscape:snap-bbox-midpoints="true" inkscape:snap-grids="true" - inkscape:snap-to-guides="false" + inkscape:snap-to-guides="true" inkscape:snap-page="false" units="px" inkscape:snap-center="false" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" - fit-margin-bottom="0"> + fit-margin-bottom="0" + inkscape:snap-bbox-edge-midpoints="false"> <inkscape:grid originy="0px" originx="0px" snapvisiblegridlinesonly="true" empopacity="0.25098039" - empcolor="#7f7f7f" + empcolor="#7f1118" dotted="false" opacity="0.09803922" color="#808080" empspacing="4" - spacingy="0.25px" - spacingx="0.25px" + spacingy="4" + spacingx="4" enabled="true" visible="true" id="grid17394" @@ -15166,32 +15167,6 @@ id="linearGradient44404" xlink:href="#linearGradient44939-8" inkscape:collect="always" /> - <filter - color-interpolation-filters="sRGB" - height="1.229448" - y="-0.11472401" - width="1.2515693" - x="-0.12578467" - id="filter44473" - inkscape:collect="always"> - <feGaussianBlur - id="feGaussianBlur44475" - stdDeviation="0.81235925" - inkscape:collect="always" /> - </filter> - <filter - color-interpolation-filters="sRGB" - height="1.2365714" - y="-0.11828571" - width="1.2435294" - x="-0.12176471" - id="filter44477" - inkscape:collect="always"> - <feGaussianBlur - id="feGaussianBlur44479" - stdDeviation="0.8625" - inkscape:collect="always" /> - </filter> <linearGradient y2="106.5" x2="284.5" @@ -17793,19 +17768,6 @@ d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" style="fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" /> </clipPath> - <filter - color-interpolation-filters="sRGB" - id="filter63011-8" - height="2.0133312" - y="-0.50666559" - width="1.9120018" - x="-0.45600089" - inkscape:collect="always"> - <feGaussianBlur - id="feGaussianBlur63013-2" - stdDeviation="1.899998" - inkscape:collect="always" /> - </filter> <linearGradient y2="383.69843" x2="174.29811" @@ -17928,6 +17890,78 @@ offset="1" id="stop39175-18" /> </linearGradient> + <filter + style="color-interpolation-filters:sRGB;" + inkscape:label="Drop Shadow" + id="filter6078" + x="-0.29999999999999999" + width="1.3500000000000001" + height="1.3999999999999999" + y="-0.14999999999999999"> + <feFlood + flood-opacity="0.40000000000000002" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood6080" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite6082" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.5" + result="blur" + id="feGaussianBlur6084" /> + <feOffset + dx="-2" + dy="2" + result="offset" + id="feOffset6086" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite6088" /> + </filter> + <filter + style="color-interpolation-filters:sRGB;" + inkscape:label="Drop Shadow" + id="filter6146" + x="-0.29999999999999999" + width="1.3500000000000001" + y="-0.14999999999999999" + height="1.3999999999999999"> + <feFlood + flood-opacity="0.40000000000000002" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood6148" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite6150" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.5" + result="blur" + id="feGaussianBlur6152" /> + <feOffset + dx="-2" + dy="2" + result="offset" + id="feOffset6154" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite6156" /> + </filter> </defs> <metadata id="metadata7"> @@ -17989,6 +18023,600 @@ id="path23347" style="fill:none;stroke:#ffffff;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="sheet_layout" + sodipodi:insensitive="true"> + <path + inkscape:connector-curvature="0" + id="path19551-18-1" + d="m 35.75,29.5 0,1 -0.5,0 0,1 0.5,0 0,1 -0.75,0 0,1 0.75,0 0,1 1.5,0 0,-1 0.75,0 0,-1 -0.75,0 0,-1 0.5,0 0,-1 -0.5,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,1 -1,0 0,-1 z m 0,2 1,0 0,1 -1,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + id="path30643-7-0" + d="m 31.75,29.5 0,1 -0.75,0 0,3 0.75,0 0,1 1.5,0 0,-1 0.75,0 0,-3 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,3 -1,0 0,-3 z m 0.25,1 0,1 0.5,0 0,-1 -0.5,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path30647-6-1" + d="m 19,29.5 0,1 2,0 0,1 -1,0 0,1 1,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -2,0 z m 1,3 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path30649-7-4" + d="m 25,29.5 0,3 1,0 1,0 0,1 -2,0 0,1 2,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <rect + y="33.5" + x="23" + height="1" + width="1" + id="rect30651-8-6" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect30653-7-0" + width="1" + height="1" + x="29" + y="33.5" /> + <rect + y="33.5" + x="15" + height="1" + width="1" + id="rect30725-8-7" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + id="path30723-1-1" + d="m 11,31.5 0,2.25 1,0 0,0.75 1,0 0,-0.75 1,0 0,-2.25 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccccccccccc" + inkscape:connector-curvature="0" /> + <g + transform="translate(-62,136.5)" + id="g72798" + style="display:inline;opacity:0.5;enable-background:new"> + <g + id="g72716"> + <path + id="path72434" + d="m 186,-127 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 0,-1.25 -1,0 0,1.25 -1,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <rect + y="-127" + x="219" + height="5" + width="1" + id="rect72436" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + id="path72438" + d="m 144,-127 0,4 -1,0 0,-1 -1,0 0,1 0.75,0 0,1 1.5,0 0,-1 0.75,0 0,-4 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72440" + d="m 189,-127 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72442" + d="m 165,-127 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72446" + d="m 130,-127 0,0.75 -1,0 0,1.5 1,0 0,0.75 1,0 0,1 -2,0 0,1 2,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -1,0 0,-1 1.5,0 0,-1 -1.5,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72448" + d="m 154,-127 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72450" + d="m 133,-127 0,4.25 1,0 0,0.75 2,0 0,-0.75 1,0 0,-4.25 -1,0 0,4 -2,0 0,-4 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72452" + d="m 138,-127 0,5 1,0 1,0 0,-0.5 1,0 0,-1.5 -0.75,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z m 0,2 1,0 0,1 -1,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72454" + d="m 151,-127 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72456" + d="m 146,-127 0,5 1,0 2,0 0,-1 -2,0 0,-1 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 209,-127 0,5 1,0 2,0 0,-1 -2,0 0,-4 -1,0 z" + id="path72458" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 160,-127 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + id="path72460" /> + <path + id="path72462" + d="m 171,-127 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72464" + d="m 175,-127 0,5 1,0 0,-2 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 179,-127 0,5 1,0 2,0 0,-1 -2,0 0,-1 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + id="path72466" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 194,-127 0,4.25 1,0 0,0.75 2,0 0,-0.75 1,0 0,-4.25 -1,0 0,4 -2,0 0,-4 -1,0 z" + id="path72468" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 202,-127 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 0,-1.25 -1,0 0,1.25 -1,0 0,-3 2,0 0,-1 -2,0 z" + id="path72470" /> + <path + id="path72472" + d="m 205,-127 0,5 1,0 0,-2 1.25,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path72474" + d="m 215,-127 0,5 1,0 2,0 0,-1 -2,0 0,-4 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 222,-127 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + id="path72476" /> + <path + id="path72478" + d="m 225,-127 0,5 1,0 2,0 0,-1 -2,0 0,-1 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 229,-127 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + id="path72480" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 235,-127 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + id="path72482" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 238,-127 0,5 1,0 2,0 0,-1 -2,0 0,-1 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + id="path72484" /> + <path + id="path72486" + d="m 242.75,-123 0,1 -0.75,0 0,1 1,0 0,-1 1,0 0,-1 -1.25,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path32008-7" + d="m 72,-127 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32010-4" + d="m 76,-127 0,5 1,0 0,-2 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + y="-127" + x="80" + height="5" + width="1" + id="rect32012-0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32015-9" + d="m 83,-127 0,0.75 -1,0 0,1.5 1,0 0,0.75 1,0 0,1 -2,0 0,1 2,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -1,0 0,-1 1.5,0 0,-1 -1.5,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32017-4" + d="m 89,-127 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32019-8" + d="m 97,-127 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32021-8" + d="m 93,-127 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32023-2" + d="m 102,-127 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32026-4" + d="m 106,-127 0,5 1,0 2,0 0,-1 -2,0 0,-1 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 110,-127 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + id="path32029-5" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 115,-127 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + id="path32031-5" /> + <rect + y="-127" + x="121" + height="5" + width="1" + id="rect32033-1" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 124,-127 0,0.75 -1,0 0,1.5 1,0 0,0.75 1,0 0,1 -2,0 0,1 2,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -1,0 0,-1 1.5,0 0,-1 -1.5,0 z" + id="path32035-7" /> + </g> + <g + id="g72757"> + <path + id="path72562" + d="m 78,-119 0,5 1,0 0,-2 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <rect + y="-119" + x="82" + height="5" + width="1" + id="rect72564" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + id="path72576" + d="m 72,-119 0,3.25 1,0 0,1.75 1,0 0,-1.75 1,0 0,1.75 1,0 0,-1.75 1,0 0,-3.25 -1,0 0,3 -1,0 0,-2 -1,0 0,2 -1,0 0,-3 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72578" + d="m 130,-119 0,2.25 1,0 0,2.75 1,0 0,-2.75 1,0 0,-2.25 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72580" + d="m 94.75,-119 0,1 -0.75,0 0,4 1,0 0,-2 1,0 0,2 1,0 0,-4 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,1 -1,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72582" + d="m 85,-119 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 88,-119 0,5 1,0 0,-2 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 0,-2 -1,0 z" + id="path72588" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 99,-119 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + id="path72590" /> + <path + id="path72592" + d="m 103,-119 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 107,-119 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + id="path72594" /> + <path + id="path72596" + d="m 111,-119 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,-1 -1,0 z m 1,0 1,0 0,3 1,0 0,-5 -1,0 0,1 -1,0 0,1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 117,-119 0,5 1,0 0,-2 1.25,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z" + id="path72598" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 121.75,-119 0,1 -0.75,0 0,4 1,0 0,-2 1,0 0,2 1,0 0,-4 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,1 -1,0 0,-1 z" + id="path72600" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 125,-119 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + id="path72602" /> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect72604" + width="1" + height="5" + x="136" + y="-119" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 138,-119 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + id="path72606" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 144.75,-119 0,1 -0.75,0 0,4 1,0 0,-2 1,0 0,2 1,0 0,-4 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,1 -1,0 0,-1 z" + id="path72608" /> + <path + inkscape:connector-curvature="0" + id="path72610" + d="m 148,-119 0,5 1,0 2,0 0,-1 -2,0 0,-4 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 153,-119 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + id="path72612" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 157,-119 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + id="path72614" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 163,-119 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 0,-1.25 -1,0 0,1.25 -1,0 0,-3 2,0 0,-1 -2,0 z" + id="path72616" /> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect72618" + width="1" + height="5" + x="174" + y="-119" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 168,-119 0,3.25 1,0 0,1.75 1,0 0,-1.75 1,0 0,1.75 1,0 0,-1.75 1,0 0,-3.25 -1,0 0,3 -1,0 0,-2 -1,0 0,2 -1,0 0,-3 -1,0 z" + id="path72620" /> + <path + id="path72622" + d="m 180,-119 0,5 1,0 0,-2 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + id="path72624" + d="m 176,-119 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path32207-9-7" + d="m 187,-119 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 -2,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32209-6-7" + d="m 191,-119 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32211-3-7" + d="m 195,-119 0,5 1,0 0,-2 1.25,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32213-7-3" + d="m 199,-119 0,2.25 1,0 0,2.75 1,0 0,-2.75 1,0 0,-2.25 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32216-8-3" + d="m 203,-119 0,5 1,0 0,-2 1,0 0,2 1,0 0,-2 -0.75,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect32218-8-5" + width="1" + height="5" + x="207" + y="-119" /> + <path + inkscape:connector-curvature="0" + id="path32220-2-9" + d="m 210,-119 0,0.75 -1,0 0,3.5 1,0 0,0.75 2,0 0,-1 0,-1.25 -1,0 0,1.25 -1,0 0,-3 2,0 0,-1 -2,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32222-9-9" + d="m 213,-119 0,5 1,0 0,-2 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 0,-2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32224-1-8" + d="m 217,-119 0,1 1,0 0,4 1,0 0,-4 1,0 0,-1 -3,0 0,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + id="path72678" + d="m 225,-119 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 235,-119 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + id="path72680" + inkscape:connector-curvature="0" /> + <rect + y="-119" + x="223" + height="5" + width="1" + id="rect72682" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + y="-115" + x="239" + height="1" + width="1" + id="rect72684" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + id="path72686" + d="m 230,-119 0,5 1,0 0,-2 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + transform="translate(-62,136.5)" + style="display:inline;enable-background:new" + id="g72880"> + <g + transform="translate(231,-90)" + id="g32242-4"> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m -12.25,-17 0,1 -0.75,0 0,4 1,0 0,-2 1,0 0,2 1,0 0,-4 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,1 -1,0 0,-1 z" + id="path32244-2" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m -9,-17 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,-1 -1,0 z m 1,0 1,0 0,3 1,0 0,-5 -1,0 0,1 -1,0 0,1 z" + id="path32246-0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m -3,-17 0,5 1,0 1,0 0,-0.5 1,0 0,-1.5 -0.75,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z m 0,2 1,0 0,1 -1,0 0,-1 z" + id="path32248-9" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 1,-17 0,5 1,0 0,-2 1,0 0,2 1,0 0,-2 -0.75,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z" + id="path32250-7" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 6,-17 0,1 2,0 0,-1 -2,0 z m 2,1 0,3 1,0 0,-3 -1,0 z m 0,3 -2,0 0,1 2,0 0,-1 z m -2,0 0,-3 -1,0 0,3 1,0 z" + id="path32252-3" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 10,-17 0,1 2,0 0,1 1,0 0,-1 0,-1 -3,0 z m 2,2 -1,0 0,1 1,0 0,-1 z m -1,1 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + id="path32254-7" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m -43.25,-17 0,1 -0.75,0 0,4 1,0 0,-2 1,0 0,2 1,0 0,-4 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,1 -1,0 0,-1 z" + id="path32256-2" /> + <path + inkscape:connector-curvature="0" + id="path32258-6" + d="m -40,-17 0,5 1,0 0,-3 1,0 0,-1 -1,0 0,-1 -1,0 z m 2,2 0,1 1,0 0,2 1,0 0,-5 -1,0 0,2 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32260-0" + d="m -35,-17 0,1 0,3 0,1 2,0 0,-0.75 1,0 0,-3.5 -1,0 0,-0.75 -2,0 z m 1,1 1,0 0,3 -1,0 0,-3 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m -31,-17 0,5 1,0 0,-2 1,0 0,2 1,0 0,-2 -0.75,0 0,-1 0.75,0 0,-1.25 -1,0 0,-0.75 -1,0 -1,0 z m 1,1 1,0 0,1 -1,0 0,-1 z" + id="path32262-1" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m -27,-17 0,1 2,0 0,1 1,0 0,-1 0,-1 -3,0 z m 2,2 -1,0 0,1 1,0 0,-1 z m -1,1 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + id="path32264-6" /> + <path + inkscape:connector-curvature="0" + id="path32266-5" + d="m -23,-17 0,5 1,0 2,0 0,-1 -2,0 0,-1 1,0 0,-1 -1,0 0,-1 2,0 0,-1 -2,0 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="path32268-7" + d="m -17,-17 0,4 -1,0 0,-1 -1,0 0,1 0.75,0 0,1 1.5,0 0,-1 0.75,0 0,-4 -1,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <rect + y="-19" + x="11" + height="1" + width="1" + id="rect32270-5" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + </g> + <g + id="g21967-4" + transform="translate(111.96875,-88)"> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 48,-20 0,0.75 -1,0 0,0.25 -0.25,0 0,1 -0.75,0 0,3 0.75,0 0,1 0.25,0 0,0.25 1,0 0,0.75 3,0 0,-0.75 1,0 0,-0.25 0.25,0 0,-1 0.75,0 0,-3 -0.75,0 0,-1 -0.25,0 0,-0.25 -1,0 0,-0.75 -3,0 z m 0,1 3,0 0,1 1,0 0,3 -1,0 0,1 -3,0 0,-1 -1,0 0,-3 1,0 0,-1 z" + id="path32272-1" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" /> + <path + inkscape:connector-curvature="0" + id="path32274-2" + d="m 49,-18 0,0.75 -1,0 0,1.5 1,0 0,0.75 1.25,0 0,-1 -1.25,0 0,-1 1.25,0 0,-1 -1.25,0 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccccccccccc" /> + </g> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 171.71875,-107 0,1 -0.75,0 0,3 0.75,0 0,1 1.5,0 0,-1 0.75,0 0,-3 -0.75,0 0,-1 -1.5,0 z m 0.25,1 1,0 0,3 -1,0 0,-3 z m 0.25,1 0,1 0.5,0 0,-1 -0.5,0 z" + id="path72688" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 175.96875,-107 0,1 -1,0 0,1 1,0 0,3 1,0 0,-5 -1,0 z" + id="path72690" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 177.96875,-107 0,1 2,0 0,1 -1,0 0,1 1,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -2,0 z m 1,3 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + id="path72692" /> + <path + id="path72694" + d="m 166.96875,-107 0,1 2,0 0,1 -1,0 0,1 1,0 0,-0.75 1,0 0,-1.5 -1,0 0,-0.75 -2,0 z m 1,3 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + d="m 182.96875,-106 0,1 1,0 0,-1 -1,0 z m -0.21875,3 0,1 -0.75,0 0,1 1,0 0,-1 1,0 0,-1 -1.25,0 z" + id="path72696" /> + </g> + </g> + <g transform="translate(-872,-180)" style="display:inline" id="layer1" @@ -18101,7 +18729,7 @@ id="g12156" /> <g transform="translate(-98,462.06404)" - style="opacity:0.65;display:inline" + style="display:inline;opacity:0.65" id="g12249" /> <g id="g12255" @@ -18109,7 +18737,7 @@ style="display:inline" /> <g id="g12325" - style="opacity:0.65;display:inline" + style="display:inline;opacity:0.65" transform="translate(-98,483.06404)" /> <g style="display:inline" @@ -18181,11 +18809,11 @@ height="0" width="1" id="rect17123" - style="opacity:0;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#999999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate" /> <g id="g51988" transform="translate(47,-247.0151)" - style="fill:#d45500;fill-opacity:1;display:inline" /> + style="display:inline;fill:#d45500;fill-opacity:1" /> <g transform="translate(10,254)" id="g57337" @@ -18198,7 +18826,7 @@ height="0" width="0" id="rect23719" - style="opacity:0.01000001;fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;opacity:0.01000001;fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <g transform="translate(341,-57.00032)" id="g24088" /> @@ -18227,14 +18855,14 @@ <g id="g24176" transform="translate(-65,-169.00755)" - style="fill:#d45500;fill-opacity:1;display:inline" /> + style="display:inline;fill:#d45500;fill-opacity:1" /> <g id="g28643" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\blender-cvs-windows\.blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" transform="translate(-323.1613,214)" - style="fill:none;stroke:#ffffff;stroke-width:1.50000143;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:7.40000034;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.50000143;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.40000057;stroke-opacity:1;marker:none;enable-background:accumulate" /> <g id="g29500" /> <g @@ -18264,7 +18892,7 @@ id="g33447" /> <g transform="translate(-870.9421,-297.02038)" - style="fill:#ffeeaa;display:inline" + style="display:inline;fill:#ffeeaa" id="g77742" /> <g id="g34782" @@ -18272,10 +18900,10 @@ inkscape:export-xdpi="90" inkscape:export-ydpi="90" transform="matrix(-1,0,0,-1,104.1613,262.99999)" - style="stroke:#ffffff;display:inline"> + style="display:inline;stroke:#ffffff"> <path inkscape:connector-curvature="0" - style="fill:none;stroke:#ffffff;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:7.40000034;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.40000057;stroke-opacity:1;marker:none;enable-background:accumulate" id="path34784" sodipodi:nodetypes="cz" d="" /> @@ -18285,10 +18913,10 @@ d="" sodipodi:nodetypes="cz" id="path34806" - style="fill:none;stroke:#ffffff;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:7.40000034;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.40000057;stroke-opacity:1;marker:none;enable-background:accumulate" /> <path inkscape:connector-curvature="0" - style="fill:none;stroke:#ffffff;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:7.40000034;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1.60000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.40000057;stroke-opacity:1;marker:none;enable-background:accumulate" id="path34696" sodipodi:nodetypes="cz" d="" /> @@ -18299,21 +18927,21 @@ <g id="g36511" transform="translate(250,-41.00755)" - style="fill:#d45500;fill-opacity:1;display:inline" /> + style="display:inline;fill:#d45500;fill-opacity:1" /> <rect y="67" x="-25" height="0" width="1" id="rect39658" - style="opacity:0;fill:#fffeaa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" /> + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#fffeaa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:new" /> <rect y="66" x="-24" height="1" width="0" id="rect39660" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" /> + style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:new" /> <g id="g40090" mask="url(#mask38561)" @@ -18328,1254 +18956,1170 @@ id="g40736" /> </g> <g - style="stroke-width:5.41920376;stroke-miterlimit:4;stroke-dasharray:none;display:inline" + style="display:inline;stroke-width:5.41920376;stroke-miterlimit:4;stroke-dasharray:none" id="g38570" transform="matrix(0.5478212,-0.56064,0.5419177,0.5545983,197.19518,557.21673)" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> + <rect + y="180" + x="872" + height="192" + width="192" + id="rect30285" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.39191818;marker:none;enable-background:accumulate" /> <g inkscape:export-ydpi="90" inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracownia\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\RELEASES\v. 2.5.06\prvicons v.2.5.06.png" - id="g32752"> + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + transform="translate(860,-202)" + id="g21955" + style="display:inline;opacity:0.3;enable-background:new"> <rect - style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.39191818;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect30285" - width="192" - height="192" - x="872" - y="180" /> + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" + id="rect21957" + width="48" + height="48" + x="108" + y="430" + rx="2.4004419" + ry="0" /> <g - style="opacity:0.3;display:inline;enable-background:new" - id="g21955" - transform="translate(856,-203)" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <rect - ry="0" - rx="2.4004419" - y="430" - x="108" - height="48" - width="48" - id="rect21957" - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <g - id="g21959"> - <path - style="fill:url(#linearGradient21977);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path21961" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21963" - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" /> - <path - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21965" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - inkscape:connector-curvature="0" /> - <path - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient21979);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path21967" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccccc" - id="path21969" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21971" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - inkscape:connector-curvature="0" /> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path21973" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path21975" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - </g> + id="g21959"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21961" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient21977);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path21963" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 115,444 12,0 -1,-11 -11,11 z" + id="path21965" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21967" + style="fill:none;stroke:url(#linearGradient21979);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.5,443.75 9,-2.5 0,-6" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21969" + sodipodi:nodetypes="cccccc" /> + <path + inkscape:connector-curvature="0" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 116,443 11,1 -2,-10 -9,9 z" + id="path21971" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106)" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21973" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.5,435 0,38.5 -30.5,0" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21975" + sodipodi:nodetypes="ccc" /> </g> + </g> + <g + transform="translate(4,0)" + id="g30335"> <g - id="g30335"> - <g - transform="translate(760,-202)" - id="g21367"> - <path - style="fill:url(#linearGradient30321);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path21369" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21371" - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" /> - <path - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21373" - d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - inkscape:connector-curvature="0" /> - <path - clip-path="none" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient30323);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path21375" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccccc" - id="path21377" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - clip-path="url(#clipPath13106)" - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccc" - id="path21569" - d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - inkscape:connector-curvature="0" /> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path21379" - sodipodi:nodetypes="cccccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path21381" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.5,435 0,38.5 -30.5,0" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - </g> + id="g21367" + transform="translate(760,-202)"> <path - sodipodi:nodetypes="ccccccccccccccccccccccc" - id="text13209" - d="m 891.07148,245 -0.0715,9 2.39012,0 C 896,254 896,253 896.5,251 l 0.5,0 0,7 -0.5,0 c -0.5,-2 -0.5,-3 -3.10988,-3 L 891,255 l 0,7 c 0,2.5 1,3.25 3.14146,3.39973 l -0.004,0.60029 L 885,266 l 0.004,-0.60029 C 887,265.25 888,264.5 888.00001,262 L 888,248 c 0,-2.5 -1,-3.25 -3,-3.5 l 0,-0.5 16,0 0,5 -0.5,0 c -0.50001,-1.99999 -1.5,-4 -4.5,-4 l -4.92852,0 z" - style="font-size:33.49144363px;font-style:normal;font-weight:normal;fill:#214478;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21369" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient30321);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path21371" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 115,444 12,0 -1,-11 -11,11 z" + id="path21373" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21375" + style="fill:none;stroke:url(#linearGradient30323);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.5,443.75 9,-2.5 0,-6" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21377" + sodipodi:nodetypes="cccccc" /> + <path + inkscape:connector-curvature="0" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 116,443 11,1 -2,-10 -9,9 z" + id="path21569" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106)" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path21379" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.5,435 0,38.5 -30.5,0" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21381" + sodipodi:nodetypes="ccc" /> </g> + <path + inkscape:connector-curvature="0" + style="font-style:normal;font-weight:normal;font-size:33.49144363px;font-family:'Bitstream Vera Sans';display:inline;fill:#214478;fill-opacity:1;stroke:none" + d="m 891.07148,245 -0.0715,9 2.39012,0 C 896,254 896,253 896.5,251 l 0.5,0 0,7 -0.5,0 c -0.5,-2 -0.5,-3 -3.10988,-3 L 891,255 l 0,7 c 0,2.5 1,3.25 3.14146,3.39973 l -0.004,0.60029 L 885,266 l 0.004,-0.60029 C 887,265.25 888,264.5 888.00001,262 L 888,248 c 0,-2.5 -1,-3.25 -3,-3.5 l 0,-0.5 16,0 0,5 -0.5,0 c -0.50001,-1.99999 -1.5,-4 -4.5,-4 l -4.92852,0 z" + id="text13209" + sodipodi:nodetypes="ccccccccccccccccccccccc" /> + </g> + <g + style="display:inline;enable-background:new" + id="g21625" + transform="translate(908,-154)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect21627" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(904,-154)" - id="g21625" - style="display:inline;enable-background:new"> - <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect21627" - width="48" - height="48" - x="108" - y="430" - rx="2.4004419" - ry="0" /> + id="g21629"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient21647);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path21631" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> <g - id="g21629"> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21631" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient21647);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> + style="display:inline;opacity:0.5;fill:#000000" + id="g16261" + transform="matrix(1.2499985,0,0,1,-87.6203,-147.85351)"> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect35099" + width="17.600004" + height="1" + x="167.69646" + y="598.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect35101" + width="17.600004" + height="1" + x="167.69646" + y="600.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15690" + width="17.600004" + height="1" + x="167.69646" + y="602.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15692" + width="17.600004" + height="1" + x="167.69646" + y="604.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15694" + width="17.600004" + height="1" + x="167.69646" + y="606.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15696" + width="17.600004" + height="1" + x="167.69646" + y="608.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15698" + width="17.600004" + height="1" + x="167.69646" + y="610.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15700" + width="17.600004" + height="1" + x="167.69646" + y="612.85352" + rx="0.12125195" + ry="0.065390877" /> + <rect + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="rect15732" + width="14.400002" + height="1" + x="167.69646" + y="614.85352" + rx="0.09920612" + ry="0.065390877" /> <g - transform="matrix(1.2499985,0,0,1,-87.6203,-147.85351)" - id="g16261" - style="opacity:0.5;fill:#000000;display:inline"> + transform="translate(150.89645,557.85352)" + id="g4849" + style="display:inline;fill:#000000"> <rect ry="0.065390877" rx="0.12125195" - y="598.85352" - x="167.69646" + y="29" + x="16.799992" height="1" width="17.600004" - id="rect35099" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + id="rect15736" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <rect ry="0.065390877" rx="0.12125195" - y="600.85352" - x="167.69646" + y="31" + x="16.799992" height="1" width="17.600004" - id="rect35101" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + id="rect15738" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <rect ry="0.065390877" rx="0.12125195" - y="602.85352" - x="167.69646" + y="33" + x="16.799992" height="1" width="17.600004" - id="rect15690" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + id="rect15740" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <rect ry="0.065390877" rx="0.12125195" - y="604.85352" - x="167.69646" + y="35" + x="16.799992" height="1" width="17.600004" - id="rect15692" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> + id="rect15742" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <rect ry="0.065390877" - rx="0.12125195" - y="606.85352" - x="167.69646" - height="1" - width="17.600004" - id="rect15694" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.12125195" - y="608.85352" - x="167.69646" - height="1" - width="17.600004" - id="rect15696" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.12125195" - y="610.85352" - x="167.69646" + rx="0.055114571" + y="37" + x="16.799992" height="1" - width="17.600004" - id="rect15698" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.12125195" - y="612.85352" - x="167.69646" - height="1" - width="17.600004" - id="rect15700" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <rect - ry="0.065390877" - rx="0.09920612" - y="614.85352" - x="167.69646" - height="1" - width="14.400002" - id="rect15732" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" /> - <g - style="fill:#000000;display:inline" - id="g4849" - transform="translate(150.89645,557.85352)"> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15736" - width="17.600004" - height="1" - x="16.799992" - y="29" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15738" - width="17.600004" - height="1" - x="16.799992" - y="31" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15740" - width="17.600004" - height="1" - x="16.799992" - y="33" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15742" - width="17.600004" - height="1" - x="16.799992" - y="35" - rx="0.12125195" - ry="0.065390877" /> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect15744" - width="8.0000095" - height="1" - x="16.799992" - y="37" - rx="0.055114571" - ry="0.065390877" /> - </g> - <rect - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate" - id="rect16334" - width="0.83333319" - height="0.99999124" - x="184.49646" - y="617.85352" - rx="0.0057410933" - ry="0.065390304" /> + width="8.0000095" + id="rect15744" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> </g> - <path - sodipodi:nodetypes="cccc" - id="path21633" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path21635" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path21637" - style="fill:none;stroke:url(#linearGradient21649);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21639" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path21641" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21643" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> + <rect + ry="0.065390304" + rx="0.0057410933" + y="617.85352" + x="184.49646" + height="0.99999124" + width="0.83333319" + id="rect16334" + style="display:block;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + </g> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21633" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21635" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient21649);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path21637" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path21639" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21641" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path21643" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <g + id="g35119" + transform="translate(2,-160.99999)" + style="display:inline"> <g style="display:inline" - transform="translate(2,-160.99999)" - id="g35119"> + transform="translate(105.39645,589.71201)" + id="g16097"> <g - id="g16097" - transform="translate(105.39645,589.71201)" - style="display:inline"> - <g - transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" - id="g16099"> - <radialGradient - gradientUnits="userSpaceOnUse" - fy="114.5684" - fx="20.892099" - r="5.256" - cy="114.5684" - cx="20.892099" - id="radialGradient16101"> - <stop - id="stop16103" - style="stop-color:#F0F0F0" - offset="0" /> - <stop - id="stop16105" - style="stop-color:#474747" - offset="1" /> - </radialGradient> - <radialGradient - gradientUnits="userSpaceOnUse" - fy="64.567902" - fx="20.892099" - r="5.257" - cy="64.567902" - cx="20.892099" - id="radialGradient16109"> - <stop - id="stop16111" - style="stop-color:#F0F0F0" - offset="0" /> - <stop - id="stop16113" - style="stop-color:#474747" - offset="1" /> - </radialGradient> - </g> - <path - id="path16107" - d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" - inkscape:connector-curvature="0" /> - <path - id="path16117" - d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" - style="fill:url(#radialGradient21565);fill-rule:nonzero;stroke:none" - inkscape:connector-curvature="0" /> + id="g16099" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" + transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)"> + <radialGradient + id="radialGradient16101" + cx="20.892099" + cy="114.5684" + r="5.256" + fx="20.892099" + fy="114.5684" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#F0F0F0" + id="stop16103" /> + <stop + offset="1" + style="stop-color:#474747" + id="stop16105" /> + </radialGradient> + <radialGradient + id="radialGradient16109" + cx="20.892099" + cy="64.567902" + r="5.257" + fx="20.892099" + fy="64.567902" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#F0F0F0" + id="stop16111" /> + <stop + offset="1" + style="stop-color:#474747" + id="stop16113" /> + </radialGradient> </g> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" + id="path16107" /> + <path + inkscape:connector-curvature="0" + style="fill:url(#radialGradient21565);fill-rule:nonzero;stroke:none" + d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" + id="path16117" /> + </g> + <g + id="g16131" + transform="translate(105.39645,579.71201)" + style="display:inline"> <g - style="display:inline" - transform="translate(105.39645,579.71201)" - id="g16131"> - <g - id="g16133" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" - transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)"> - <radialGradient - id="radialGradient16135" - cx="20.892099" - cy="114.5684" - r="5.256" - fx="20.892099" - fy="114.5684" - gradientUnits="userSpaceOnUse"> - <stop - offset="0" - style="stop-color:#F0F0F0" - id="stop16137" /> - <stop - offset="1" - style="stop-color:#474747" - id="stop16140" /> - </radialGradient> - <radialGradient - id="radialGradient16142" - cx="20.892099" - cy="64.567902" - r="5.257" - fx="20.892099" - fy="64.567902" - gradientUnits="userSpaceOnUse"> - <stop - offset="0" - style="stop-color:#F0F0F0" - id="stop16144" /> - <stop - offset="1" - style="stop-color:#474747" - id="stop16146" /> - </radialGradient> - </g> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" - d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" - id="path35139" - inkscape:connector-curvature="0" /> - <path - style="fill:url(#radialGradient21567);fill-rule:nonzero;stroke:none" - d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" - id="path35141" - inkscape:connector-curvature="0" /> + transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4" + id="g16133"> + <radialGradient + gradientUnits="userSpaceOnUse" + fy="114.5684" + fx="20.892099" + r="5.256" + cy="114.5684" + cx="20.892099" + id="radialGradient16135"> + <stop + id="stop16137" + style="stop-color:#F0F0F0" + offset="0" /> + <stop + id="stop16140" + style="stop-color:#474747" + offset="1" /> + </radialGradient> + <radialGradient + gradientUnits="userSpaceOnUse" + fy="64.567902" + fx="20.892099" + r="5.257" + cy="64.567902" + cx="20.892099" + id="radialGradient16142"> + <stop + id="stop16144" + style="stop-color:#F0F0F0" + offset="0" /> + <stop + id="stop16146" + style="stop-color:#474747" + offset="1" /> + </radialGradient> </g> + <path + inkscape:connector-curvature="0" + id="path35139" + d="m 12.85355,31.53813 c 0,0.552274 -0.447803,0.99986 -1,0.99986 -0.552477,0 -1,-0.447865 -1,-0.99986 0,-0.552554 0.447803,-1.00014 1,-1.00014 0.552197,0 1,0.447866 1,1.00014 l 0,0 0,0 0,0 z" + style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <path + inkscape:connector-curvature="0" + id="path35141" + d="m 12.60355,31.288131 c 0,0.552274 -0.447803,0.999859 -1,0.999859 -0.552477,0 -1,-0.447865 -1,-0.999859 0,-0.552556 0.447803,-1.000141 1,-1.000141 0.552197,0 1,0.447866 1,1.000141 z" + style="fill:url(#radialGradient21567);fill-rule:nonzero;stroke:none" /> </g> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21645" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> </g> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21645" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> </g> + </g> + <g + style="display:inline;enable-background:new" + id="g21572" + transform="translate(812,-202)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect21574" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" + id="g21576"> + <path + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient21594);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path21578" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21580" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21582" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient21596);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path21584" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path21586" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21588" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path21590" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21592" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> + </g> + <g + transform="translate(4,0)" + id="g30382"> + <g + id="g23655" + transform="translate(760,-154)"> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path23657" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + style="display:inline;fill:url(#linearGradient30368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path23659" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 115,444 12,0 -1,-11 -11,11 z" + id="path23661" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path23663" + style="fill:none;stroke:url(#linearGradient30370);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.5,443.75 9,-2.5 0,-6" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path23665" + sodipodi:nodetypes="cccccc" /> + <path + inkscape:connector-curvature="0" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" + d="m 116,443 11,1 -2,-10 -9,9 z" + id="path23667" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + clip-path="url(#clipPath13106)" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccccc" + id="path23669" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.5,435 0,38.5 -30.5,0" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path23671" + sodipodi:nodetypes="ccc" /> + </g> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + d="m 888,295 1,0 0,14 -1,0 0,-14 z" + id="path23675" + sodipodi:nodetypes="ccccc" /> + <path + inkscape:connector-curvature="0" + id="path23677" + d="m 900,294 1.00002,-1 0,14 -1.00002,0 0,-13 z" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" + id="path23679" + d="m 901.00003,292 0,2.25 -13.00002,2 0,-2.25 13.00002,-2 z" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + <g + id="g23681" + transform="matrix(1.1428564,0,0,1.2000001,822.71436,-355.40005)"> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" + id="path23683" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + style="display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;filter:url(#filter20578);enable-background:accumulate" + id="path23685" + transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" + inkscape:transform-center-y="0.3813435" + clip-path="url(#clipPath20586)" /> + </g> + <path + inkscape:connector-curvature="0" + style="display:inline;overflow:visible;visibility:visible;opacity:0.38999999;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + d="m 901.00003,292 -1e-5,1 -13.00002,2 10e-6,-1 13.00002,-2 z" + id="path23694" + sodipodi:nodetypes="ccccc" /> + <g + transform="matrix(1.1428564,0,0,1.2000001,834.71436,-357.40005)" + id="g23717"> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + style="display:inline;overflow:visible;visibility:visible;fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" + id="path23724" + transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" /> + <ellipse + ry="2.25" + rx="4.5" + cy="554" + cx="53" + clip-path="url(#clipPath20586)" + inkscape:transform-center-y="0.3813435" + transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" + id="path23726" + style="display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;filter:url(#filter20578);enable-background:accumulate" /> + </g> + </g> + <g + id="g23922" + transform="translate(-12,-220)" + style="display:inline;enable-background:new"> + <g + style="display:inline" + id="g23924" + transform="translate(824,66)" inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(808,-203)" - id="g21572" - style="display:inline;enable-background:new"> + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect21574" - width="48" - height="48" - x="108" - y="430" + ry="0" rx="2.4004419" - ry="0" /> + y="430" + x="108" + height="48" + width="48" + id="rect23926" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> <g - id="g21576"> + id="g23928"> <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21578" + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient23978);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient21594);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccc" - id="path21580" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + id="path23930" + sodipodi:nodetypes="cccccc" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> + inkscape:export-ydpi="90" /> <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path21582" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" + inkscape:connector-curvature="0" inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path21584" - style="fill:none;stroke:url(#linearGradient21596);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path23932" + sodipodi:nodetypes="cccc" /> <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106)" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21586" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path21588" sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> + id="path23934" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> <path + inkscape:connector-curvature="0" + clip-path="none" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient23980);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path23936" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" - id="path21590" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> + id="path23938" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106)" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21592" + sodipodi:nodetypes="cccc" + id="path23940" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path23942" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> + id="path23944" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> </g> </g> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" + id="path23946" + d="m 952,530 0,10 1,0 1,0 11,0 1,0 1,0 0,-10 -15,0 z m 1,2 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <rect + transform="scale(1,-1)" + style="fill:url(#linearGradient23982);fill-opacity:1;fill-rule:nonzero;stroke:none" + id="rect23948" + width="13" + height="5.5" + x="953" + y="-524" /> + <path + inkscape:connector-curvature="0" + id="path23952" + transform="translate(76,0)" + d="m 876,514 0,17 15,0 0,-17 -1,0 0,1 -1,0 0,-1 -11,0 0,1 -1,0 0,-1 -1,0 z m 1,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" + style="fill:url(#linearGradient23986);fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 952,507 3,0 0,3 9,0 0,-3 3,0 0,7 -15,0 0,-7 z m 1,0 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z m 12,-4 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z" + id="path23954" /> + <rect + transform="matrix(0,1,1,0,0,0)" + ry="0" + y="955" + x="507" + height="9" + width="3" + id="rect23956" + style="fill:url(#linearGradient23988);fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <rect + style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="rect23958" + width="9" + height="9" + x="512" + y="955" + ry="0" + transform="matrix(0,1,1,0,0,0)" /> + <rect + transform="matrix(0,1,1,0,0,0)" + ry="0" + y="955" + x="523" + height="9" + width="9" + id="rect23960" + style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" /> + <circle + r="8" + cy="118" + cx="132" + transform="matrix(0,-0.5624971,0.5624971,0,893.12531,590.74965)" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path23962" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <circle + r="8" + cy="118" + cx="132" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" + id="path23964" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(0,-0.5624964,0.5624964,0,893.12545,601.74956)" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccc" + id="path23966" + d="m 961.00001,519.00005 -3,0 0,-0.99992 0.99994,0 6e-5,-2.00008 -1,0 0,-1 1,0 0,-1 1.00006,0 0,4.00008 0.99994,0 0,0.99992 z" /> + <path + inkscape:connector-curvature="0" + d="m 958,525 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m -1,1 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" + id="path23968" /> + <rect + style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="rect23970" + width="6" + height="9" + x="534" + y="955" + ry="0" + transform="matrix(0,1,1,0,0,0)" /> + <g + clip-path="url(#clipPath23877)" + id="g23972"> + <circle + r="8" + cy="118" + cx="132" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" + id="path23974" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(0,-0.5624964,0.5624964,0,893.12545,612.74956)" /> + <path + inkscape:connector-curvature="0" + d="m 958,536 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,1 -2,0 0,1 2,0 0,-1 z" + id="path23976" /> + </g> + </g> + <g + transform="translate(212,88)" + id="g45475" + style="display:inline;enable-background:new"> <g - id="g30382"> + style="display:inline" + id="g22242" + transform="translate(696,-194)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect22244" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> <g - transform="translate(760,-154)" - id="g23655"> + id="g22246"> <path - style="fill:url(#linearGradient30368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient22274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - id="path23657" + id="path22249" sodipodi:nodetypes="cccccc" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> + inkscape:export-ydpi="90" /> <path + inkscape:connector-curvature="0" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path23659" - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" /> + id="path22251" + sodipodi:nodetypes="cccc" /> <path + inkscape:connector-curvature="0" clip-path="url(#clipPath13106)" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" sodipodi:nodetypes="cccc" - id="path23661" + id="path22253" d="m 115,444 12,0 -1,-11 -11,11 z" - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - inkscape:connector-curvature="0" /> + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> <path + inkscape:connector-curvature="0" clip-path="none" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" d="m 117.5,443.75 9,-2.5 0,-6" - style="fill:none;stroke:url(#linearGradient30370);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path23663" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> + style="fill:none;stroke:url(#linearGradient22276);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path22264" + sodipodi:nodetypes="ccc" /> <path + inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" - id="path23665" + id="path22266" style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> + inkscape:export-ydpi="90" /> <path + inkscape:connector-curvature="0" clip-path="url(#clipPath13106)" inkscape:export-ydpi="90" inkscape:export-xdpi="90" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" sodipodi:nodetypes="cccc" - id="path23667" + id="path22268" d="m 116,443 11,1 -2,-10 -9,9 z" - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - inkscape:connector-curvature="0" /> + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" /> <path + inkscape:connector-curvature="0" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - id="path23669" + id="path22270" sodipodi:nodetypes="cccccc" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> + inkscape:export-ydpi="90" /> <path + inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" - id="path23671" + id="path22272" style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" d="m 147.5,435 0,38.5 -30.5,0" inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - </g> - <path - sodipodi:nodetypes="ccccc" - id="path23675" - d="m 888,295 1,0 0,14 -1,0 0,-14 z" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccccc" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 900,294 1.00002,-1 0,14 -1.00002,0 0,-13 z" - id="path23677" - inkscape:connector-curvature="0" /> - <path - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 901.00003,292 0,2.25 -13.00002,2 0,-2.25 13.00002,-2 z" - id="path23679" - sodipodi:nodetypes="ccccc" - inkscape:connector-curvature="0" /> - <g - transform="matrix(1.1428564,0,0,1.2000001,822.71436,-355.40005)" - id="g23681"> - <path - sodipodi:type="arc" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path23683" - sodipodi:cx="53" - sodipodi:cy="554" - sodipodi:rx="4.5" - sodipodi:ry="2.25" - d="m 57.5,554 c 0,1.24264 -2.014719,2.25 -4.5,2.25 -2.485281,0 -4.5,-1.00736 -4.5,-2.25 0,-1.24264 2.014719,-2.25 4.5,-2.25 2.485281,0 4.5,1.00736 4.5,2.25 z" - transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" /> - <path - clip-path="url(#clipPath20586)" - inkscape:transform-center-y="0.3813435" - transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" - d="m 57.5,554 c 0,1.24264 -2.014719,2.25 -4.5,2.25 -2.485281,0 -4.5,-1.00736 -4.5,-2.25 0,-1.24264 2.014719,-2.25 4.5,-2.25 2.485281,0 4.5,1.00736 4.5,2.25 z" - sodipodi:ry="2.25" - sodipodi:rx="4.5" - sodipodi:cy="554" - sodipodi:cx="53" - id="path23685" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter20578);enable-background:accumulate" - sodipodi:type="arc" /> - </g> - <path - sodipodi:nodetypes="ccccc" - id="path23694" - d="m 901.00003,292 -1e-5,1 -13.00002,2 10e-6,-1 13.00002,-2 z" - style="opacity:0.38999999;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - inkscape:connector-curvature="0" /> - <g - id="g23717" - transform="matrix(1.1428564,0,0,1.2000001,834.71436,-357.40005)"> - <path - transform="matrix(0.7630859,-0.2494396,0.2996015,0.9926766,-151.92281,17.77746)" - d="m 57.5,554 c 0,1.24264 -2.014719,2.25 -4.5,2.25 -2.485281,0 -4.5,-1.00736 -4.5,-2.25 0,-1.24264 2.014719,-2.25 4.5,-2.25 2.485281,0 4.5,1.00736 4.5,2.25 z" - sodipodi:ry="2.25" - sodipodi:rx="4.5" - sodipodi:cy="554" - sodipodi:cx="53" - id="path23724" - style="fill:#112b00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter20578);enable-background:accumulate" - id="path23726" - sodipodi:cx="53" - sodipodi:cy="554" - sodipodi:rx="4.5" - sodipodi:ry="2.25" - d="m 57.5,554 c 0,1.24264 -2.014719,2.25 -4.5,2.25 -2.485281,0 -4.5,-1.00736 -4.5,-2.25 0,-1.24264 2.014719,-2.25 4.5,-2.25 2.485281,0 4.5,1.00736 4.5,2.25 z" - transform="matrix(0.3848865,-0.1700959,0.2278131,0.3626733,-93.107467,361.59408)" - inkscape:transform-center-y="0.3813435" - clip-path="url(#clipPath20586)" /> - </g> - </g> - <g - style="display:inline;enable-background:new" - transform="translate(-16,-220)" - id="g23922"> - <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(824,66)" - id="g23924" - style="display:inline"> - <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect23926" - width="48" - height="48" - x="108" - y="430" - rx="2.4004419" - ry="0" /> - <g - id="g23928"> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path23930" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient23978);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccc" - id="path23932" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path23934" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path23936" - style="fill:none;stroke:url(#linearGradient23980);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path23938" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path23940" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path23942" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path23944" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - </g> - </g> - <path - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 952,530 0,10 1,0 1,0 11,0 1,0 1,0 0,-10 -15,0 z m 1,2 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" - id="path23946" - sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" - inkscape:connector-curvature="0" /> - <rect - y="-524" - x="953" - height="5.5" - width="13" - id="rect23948" - style="fill:url(#linearGradient23982);fill-opacity:1;fill-rule:nonzero;stroke:none" - transform="scale(1,-1)" /> - <path - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 876,514 0,17 15,0 0,-17 -1,0 0,1 -1,0 0,-1 -11,0 0,1 -1,0 0,-1 -1,0 z m 1,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z m -12,3 1,0 0,1 -1,0 0,-1 z m 12,0 1,0 0,1 -1,0 0,-1 z" - transform="translate(76,0)" - id="path23952" - inkscape:connector-curvature="0" /> - <path - id="path23954" - d="m 952,507 3,0 0,3 9,0 0,-3 3,0 0,7 -15,0 0,-7 z m 1,0 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z m 12,-4 1,0 -1,0 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,3 0,1 1,0 0,-1 -1,0 z" - style="fill:url(#linearGradient23986);fill-opacity:1;fill-rule:nonzero;stroke:none" - sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" - inkscape:connector-curvature="0" /> - <rect - style="fill:url(#linearGradient23988);fill-opacity:1;fill-rule:nonzero;stroke:none" - id="rect23956" - width="3" - height="9" - x="507" - y="955" - ry="0" - transform="matrix(0,1,1,0,0,0)" /> - <rect - transform="matrix(0,1,1,0,0,0)" - ry="0" - y="955" - x="512" - height="9" - width="9" - id="rect23958" - style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" /> - <rect - style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="rect23960" - width="9" - height="9" - x="523" - y="955" - ry="0" - transform="matrix(0,1,1,0,0,0)" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" - d="m 140,118 c 0,4.41828 -3.58172,8 -8,8 -4.41828,0 -8,-3.58172 -8,-8 0,-4.41828 3.58172,-8 8,-8 4.41828,0 8,3.58172 8,8 z" - sodipodi:ry="8" - sodipodi:rx="8" - sodipodi:cy="118" - sodipodi:cx="132" - id="path23962" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - sodipodi:type="arc" - transform="matrix(0,-0.5624971,0.5624971,0,893.12531,590.74965)" /> - <path - transform="matrix(0,-0.5624964,0.5624964,0,893.12545,601.74956)" - sodipodi:type="arc" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path23964" - sodipodi:cx="132" - sodipodi:cy="118" - sodipodi:rx="8" - sodipodi:ry="8" - d="m 140,118 c 0,4.41828 -3.58172,8 -8,8 -4.41828,0 -8,-3.58172 -8,-8 0,-4.41828 3.58172,-8 8,-8 4.41828,0 8,3.58172 8,8 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <path - d="m 961.00001,519.00005 -3,0 0,-0.99992 0.99994,0 6e-5,-2.00008 -1,0 0,-1 1,0 0,-1 1.00006,0 0,4.00008 0.99994,0 0,0.99992 z" - id="path23966" - sodipodi:nodetypes="ccccccccccccc" - inkscape:connector-curvature="0" /> - <path - id="path23968" - d="m 958,525 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m -1,1 -1,0 0,1 0,1 3,0 0,-1 -2,0 0,-1 z" - inkscape:connector-curvature="0" /> - <rect - transform="matrix(0,1,1,0,0,0)" - ry="0" - y="955" - x="534" - height="9" - width="6" - id="rect23970" - style="fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none" /> - <g - id="g23972" - clip-path="url(#clipPath23877)"> - <path - transform="matrix(0,-0.5624964,0.5624964,0,893.12545,612.74956)" - sodipodi:type="arc" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path23974" - sodipodi:cx="132" - sodipodi:cy="118" - sodipodi:rx="8" - sodipodi:ry="8" - d="m 140,118 c 0,4.41828 -3.58172,8 -8,8 -4.41828,0 -8,-3.58172 -8,-8 0,-4.41828 3.58172,-8 8,-8 4.41828,0 8,3.58172 8,8 z" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\Kopia blender\.blender\icons\blender's iconset.png" - inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> - <path - id="path23976" - d="m 958,536 0,1 2,0 0,-1 -2,0 z m 2,1 0,1 1,0 0,-1 -1,0 z m 0,1 -1,0 0,1 1,0 0,-1 z m 0,1 0,1 1,0 0,-1 -1,0 z m 0,1 -2,0 0,1 2,0 0,-1 z" - inkscape:connector-curvature="0" /> </g> </g> <g - style="display:inline;enable-background:new" - id="g45475" - transform="translate(208,88)"> - <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(696,-194)" - id="g22242" - style="display:inline"> - <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect22244" - width="48" - height="48" - x="108" - y="430" - rx="2.4004419" - ry="0" /> - <g - id="g22246"> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path22249" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient22274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccc" - id="path22251" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path22253" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path22264" - style="fill:none;stroke:url(#linearGradient22276);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path22266" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path22268" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106)" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path22270" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path22272" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - </g> - </g> - <g - transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)" - inkscape:label="Layer 1" - id="g21517"> - <path - sodipodi:type="arc" - style="opacity:0.54857142;fill:url(#radialGradient21442);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path35486" - sodipodi:cx="28.019106" - sodipodi:cy="38.98439" - sodipodi:rx="15.467961" - sodipodi:ry="5.3033009" - d="m 43.487067,38.98439 c 0,2.928932 -6.925242,5.303301 -15.467961,5.303301 -8.542719,0 -15.467961,-2.374369 -15.467961,-5.303301 0,-2.928932 6.925242,-5.303301 15.467961,-5.303301 8.542719,0 15.467961,2.374369 15.467961,5.303301 z" - transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" /> - <path - style="fill:#f57900;fill-rule:evenodd;stroke:#aa4400;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" - id="path2482" - d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" - sodipodi:nodetypes="csssssssssscccsscccscccssccc" - inkscape:connector-curvature="0" /> - <path - sodipodi:type="arc" - style="fill:url(#linearGradient21444);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path39153" - sodipodi:cx="31.1875" - sodipodi:cy="25.75" - sodipodi:rx="11.5625" - sodipodi:ry="10.125" - d="m 42.75,25.75 c 0,5.591883 -5.176708,10.125 -11.5625,10.125 -6.385792,0 -11.5625,-4.533117 -11.5625,-10.125 0,-5.591883 5.176708,-10.125 11.5625,-10.125 6.385792,0 11.5625,4.533117 11.5625,10.125 z" - transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" /> - <path - sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" - id="path21414" - d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 z" - style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" - inkscape:connector-curvature="0" /> - <path - style="fill:#3465a4;fill-rule:evenodd;stroke:none" - id="path2478" - d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.51999996;fill:url(#radialGradient21448);fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 z" - id="path39166" - sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" - inkscape:connector-curvature="0" /> - </g> - </g> - <g - transform="translate(162,248)" - id="g24847" - style="opacity:0.5"> - <path - d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" - id="path24849" - style="fill:url(#linearGradient24867);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="ccccccssssccc" - inkscape:connector-curvature="0" /> + id="g21517" + inkscape:label="Layer 1" + transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)"> + <ellipse + ry="5.3033009" + rx="15.467961" + cy="38.98439" + cx="28.019106" + transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" + id="path35486" + style="display:inline;overflow:visible;visibility:visible;opacity:0.54857142;fill:url(#radialGradient21442);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <path - sodipodi:nodetypes="cccccccccccccccccccccccccccccc" - d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" - style="opacity:0.07999998;fill:url(#linearGradient24869);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24851" - inkscape:connector-curvature="0" /> - <path - style="fill:url(#linearGradient24871);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" - id="path24853" - sodipodi:nodetypes="csccsczc" - inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" - inkscape:export-xdpi="74.800003" - inkscape:export-ydpi="74.800003" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccssccc" - style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path24855" - d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 z" - inkscape:connector-curvature="0" /> - <path - id="path24857" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 840.5,89 0,4.5" - sodipodi:nodetypes="cc" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24859" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssssssssscccsscccscccssccc" + d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" + id="path2482" + style="fill:#f57900;fill-rule:evenodd;stroke:#aa4400;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" /> + <ellipse + ry="10.125" + rx="11.5625" + cy="25.75" + cx="31.1875" + transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" + id="path39153" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient21444);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> <path - id="path24861" - style="opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" - sodipodi:nodetypes="cccccccsc" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 Z" + id="path21414" + sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" /> <path - sodipodi:nodetypes="ccccsscccssssccc" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path24863" - d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" + id="path2478" + style="fill:#3465a4;fill-rule:evenodd;stroke:none" /> <path - sodipodi:nodetypes="csscc" - id="path24865" - d="m 841.5,94.5 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,18 c 0,2.25 -1.25,3 -2.5,3" - style="fill:none;stroke:url(#linearGradient24873);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" + id="path39166" + d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 Z" + style="opacity:0.51999996;fill:url(#radialGradient21448);fill-opacity:1;fill-rule:evenodd;stroke:none" /> </g> + </g> + <g + id="g6090"> <g id="g24784" - transform="translate(114,248)" + transform="translate(116,247.5)" style="opacity:0.5"> <path sodipodi:nodetypes="ccccccssssccc" - style="fill:url(#linearGradient24809);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24809);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" id="path24789" d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" inkscape:connector-curvature="0" /> <path id="path24791" - style="opacity:0.07999998;fill:url(#linearGradient24811);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:url(#linearGradient24811);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" sodipodi:nodetypes="cccccccccccccccccccccccccccccc" inkscape:connector-curvature="0" /> @@ -19586,10 +20130,10 @@ sodipodi:nodetypes="csccsczc" id="path24793" d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" - style="fill:url(#linearGradient24813);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24813);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <path - d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 z" + d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 Z" id="path24796" style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" sodipodi:nodetypes="ccssccc" @@ -19597,25 +20141,25 @@ <path sodipodi:nodetypes="cc" d="m 840.5,89 0,4.5" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" id="path24799" inkscape:connector-curvature="0" /> <path id="path24801" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="cccccccsc" d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" - style="opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" + style="display:inline;opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path24803" inkscape:connector-curvature="0" /> <path d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" id="path24805" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" sodipodi:nodetypes="ccccsscccssssccc" inkscape:connector-curvature="0" /> <path @@ -19626,33 +20170,16 @@ inkscape:connector-curvature="0" /> </g> <g - id="g44424" - style="opacity:0.4;stroke:#3d361a;filter:url(#filter44473)" - transform="translate(0,-2)"> - <path - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" - d="m 950.25,362 -5.25,0 -1,-1 0,-10" - id="path44406" - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" /> - <path - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new" - d="M 948.25,354.25 944,350.00563 939.75,354.25" - id="path44408" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - </g> - <g - style="display:inline;enable-background:new" + style="display:inline;filter:url(#filter6078);enable-background:new" id="g44334" - transform="translate(617,273)"> + transform="translate(619,272.5)"> <rect y="73" x="320" height="16" width="16" id="rect44336" - style="opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;enable-background:accumulate" /> <g id="g44338" transform="translate(0,-21)"> @@ -19662,13 +20189,13 @@ id="g44342" transform="translate(0,21)"> <path - style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 333.25,87 -5.25,0 -1,-1 0,-10" id="path44344" sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 331.25,79.25 327,75.005631 322.75,79.25" id="path44346" sodipodi:nodetypes="ccc" @@ -19681,13 +20208,13 @@ sodipodi:nodetypes="cccc" id="path44350" d="m 333.25,87 -5.25,0 -1,-1 0,-10" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="ccc" id="path44352" d="M 331.25,79.25 327,75.005631 322.75,79.25" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> </g> </g> @@ -19695,30 +20222,95 @@ sodipodi:nodetypes="cccccc" id="path44354" d="m 328.5,107.5 5,0 m -7,-9 0,8.5 m -4.25,-7 4.5,-4.5" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> </g> </g> + </g> + <g + transform="translate(68,247.5)" + id="g24818" + style="display:inline;enable-background:new"> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccssssccc" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24839);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" + id="path24821" + d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" /> + <path + inkscape:connector-curvature="0" + id="path24823" + style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:url(#linearGradient24841);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" + sodipodi:nodetypes="cccccccccccccccccccccccccccccc" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="74.800003" + inkscape:export-xdpi="74.800003" + inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" + sodipodi:nodetypes="csccsczc" + id="path24825" + d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-16 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,17 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24843);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 Z" + id="path24827" + style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + sodipodi:nodetypes="ccssccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + d="m 840.5,89 0,7.5" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24829" /> + <path + inkscape:connector-curvature="0" + id="path24831" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 848.5,98.75 0,14.75 c 0,1.25 0.25,3 -1.25,4" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccsc" + d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-16 34,0 m -29,-10 c 0,0.5 0.5286,1 1,1 l 20,0" + style="display:inline;opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path24833" /> + <path + inkscape:connector-curvature="0" + d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-16 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-8 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" + id="path24835" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + sodipodi:nodetypes="ccccsscccssssccc" /> + <path + inkscape:connector-curvature="0" + style="fill:none;stroke:url(#linearGradient24845);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 841.5,96.500004 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,15.999996 c 0,2.25 -1.25,3 -2.5,3" + id="path24837" + sodipodi:nodetypes="csscc" /> + </g> + <g + id="g6158"> <g - style="display:inline;enable-background:new" - id="g24818" - transform="translate(66,248)"> + transform="translate(164,247.5)" + id="g24847" + style="opacity:0.5"> <path d="m 806.5,114.5 c 0,2.25 2,4 4,4 l 30,0 c 0.4163,0 1,-0.5 1,-1 l 0,-29 c 0,-0.5 -0.5,-1 -1,-1 l -21.02773,0.04419 C 818.98721,87.545209 818.5,87 818.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 l 0,31 z" - id="path24821" - style="fill:url(#linearGradient24839);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="path24849" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24867);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" sodipodi:nodetypes="ccccccssssccc" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="cccccccccccccccccccccccccccccc" d="m 807.5,89.5 33,0 m -33,12 33,0 m -33,-4 33,0 m -33,-6 33,0 m -33,20 33,0 m -33,2 33,0 m -33,-18 33,0 m -33,-2 33,0 m -20,-6 -13,0 m 0,20 33,0 m -33,-2 33,0 m -33,-2 33,0 m -33,-4 33,0 m -33,10 33,0 m -33,6 33,0" - style="opacity:0.07999998;fill:url(#linearGradient24841);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24823" + style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:url(#linearGradient24869);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24851" inkscape:connector-curvature="0" /> <path - style="fill:url(#linearGradient24843);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-16 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,17 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" - id="path24825" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient24871);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" + d="m 844,118.5 c 3.5,0 5.5,-2 5.5,-5.5 l 0,-18.5 c -11.75604,-1.11e-4 -23.91623,0 -35.5,0 l 0,19.5 c 0,4.5 -7,4 -7,0.25 0,2 2.00002,3.73529 3,3.75 l 34,0.5 z" + id="path24853" sodipodi:nodetypes="csccsczc" inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/gnome-fs-directory.png" inkscape:export-xdpi="74.800003" @@ -19727,78 +20319,46 @@ <path sodipodi:nodetypes="ccssccc" style="opacity:0.7;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path24827" - d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 z" + id="path24855" + d="m 807,87 12,0 0.0385,-3.33333 C 819.04423,83.166705 818.97512,83 818.5,83 l -10.92308,0 c -0.47512,0 -0.53846,0.16667 -0.53846,0.66667 L 807,87 Z" inkscape:connector-curvature="0" /> <path - id="path24829" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - d="m 840.5,89 0,7.5" + id="path24857" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + d="m 840.5,89 0,4.5" sodipodi:nodetypes="cc" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="ccc" - d="m 848.5,98.75 0,14.75 c 0,1.25 0.25,3 -1.25,4" - style="opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" - id="path24831" + d="m 848.5,95.5 0,18 c 0,1.25 0.25,3 -1.25,4" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:none;stroke:#000000;stroke-width:1.00000024;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none" + id="path24859" inkscape:connector-curvature="0" /> <path - id="path24833" - style="opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-16 34,0 m -29,-10 c 0,0.5 0.5286,1 1,1 l 20,0" + id="path24861" + style="display:inline;opacity:0.75;fill:none;stroke:#ffffff;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 818.5,83.5 -11,0 0,30 c 0,5 7,5 7,0 l 0,-18 34,0 m -29,-8 c 0,0.5 0.5286,1 1,1 l 20,0" sodipodi:nodetypes="cccccccsc" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="ccccsscccssssccc" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path24835" - d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-16 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-8 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="path24863" + d="m 806.5,113.5 c 0,2.75 2,5 5,5 l 33,0 c 3,0 5,-2 5,-5 l 0,-18 c 0,-0.471405 -0.5286,-1 -1,-1 l -7,0 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -20.02773,0.04419 C 819.98721,87.54526 819.5,87 819.5,86.5 l 0,-3 c 0,-0.5 -0.5,-1 -1,-1 l -11,0 c -0.5,0 -1,0.5 -1,1 l 0,30 z" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="csscc" - id="path24837" - d="m 841.5,96.500004 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,15.999996 c 0,2.25 -1.25,3 -2.5,3" - style="fill:none;stroke:url(#linearGradient24845);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - inkscape:connector-curvature="0" /> - </g> - <g - id="g44455" - style="opacity:0.4;filter:url(#filter44477)"> - <path - sodipodi:nodetypes="cs" - id="path44446" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - transform="translate(645,252.05)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path44449" - d="m 343,108.25 0,-4.25 4.25,0" - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - transform="translate(645,252.05)" - inkscape:connector-curvature="0" /> - <path - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - id="path44451" - sodipodi:nodetypes="cs" - transform="matrix(-1,0,0,-1,1343,456.05)" - inkscape:connector-curvature="0" /> - <path - style="fill:none;stroke:#3d361a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 343,108.25 0,-4.25 4.25,0" - id="path44453" - sodipodi:nodetypes="ccc" - transform="matrix(-1,0,0,-1,1343,456.05)" + id="path24865" + d="m 841.5,94.5 -27,0 c -0.4714,0 -1,0.528595 -1,1 l 0,18 c 0,2.25 -1.25,3 -2.5,3" + style="fill:none;stroke:url(#linearGradient24873);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" inkscape:connector-curvature="0" /> </g> <g - style="display:inline;enable-background:new" + style="display:inline;filter:url(#filter6146);enable-background:new" id="g44356" - transform="translate(645,273.05)"> + transform="translate(647,272.55)"> <rect - style="opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;marker:none;enable-background:accumulate" id="rect44358" width="16" height="16" @@ -19812,13 +20372,13 @@ <g id="g44364"> <path - style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" id="path44366" sodipodi:nodetypes="cs" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 343,108.25 0,-4.25 4.25,0" id="path44368" sodipodi:nodetypes="ccc" @@ -19830,17 +20390,17 @@ sodipodi:nodetypes="ccc" id="path44372" d="m 343,108.25 0,-4.25 4.25,0" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="cs" id="path44374" d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> </g> <path - style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" d="m 344,105 0,1 0,1.5 1,0 0,-1.5 1.5,0 0,-1 -1.5,0 -1,0 z" id="path44376" inkscape:connector-curvature="0" /> @@ -19854,25 +20414,25 @@ sodipodi:nodetypes="cs" id="path44382" d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" - style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="ccc" id="path44384" d="m 343,108.25 0,-4.25 4.25,0" - style="fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> </g> <g id="g44386"> <path - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 343,108.25 0,-4.25 4.25,0" id="path44388" sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" /> <path - style="fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e6e6e6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 343.5,104.5 1.75,1.75 c 2.3454,2.33848 6.16153,2.34539 8.5,0 l 0.5,-0.5" id="path44390" sodipodi:nodetypes="cs" @@ -19881,409 +20441,394 @@ <path id="path44392" d="m 344,105 0,1 0,1.5 1,0 0,-1.5 1.5,0 0,-1 -1.5,0 -1,0 z" - style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="ccc" id="path44394" d="m 344.90625,106.59375 c 2.52573,2.51828 6.66805,2.52691 9.1875,0 l 0.5,-0.5" - style="fill:none;stroke:url(#linearGradient44402);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient44402);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> </g> <path sodipodi:nodetypes="ccc" id="path44396" d="m 350.5,99.5 4,0 0,-4" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="cccc" id="path44398" d="m 347.5,103.5 -4.5,0 c -0.25,0 -0.5,0.25 -0.5,0.5 l 0,4.5" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="ccc" id="path44400" d="m 345.59375,105.90625 c 2.07803,2.0719 5.36384,2.10325 7.53125,0.1875 L 354,105.25" - style="fill:none;stroke:url(#linearGradient44404);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient44404);stroke-width:1.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" /> </g> </g> + </g> + <g + transform="translate(4,0)" + id="g34977" + style="display:inline;enable-background:new"> <g - style="display:inline;enable-background:new" - id="g34977"> - <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(856,-154)" - id="g21853-3" - style="display:inline"> - <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect21855-8" - width="48" - height="48" - x="108" - y="430" - rx="2.4004419" - ry="0" /> - <g - id="g21857-6"> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21859-9" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient21875-7-1-0-1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccc" - id="path21861-8" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-6-7-0-8)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path21863-6" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106-9-2-9-9)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path21865-6" - style="fill:none;stroke:url(#linearGradient21877-3-2-7-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21867-2" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011-6-7-0-8)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path21869-3" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106-9-2-9-9)" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path21871-8" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path21873-2" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - </g> - </g> + style="display:inline" + id="g21853-3" + transform="translate(856,-154)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect21855-8" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> <g - transform="translate(63,-47)" - id="g34938"> + id="g21857-6"> <path - sodipodi:nodetypes="cssssccsscsccsc" inkscape:connector-curvature="0" - d="m 919.5,356.5067 0,-3 c 0,-1.73575 1.26424,-3 3,-3 l 5,0 c 1.73576,0 3,-1.26425 3,-3 l 0,-3.0064 2.5,0.006 c 2,0 3.5,2.5 3.5,6 0,3.5 -1.25,6 -3.5,6 -4.98134,0 -12.77318,0 -2.5,0 l 0,2.75 c 0,2.5 -2,3.24997 -5.5,3.24998 l 0,2e-5 c -3.5,0.0104 -5.5,-0.75 -5.5,-3.25 l 0,-2.7628" - style="color:#000000;fill:url(#linearGradient34959-9-2-1);fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.17893334;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path61236" /> + style="display:inline;fill:url(#linearGradient21875-7-1-0-1);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path21859-9" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> <path - id="path61233" - style="color:#000000;fill:url(#linearGradient34961-3-6-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.17893334;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3.0064 -2.5,-0.006 c -2,0 -3.5,-2.5 -3.5,-6 0,-3.5 1.25,-6 3.5,-6 4.98134,0 12.77318,0 2.5,0 l 0,-2.75 c 0,-2.5 2,-3.24997 5.5,-3.24998 l 0,-2e-5 c 3.5,-0.0104 5.5,0.75 5.5,3.25 l 0,2.7628" inkscape:connector-curvature="0" - sodipodi:nodetypes="cssssccsscsccsc" /> + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path21861-8" + sodipodi:nodetypes="cccc" /> <path - style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-opacity:0.8627451;stroke-dasharray:none" - d="m 925,338.50002 c -3.5,10e-6 -5.5,0.74998 -5.5,3.24998 l 0,2.75 5.5,0 -8,0 c -2.25,0 -3.5,2.5 -3.5,6 0,3.5 1.5,6 3.5,6 l 2.5,0.0128 0,2.9872 c 0,2 2,3.01281 5.5,3.0128 3.5,-1e-5 5.5,-1.0128 5.5,-3.0128 l 0,-3 -5.5,0 8,0 c 2,0 3.5,-2.5 3.5,-6 0,-3.5 -1.5,-6 -3.5,-6 l -2.5,0.0128 0,-2.7628 c 0,-2.5 -2,-3.26045 -5.5,-3.25 z" - id="path61167" - sodipodi:nodetypes="cccccscccsccccsccccc" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-9-2-9-9)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21863-6" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-6-7-0-8)" /> <path - style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3" - id="path61169" + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient21877-3-2-7-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path21865-6" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> + id="path21867-2" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-9-2-9-9)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path21869-3" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-6-7-0-8)" /> <path - sodipodi:type="arc" - style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path61220" - sodipodi:cx="922" - sodipodi:cy="342" - sodipodi:rx="1" - sodipodi:ry="1" - d="m 923,342 c 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 0.55228,0 1,0.44772 1,1 z" /> + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path21871-8" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> <path - sodipodi:type="arc" - style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path61222" - sodipodi:cx="928" - sodipodi:cy="359" - sodipodi:rx="1" - sodipodi:ry="1" - d="m 929,359 c 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 0.55228,0 1,0.44772 1,1 z" /> - <g - id="g61345" - style="opacity:0.4"> - <path - sodipodi:nodetypes="cszsc" - inkscape:connector-curvature="0" - id="path61333" - d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" - style="fill:none;stroke:url(#linearGradient34963-5-9-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccszsc" - inkscape:connector-curvature="0" - id="path61335" - d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5 0,3 1.28917,5 2.5,5 l 1.5,0" - style="fill:none;stroke:url(#linearGradient34965-1-5-2);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path61337" - d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" - style="fill:none;stroke:none" /> - <path - sodipodi:nodetypes="cssssc" - inkscape:connector-curvature="0" - id="path61339" - d="m 918.5,355.25 0,-1.75 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" - style="fill:none;stroke:none" /> - <path - d="m 923,342 c 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 0.55228,0 1,0.44772 1,1 z" - sodipodi:ry="1" - sodipodi:rx="1" - sodipodi:cy="342" - sodipodi:cx="922" - id="path61355" - style="color:#000000;fill:none;stroke:url(#linearGradient34967-4-1-8);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" - transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" /> - </g> - <g - id="g34104" - transform="matrix(-1,0,0,-1,1850,701)" - style="opacity:0.8;stroke:#ff0000"> - <path - style="fill:none;stroke:none" - d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" - id="path34106" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cszsc" /> - <path - style="fill:none;stroke:url(#linearGradient34969-4-4-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 914.5,350.5 c 0,3 1.28917,5 2.5,5 l 1.5,0" - id="path34108" - inkscape:connector-curvature="0" - sodipodi:nodetypes="csc" /> - <path - style="fill:none;stroke:url(#linearGradient34971-5-0-9);stroke-linecap:round;stroke-linejoin:round" - d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" - id="path34110" - inkscape:connector-curvature="0" /> - <path - style="fill:none;stroke:url(#radialGradient34973-2-5-7);stroke-linecap:round;stroke-linejoin:round" - d="m 918.5,355.5 0,-2 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" - id="path34113" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cssssc" /> - <path - transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" - sodipodi:type="arc" - style="color:#000000;fill:none;stroke:url(#linearGradient34975-9-4-9);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path34115" - sodipodi:cx="922" - sodipodi:cy="342" - sodipodi:rx="1" - sodipodi:ry="1" - d="m 923,342 c 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 0.55228,0 1,0.44772 1,1 z" /> - <path - sodipodi:nodetypes="cccsc" - inkscape:connector-curvature="0" - id="path34901" - d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5" - style="fill:none;stroke:none" /> - </g> + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path21873-2" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> </g> </g> <g - style="display:inline;enable-background:new" - id="g45475-4" - transform="translate(208,-9)"> + id="g34938" + transform="translate(63,-47)"> + <path + id="path61236" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient34959-9-2-1);fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.17893334;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 919.5,356.5067 0,-3 c 0,-1.73575 1.26424,-3 3,-3 l 5,0 c 1.73576,0 3,-1.26425 3,-3 l 0,-3.0064 2.5,0.006 c 2,0 3.5,2.5 3.5,6 0,3.5 -1.25,6 -3.5,6 -4.98134,0 -12.77318,0 -2.5,0 l 0,2.75 c 0,2.5 -2,3.24997 -5.5,3.24998 l 0,2e-5 c -3.5,0.0104 -5.5,-0.75 -5.5,-3.25 l 0,-2.7628" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssccsscsccsc" /> + <path + sodipodi:nodetypes="cssssccsscsccsc" + inkscape:connector-curvature="0" + d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3.0064 -2.5,-0.006 c -2,0 -3.5,-2.5 -3.5,-6 0,-3.5 1.25,-6 3.5,-6 4.98134,0 12.77318,0 2.5,0 l 0,-2.75 c 0,-2.5 2,-3.24997 5.5,-3.24998 l 0,-2e-5 c 3.5,-0.0104 5.5,0.75 5.5,3.25 l 0,2.7628" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient34961-3-6-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.17893334;marker:none;enable-background:accumulate" + id="path61233" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccscccsccccsccccc" + id="path61167" + d="m 925,338.50002 c -3.5,10e-6 -5.5,0.74998 -5.5,3.24998 l 0,2.75 5.5,0 -8,0 c -2.25,0 -3.5,2.5 -3.5,6 0,3.5 1.5,6 3.5,6 l 2.5,0.0128 0,2.9872 c 0,2 2,3.01281 5.5,3.0128 3.5,-1e-5 5.5,-1.0128 5.5,-3.0128 l 0,-3 -5.5,0 8,0 c 2,0 3.5,-2.5 3.5,-6 0,-3.5 -1.5,-6 -3.5,-6 l -2.5,0.0128 0,-2.7628 c 0,-2.5 -2,-3.26045 -5.5,-3.25 z" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.8627451" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path61169" + d="m 930.5,344.5 0,3 c 0,1.73575 -1.26424,3 -3,3 l -5,0 c -1.73576,0 -3,1.26425 -3,3 l 0,3" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.78431373;marker:none;enable-background:accumulate" /> + <circle + r="1" + cy="342" + cx="922" + id="path61220" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate" /> + <circle + r="1" + cy="359" + cx="928" + id="path61222" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate" /> <g - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" - transform="translate(696,-194)" - id="g22242-6" - style="display:inline"> - <rect - style="opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="rect22244-9" - width="48" - height="48" - x="108" - y="430" - rx="2.4004419" - ry="0" /> - <g - id="g22246-2"> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path22249-8" - d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" - style="fill:url(#linearGradient22274-8);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccc" - id="path22251-9" - style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-5)" - d="m 115,444 12,0 -1,-11 -11,11 z" - id="path22253-5" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106-5)" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="ccc" - id="path22264-3" - style="fill:none;stroke:url(#linearGradient22276-5);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - d="m 117.5,443.75 9,-2.5 0,-6" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" - style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path22266-6" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" /> - <path - style="opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline;filter:url(#filter63011-5)" - d="m 116,443 11,1 -2,-10 -9,9 z" - id="path22268-0" - sodipodi:nodetypes="cccc" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - clip-path="url(#clipPath13106-5)" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - sodipodi:nodetypes="cccccc" - id="path22270-1" - d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - inkscape:connector-curvature="0" /> - <path - inkscape:export-ydpi="90" - inkscape:export-xdpi="90" - inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" - d="m 147.5,435 0,38.5 -30.5,0" - style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="path22272-3" - sodipodi:nodetypes="ccc" - inkscape:connector-curvature="0" /> - </g> + style="opacity:0.4" + id="g61345"> + <path + style="fill:none;stroke:url(#linearGradient34963-5-9-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" + d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" + id="path61333" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cszsc" /> + <path + style="fill:none;stroke:url(#linearGradient34965-1-5-2);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5 0,3 1.28917,5 2.5,5 l 1.5,0" + id="path61335" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccszsc" /> + <path + style="fill:none;stroke:none" + d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" + id="path61337" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:none" + d="m 918.5,355.25 0,-1.75 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" + id="path61339" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssssc" /> + <circle + r="1" + cy="342" + cx="922" + transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient34967-4-1-8);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate" + id="path61355" /> </g> <g - transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)" - inkscape:label="Layer 1" - id="g21517-6"> + style="opacity:0.8;stroke:#ff0000" + transform="matrix(-1,0,0,-1,1850,701)" + id="g34104"> <path - sodipodi:type="arc" - style="opacity:0.54857142;fill:url(#radialGradient21442-6-790);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path35486-4" - sodipodi:cx="28.019106" - sodipodi:cy="38.98439" - sodipodi:rx="15.467961" - sodipodi:ry="5.3033009" - d="m 43.487067,38.98439 c 0,2.928932 -6.925242,5.303301 -15.467961,5.303301 -8.542719,0 -15.467961,-2.374369 -15.467961,-5.303301 0,-2.928932 6.925242,-5.303301 15.467961,-5.303301 8.542719,0 15.467961,2.374369 15.467961,5.303301 z" - transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" /> + sodipodi:nodetypes="cszsc" + inkscape:connector-curvature="0" + id="path34106" + d="m 920.5,343.25 0,-1.5 c 0,-1.75 1.5,-2.25 4.5,-2.25 3,0 4.5,0.5 4.5,2.25 l 0,4.75" + style="fill:none;stroke:none" /> <path - style="fill:#dd6d00;fill-rule:evenodd;stroke:#993d00;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" - id="path2482-9" - d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" - sodipodi:nodetypes="csssssssssscccsscccscccssccc" - inkscape:connector-curvature="0" /> + sodipodi:nodetypes="csc" + inkscape:connector-curvature="0" + id="path34108" + d="m 914.5,350.5 c 0,3 1.28917,5 2.5,5 l 1.5,0" + style="fill:none;stroke:url(#linearGradient34969-4-4-1);stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" /> <path - sodipodi:type="arc" - style="fill:url(#linearGradient21444-0-352);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path39153-3" - sodipodi:cx="31.1875" - sodipodi:cy="25.75" - sodipodi:rx="11.5625" - sodipodi:ry="10.125" - d="m 42.75,25.75 c 0,5.591883 -5.176708,10.125 -11.5625,10.125 -6.385792,0 -11.5625,-4.533117 -11.5625,-10.125 0,-5.591883 5.176708,-10.125 11.5625,-10.125 6.385792,0 11.5625,4.533117 11.5625,10.125 z" - transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" /> + inkscape:connector-curvature="0" + id="path34110" + d="m 920.75,343.5 4.5,0 0.25,0.25 0,0.5" + style="fill:none;stroke:url(#linearGradient34971-5-0-9);stroke-linecap:round;stroke-linejoin:round" /> <path - sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" - id="path21414-5" - d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 z" - style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446-3-145);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" - inkscape:connector-curvature="0" /> + sodipodi:nodetypes="cssssc" + inkscape:connector-curvature="0" + id="path34113" + d="m 918.5,355.5 0,-2 c 0,-2.25 1.75,-4 4,-4 l 4.5,0 c 1.75,0 2.5,-0.75 2.5,-2.5 l 0,-0.5" + style="fill:none;stroke:url(#radialGradient34973-2-5-7);stroke-linecap:round;stroke-linejoin:round" /> + <circle + r="1" + cy="342" + cx="922" + id="path34115" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient34975-9-4-9);stroke-width:0.52766895;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate" + transform="matrix(1.5161021,0,0,1.5161021,-475.84616,-176.50693)" /> <path - style="fill:#2f5b94;fill-rule:evenodd;stroke:none" - id="path2478-8" - d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" - inkscape:connector-curvature="0" /> + style="fill:none;stroke:none" + d="m 925.5,345 0,0.25 -0.25,0.25 -8.25,0 c -1.5,0 -2.5,2 -2.5,5" + id="path34901" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccsc" /> + </g> + </g> + </g> + <g + transform="translate(212,-8)" + id="g45475-4" + style="display:inline;enable-background:new"> + <g + style="display:inline" + id="g22242-6" + transform="translate(696,-194)" + inkscape:export-filename="C:\Documents and Settings\Pracowniaa\Moje dokumenty\Moje obrazy\BLENDER ICONS redesign\ver 2\IMAGE BROWSER ICONS.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <rect + ry="0" + rx="2.4004419" + y="430" + x="108" + height="48" + width="48" + id="rect22244-9" + style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;enable-background:accumulate" /> + <g + id="g22246-2"> <path - style="opacity:0.51999996;fill:url(#radialGradient21448-8-143);fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 z" - id="path39166-5" - sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" - inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + style="display:inline;fill:url(#linearGradient22274-8);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" + d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z" + id="path22249-8" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 147.25,434.5 c -4.875,0 -21.75,0 -21.75,0 m -8.9447,8.5 -0.0553,30" + style="opacity:0.7;fill:none;stroke:#ffffff;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + id="path22251-9" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-5)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path22253-5" + d="m 115,444 12,0 -1,-11 -11,11 z" + style="opacity:0.2;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-5)" /> + <path + inkscape:connector-curvature="0" + clip-path="none" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + d="m 117.5,443.75 9,-2.5 0,-6" + style="fill:none;stroke:url(#linearGradient22276-5);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path22264-3" + sodipodi:nodetypes="ccc" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + id="path22266-6" + style="fill:none;stroke:#333333;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 115.5,442.75 0,31.75 33,0 0,-41 -23.75,0 -9.25,9.25 z" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + clip-path="url(#clipPath13106-5)" + inkscape:export-ydpi="90" + inkscape:export-xdpi="90" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + sodipodi:nodetypes="cccc" + id="path22268-0" + d="m 116,443 11,1 -2,-10 -9,9 z" + style="display:inline;opacity:0.16000001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter63011-5)" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 116,443 0.0108,0.72434 L 126,441 l 0,-7 -1,0 -9,9 z" + id="path22270-1" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + id="path22272-3" + style="opacity:0.15;fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 147.5,435 0,38.5 -30.5,0" + inkscape:export-filename="C:\Documents and Settings\Tata\Pulpit\BLENDER ICONSET\Kopia blender\.blender\icons\jendrzych's iconset.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> </g> </g> + <g + id="g21517-6" + inkscape:label="Layer 1" + transform="matrix(0.5406242,0,0,0.5829534,814.13667,247.65542)"> + <ellipse + ry="5.3033009" + rx="15.467961" + cy="38.98439" + cx="28.019106" + transform="matrix(1.274286,0,0,1.377124,-7.569123,-16.70193)" + id="path35486-4" + style="display:inline;overflow:visible;visibility:visible;opacity:0.54857142;fill:url(#radialGradient21442-6-790);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssssssssscccsscccscccssccc" + d="m 16.048489,28.093447 c 0.0098,0.576682 0.196474,1.697902 0.471116,2.577425 0.581566,1.854137 1.56684,3.572658 2.939126,5.086496 1.407488,1.553118 3.138519,2.803227 5.139315,3.68976 2.105357,0.931573 4.384795,1.407488 6.750134,1.403741 2.365339,-0.005 4.644601,-0.488686 6.74896,-1.427017 2.00002,-0.895288 3.731043,-2.148391 5.13754,-3.705517 1.369207,-1.519844 2.352576,-3.241114 2.934089,-5.096258 0.294262,-0.938353 0.476921,-1.889392 0.553238,-2.845308 0.07331,-0.939306 0.04204,-1.883511 -0.09183,-2.823792 -0.259981,-1.835599 -0.896294,-3.556847 -1.872652,-5.12758 -0.895541,-1.441699 -2.047808,-2.70454 -3.417268,-3.766975 0,0 0.002,-0.002 0.002,-0.002 0,0 -13.828458,-10.6197195 -13.828458,-10.6197195 -0.01176,-0.00978 -0.02252,-0.019551 -0.03529,-0.028344 -0.909003,-0.6959264 -3.879837,-0.7738945 -4.87679,-0.075035 -1.01067,0.7057021 -1.091821,1.8092613 -0.195527,2.5482146 1.899775,1.4997633 2.656207,2.2801589 4.566507,3.7797379 0,0 -14.852491,0.167033 -14.852491,0.167033 -1.994685,0 -3.1682609,0.947915 -3.4153947,2.333683 -0.2180771,1.222836 0.7479213,2.738129 2.4800217,2.738129 2.956573,0.0039 5.942111,-0.0069 8.909215,-0.01272 0,0 -16.01999,12.453223 -16.01999,12.453223 -0.020527,0.01564 -0.041053,0.02933 -0.06158,0.04497 -1.4974197,1.148389 -1.9831951,3.059322 -1.0399808,4.268393 0.9598323,1.22959 2.9977653,1.230588 4.5147288,0.006 0,0 8.677593,-7.102098 8.677593,-7.102098 0,0 -0.12511,0.959824 -0.116333,1.535532 l 1e-6,2.6e-5 0,0 0,0 z" + id="path2482-9" + style="fill:#dd6d00;fill-rule:evenodd;stroke:#993d00;stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" /> + <ellipse + ry="10.125" + rx="11.5625" + cy="25.75" + cx="31.1875" + transform="matrix(0.8018194,0,0,0.8471126,6.257567,4.5089892)" + id="path39153-3" + style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient21444-0-352);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + style="opacity:0.4857143;fill:none;stroke:url(#linearGradient21446-3-145);stroke-width:1.7812928;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + d="m 25.8125,6.40625 c -0.334829,4.572e-4 -0.72202,0.089606 -0.90625,0.21875 4.5e-4,0.010412 4.5e-4,0.020838 0,0.03125 -0.212626,0.1484635 -0.188235,0.1956271 -0.1875,0.1875 0.0092,0.010621 -0.0072,-4.246e-4 0.03125,0.03125 0.01962,0.00828 0.03527,0.012546 0.0625,0.03125 0.01676,0.01151 0.01357,0.014555 0.03125,0.03125 0.193748,0.1576058 4.954976,4.005164 4.954976,4.005164 0.489837,0.39864 0.677395,1.066352 0.46875,1.65625 -0.115662,0.32703 -0.422813,0.541217 -0.6875,0.59375 -0.264687,0.05253 -0.498447,0.03054 -0.71875,0.03125 -5.639658,0.05119 -16.87989,0.03851 -16.87989,0.03851 -0.4102,2.75e-4 -0.935835,0.115997 -1.34375,0.34375 -0.407915,0.227753 -0.6637862,0.523861 -0.6875002,0.90625 -0.024417,0.393728 0.098829,0.605767 0.3437502,0.78125 0.244921,0.175483 0.614978,0.25 0.875,0.25 0,0 8.8125,0 8.8125,0 0.600305,-7.28e-4 1.223895,0.311058 1.4375,0.9375 0.04676,0.137121 0.06335,0.269976 0.0625,0.40625 -8.49e-4,0.136274 -0.02214,0.268794 -0.09375,0.375 -0.143211,0.212412 -0.319507,0.298568 -0.5,0.4375 0,0 -15.7871819,12.746851 -15.856336,12.800078 C 5.0310984,30.500117 5,30.53125 5,30.53125 5.0100745,30.519077 5.000335,30.499512 5,30.5 L 4.8125,30.3125 c 0.012336,0.02165 0.014481,0.03307 0.03125,0.0625 0.063558,0.0774 0.125,0.15625 0.125,0.15625 -0.00585,0.0056 -0.031233,0.03124 -0.03125,0.03125 0,0 -0.043442,-0.09921 -0.09375,-0.1875 0.037843,0.09884 0.06253,0.218739 0.0625,0.21875 -0.4662091,0.37119 -0.7783348,0.889746 -0.875,1.28125 -0.1043319,0.422581 -0.046,0.62455 0.125,0.84375 0.2999827,0.384295 1.3975356,0.595547 2.40625,-0.21875 0,0 8.65625,-7.09375 8.65625,-7.09375 0.473718,-0.387074 1.1446,-0.458625 1.6875,-0.15625 0.544608,0.303331 0.798054,0.927572 0.71875,1.53125 0,0 -0.0626,0.908319 -0.0625,1.25 2e-6,0.0085 -1.19e-4,0.02348 0,0.03125 0.192796,2.523718 1.400736,4.762818 3.03125,6.71875 2.801818,3.089095 6.627659,4.401619 10.75,4.5625 4.113324,-0.043 7.964529,-1.606111 10.75,-4.625 2.546631,-3.125326 3.513872,-6.363859 3.15625,-9.375 C 44.891575,22.325847 43.222923,19.516566 40.4375,17.25 35.951885,13.599946 31.206991,10.168434 26.59375,6.625 26.57515,6.610386 26.56455,6.59802 26.5625,6.59375 26.43835,6.498703 26.144223,6.4057899 25.8125,6.40625 Z" + id="path21414-5" + sodipodi:nodetypes="csssssscssscsssccssscscccsccssssccscsscccssssc" /> + <path + inkscape:connector-curvature="0" + d="m 25.708956,26.064593 c 0.07649,-1.397943 0.759369,-2.631914 1.78592,-3.505519 1.010226,-0.858782 2.366788,-1.383145 3.848625,-1.383145 1.480894,0 2.837456,0.524363 3.847446,1.383145 1.027685,0.873605 1.709741,2.106651 1.787122,3.504594 0.07927,1.438713 -0.49591,2.77459 -1.504012,3.764001 -1.027686,1.007933 -2.493008,1.640678 -4.130556,1.640678 -1.63849,0 -3.103814,-0.632745 -4.131451,-1.640678 -1.00914,-0.989411 -1.58234,-2.325288 -1.503094,-3.763076 l 0,0 0,0 0,0 z" + id="path2478-8" + style="fill:#2f5b94;fill-rule:evenodd;stroke:none" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="csssscsccsscsccssssscsscccsssc" + id="path39166-5" + d="m 25.8125,6.03125 c -0.404852,5.53e-4 -2.204797,-0.059029 -2.48145,0.1349032 -0.280209,0.195652 -0.335403,0.376484 -0.34375,0.46875 -0.0083,0.092266 -0.01539,0.17648 0.1875,0.34375 0.01899,0.015735 0.04457,0.014317 0.0625,0.03125 0.124258,0.101028 4.748869,4.1248618 4.748869,4.1248618 0.373658,0.304091 0.504393,0.795817 0.34375,1.25 -0.160635,0.454191 -0.580748,0.373449 -1.0625,0.375 -5.634142,0.05114 -15.087371,-0.129601 -15.087371,-0.129601 -0.952967,6.38e-4 -2.339958,0.524782 -2.4062504,1.59375 -0.063562,1.024947 0.9247974,1.4375 1.5937504,1.4375 0,-1e-6 8.8125,0 8.8125,0 0.488364,-5.92e-4 0.936141,0.225277 1.09375,0.6875 0.157609,0.462231 -0.01926,0.514621 -0.40625,0.8125 0,0 -16.086298,13.088586 -16.086298,13.088586 -0.00142,0.0014 -0.029829,-0.0014 -0.03125,0 -0.064037,0.04879 -0.054226,0.04875 -0.03125,0.03125 -0.5536758,0.424619 -0.9087886,1.004019 -1.03125,1.5 -0.1224536,0.495981 -0.04661,0.856152 0.1875,1.15625 0.4788333,0.613413 1.777612,0.754857 2.90625,-0.15625 1e-7,10e-7 8.65625,-7.09375 8.65625,-7.09375 0.361955,-0.295753 0.872897,-0.352437 1.28125,-0.125 0.408345,0.227436 0.623381,0.692814 0.5625,1.15625 0,-1e-6 -0.0997,0.953636 -0.09375,1.34375 0.09498,1.301756 0.451616,2.521825 0.989039,3.664234 C 20.799917,36.321089 27.770982,19.392853 44.1875,21.03125 43.339652,19.54368 42.151282,18.185293 40.65625,16.96875 36.159865,13.309932 31.42016,9.882897 26.8125,6.34375 26.805335,6.338858 26.788292,6.317553 26.78125,6.3125 26.570707,6.151312 26.216591,6.030689 25.8125,6.03125 Z" + style="opacity:0.51999996;fill:url(#radialGradient21448-8-143);fill-opacity:1;fill-rule:evenodd;stroke:none" /> + </g> </g> <g transform="translate(0,12)" @@ -20293,7 +20838,7 @@ <path sodipodi:nodetypes="cc" id="path34332" - style="fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" d="" inkscape:connector-curvature="0" /> </g> diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png Binary files differindex fa893b4be0d..60956db2576 100644 --- a/release/datafiles/splash.png +++ b/release/datafiles/splash.png diff --git a/release/datafiles/splash_2x.png b/release/datafiles/splash_2x.png Binary files differindex f8dd2bbeaf3..3a5000c6bbc 100644 --- a/release/datafiles/splash_2x.png +++ b/release/datafiles/splash_2x.png diff --git a/release/datafiles/splash_template.xcf b/release/datafiles/splash_template.xcf Binary files differindex b3141471c51..12719b5c155 100644 --- a/release/datafiles/splash_template.xcf +++ b/release/datafiles/splash_template.xcf diff --git a/release/scripts/addons b/release/scripts/addons -Subproject 407d0ea752b3af73d3f13ba072671bd09eefecb +Subproject 06dad53c80801e0e0919f086040e3d9c31bbd0a diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib -Subproject 9f29e18707917ec5be262431d2e09dbb85332f4 +Subproject 04af69be141a5757fc60b44cc1a5b72db524af3 diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py index 5a3eda567be..3b7eff6db9c 100644 --- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py +++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py @@ -230,12 +230,13 @@ def dump_rna_messages(msgs, reports, settings, verbose=False): _rna = {getattr(bpy.types, cls) for cls in dir(bpy.types)} # Classes which are attached to collections can be skipped too, these are api access only. - for cls in _rna: - for prop in cls.bl_rna.properties: - if prop.type == 'COLLECTION': - prop_cls = prop.srna - if prop_cls is not None: - blacklist_rna_class.add(prop_cls.__class__) + # XXX This is not true, some of those show in UI, see e.g. tooltip of KeyingSets.active... + #~ for cls in _rna: + #~ for prop in cls.bl_rna.properties: + #~ if prop.type == 'COLLECTION': + #~ prop_cls = prop.srna + #~ if prop_cls is not None: + #~ blacklist_rna_class.add(prop_cls.__class__) # Now here is the *ugly* hack! # Unfortunately, all classes we want to access are not available from bpy.types (OperatorProperties subclasses @@ -375,6 +376,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False): walk_keymap_hierarchy(lvl[3], msgsrc) # Dump Messages + operator_categories = {} def process_cls_list(cls_list): if not cls_list: return @@ -391,6 +393,16 @@ def dump_rna_messages(msgs, reports, settings, verbose=False): cls_id = bl_rna.identifier + "." + cls_id bl_rna = bl_rna.base return cls_id + + def operator_category(cls): + """Extract operators' categories, as displayed in 'search' space menu.""" + # NOTE: keep in sync with C code in ui_searchbox_region_draw_cb__operator(). + if issubclass(cls, bpy.types.OperatorProperties) and "_OT_" in cls.__name__: + cat_id = cls.__name__.split("_OT_")[0] + if cat_id not in operator_categories: + cat_str = cat_id.capitalize() + ":" + operator_categories[cat_id] = cat_str + if verbose: print(cls_list) cls_list.sort(key=full_class_id) @@ -402,6 +414,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False): if (cls in blacklist_rna_class) or issubclass(cls, bpy.types.Operator): reports["rna_structs_skipped"].append(cls) else: + operator_category(cls) walk_class(cls) # Recursively process subclasses. process_cls_list(cls.__subclasses__()) @@ -409,6 +422,11 @@ def dump_rna_messages(msgs, reports, settings, verbose=False): # Parse everything (recursively parsing from bpy_struct "class"...). process_cls_list(bpy.types.ID.__base__.__subclasses__()) + # Finalize generated 'operator categories' messages. + for cat_str in operator_categories.values(): + process_msg(msgs, bpy.app.translations.contexts.operator_default, cat_str, "Generated operator category", + reports, check_ctxt_rna, settings) + # And parse keymaps! from bpy_extras.keyconfig_utils import KM_HIERARCHY walk_keymap_hierarchy(KM_HIERARCHY, "KM_HIERARCHY") diff --git a/release/scripts/modules/bl_i18n_utils/utils_spell_check.py b/release/scripts/modules/bl_i18n_utils/utils_spell_check.py index d2049eadaa1..fa42778b53f 100644 --- a/release/scripts/modules/bl_i18n_utils/utils_spell_check.py +++ b/release/scripts/modules/bl_i18n_utils/utils_spell_check.py @@ -153,7 +153,7 @@ class SpellChecker: "realtime", "rekey", "remesh", - "reprojection", + "reprojection", "reproject", "resize", "restpose", "retarget", "retargets", "retargeting", "retargeted", @@ -477,6 +477,12 @@ class SpellChecker: "wpaint", "uvwarp", + # UOC (Ugly Operator Categories) + "cachefile", + "paintcurve", + "ptcache", + "dpaint", + # Algorithm/library names "ashikhmin", # Ashikhmin-Shirley "beckmann", diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 59722ae09e4..ce7db82e49c 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -866,9 +866,13 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): split = layout.split() col = split.column() - engine = bpy.context.scene.render.engine - if engine == "CYCLES" and md == ob.modifiers[-1] and bpy.context.scene.cycles.feature_set == "EXPERIMENTAL": - col.label(text="Preview:") + scene = bpy.context.scene + engine = scene.render.engine + show_adaptive_options = (engine == "CYCLES" and md == ob.modifiers[-1] and + scene.cycles.feature_set == "EXPERIMENTAL") + + if show_adaptive_options: + col.label(text="View:") col.prop(md, "levels", text="Levels") col.label(text="Render:") col.prop(ob.cycles, "use_adaptive_subdivision", text="Adaptive") @@ -883,11 +887,26 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col = split.column() col.label(text="Options:") - col.prop(md, "use_subsurf_uv") + + sub = col.column() + sub.active = (not show_adaptive_options) or (not ob.cycles.use_adaptive_subdivision) + sub.prop(md, "use_subsurf_uv") + col.prop(md, "show_only_control_edges") if hasattr(md, "use_opensubdiv"): col.prop(md, "use_opensubdiv") + if show_adaptive_options and ob.cycles.use_adaptive_subdivision: + col = layout.column(align=True) + col.scale_y = 0.6 + col.separator() + col.label("Final Dicing Rate:") + col.separator() + + render = max(scene.cycles.dicing_rate * ob.cycles.dicing_rate, 0.1) + preview = max(scene.cycles.preview_dicing_rate * ob.cycles.dicing_rate, 0.1) + col.label("Render %.2f px, Preview %.2f px" % (render, preview)) + def SURFACE(self, layout, ob, md): layout.label(text="Settings are inside the Physics tab") diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py index 90cf410036a..e42f7263218 100644 --- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py +++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py @@ -20,6 +20,7 @@ from bpy.types import Menu, UIList +from bpy.app.translations import pgettext_iface as iface_ def gpencil_stroke_placement_settings(context, layout): @@ -52,6 +53,34 @@ def gpencil_stroke_placement_settings(context, layout): row.prop(ts, "use_gpencil_stroke_endpoints") +def gpencil_active_brush_settings_simple(context, layout): + brush = context.active_gpencil_brush + + col = layout.column() + col.label("Active Brush: ") + + row = col.row(align=True) + row.operator_context = 'EXEC_REGION_WIN' + row.operator_menu_enum("gpencil.brush_change", "brush", text="", icon='BRUSH_DATA') + row.prop(brush, "name", text="") + + col.prop(brush, "line_width", slider=True) + row = col.row(align=True) + row.prop(brush, "use_random_pressure", text='', icon='RNDCURVE') + row.prop(brush, "pen_sensitivity_factor", slider=True) + row.prop(brush, "use_pressure", text='', icon='STYLUS_PRESSURE') + row = col.row(align=True) + row.prop(brush, "use_random_strength", text='', icon='RNDCURVE') + row.prop(brush, "strength", slider=True) + row.prop(brush, "use_strength_pressure", text='', icon='STYLUS_PRESSURE') + row = col.row(align=True) + row.prop(brush, "jitter", slider=True) + row.prop(brush, "use_jitter_pressure", text='', icon='STYLUS_PRESSURE') + row = col.row() + row.prop(brush, "angle", slider=True) + row.prop(brush, "angle_factor", text="Factor", slider=True) + + class GreasePencilDrawingToolsPanel: # subclass must set # bl_space_type = 'IMAGE_EDITOR' @@ -197,6 +226,10 @@ class GreasePencilStrokeEditPanel: if gpd: col.prop(gpd, "show_stroke_direction", text="Show Directions") + if is_3d_view: + layout.separator() + layout.operator("gpencil.reproject") + class GreasePencilBrushPanel: # subclass must set @@ -460,29 +493,7 @@ class GPENCIL_PIE_settings_palette(Menu): col.prop(palcolor, "fill_alpha", text="", slider=True) # S Brush settings - col = pie.column() - col.label("Active Brush: ") - - row = col.row() - row.operator_context = 'EXEC_REGION_WIN' - row.operator_menu_enum("gpencil.brush_change", "brush", text="", icon='BRUSH_DATA') - row.prop(brush, "name", text="") - - col.prop(brush, "line_width", slider=True) - row = col.row(align=True) - row.prop(brush, "use_random_pressure", text='', icon='RNDCURVE') - row.prop(brush, "pen_sensitivity_factor", slider=True) - row.prop(brush, "use_pressure", text='', icon='STYLUS_PRESSURE') - row = col.row(align=True) - row.prop(brush, "use_random_strength", text='', icon='RNDCURVE') - row.prop(brush, "strength", slider=True) - row.prop(brush, "use_strength_pressure", text='', icon='STYLUS_PRESSURE') - row = col.row(align=True) - row.prop(brush, "jitter", slider=True) - row.prop(brush, "use_jitter_pressure", text='', icon='STYLUS_PRESSURE') - row = col.row() - row.prop(brush, "angle", slider=True) - row.prop(brush, "angle_factor", text="Factor", slider=True) + gpencil_active_brush_settings_simple(context, pie) # N - Active Layer col = pie.column() @@ -749,6 +760,10 @@ class GPENCIL_MT_palettecolor_specials(Menu): layout.operator("gpencil.palettecolor_unlock_all", icon='UNLOCKED', text="UnLock All") layout.operator("gpencil.palettecolor_copy", icon='PASTEDOWN', text="Copy Color") + layout.separator() + + layout.operator("gpencil.palettecolor_select", icon='COLOR', text="Select Strokes") + class GreasePencilDataPanel: # subclass must set @@ -830,7 +845,10 @@ class GreasePencilDataPanel: split.prop(gpl, "show_points") # Offsets + Parenting (where available) - split = layout.split(percentage=0.5) + if context.space_data.type == 'VIEW_3D': + split = layout.split(percentage=0.5) + else: + split = layout.column() # parenting is not available in 2D editors... split.active = not gpl.lock # Offsets - Color Tint @@ -864,10 +882,10 @@ class GreasePencilDataPanel: row.active = not gpl.lock if gpl.active_frame: - lock_status = "Locked" if gpl.lock_frame else "Unlocked" - lock_label = "Frame: %d (%s)" % (gpl.active_frame.frame_number, lock_status) + lock_status = iface_("Locked") if gpl.lock_frame else iface_("Unlocked") + lock_label = iface_("Frame: %d (%s)") % (gpl.active_frame.frame_number, lock_status) else: - lock_label = "Lock Frame" + lock_label = iface_("Lock Frame") row.prop(gpl, "lock_frame", text=lock_label, icon='UNLOCKED') row.operator("gpencil.active_frame_delete", text="", icon='X') @@ -952,10 +970,13 @@ class GreasePencilPaletteColorPanel: sub.operator("gpencil.palettecolor_move", icon='TRIA_UP', text="").direction = 'UP' sub.operator("gpencil.palettecolor_move", icon='TRIA_DOWN', text="").direction = 'DOWN' - col.separator() - sub = col.column(align=True) + row = layout.row() + sub = row.row(align=True) + sub.label(text="Isolate:") # based on active color only sub.operator("gpencil.palettecolor_isolate", icon='LOCKED', text="").affect_visibility = False sub.operator("gpencil.palettecolor_isolate", icon='RESTRICT_VIEW_OFF', text="").affect_visibility = True + sub = row.row(align=True) + sub.label(text="Lock:") # based on other stuff... sub.operator("gpencil.stroke_lock_color", icon='BORDER_RECT', text="") sub.operator("gpencil.palette_lock_layer", icon='COLOR', text="") @@ -963,9 +984,7 @@ class GreasePencilPaletteColorPanel: if pcolor: self.draw_palettecolors(layout, pcolor) - # ---------------------------------------------- # Draw palette colors - # ---------------------------------------------- def draw_palettecolors(self, layout, pcolor): # color settings split = layout.split(percentage=0.5) @@ -998,6 +1017,7 @@ class GreasePencilPaletteColorPanel: class GreasePencilToolsPanel: + # For use in "2D" Editors without their own toolbar # subclass must set # bl_space_type = 'IMAGE_EDITOR' # bl_options = {'DEFAULT_CLOSED'} @@ -1027,4 +1047,8 @@ class GreasePencilToolsPanel: layout.separator() layout.separator() + gpencil_active_brush_settings_simple(context, layout) + + layout.separator() + gpencil_stroke_placement_settings(context, layout) diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 794ef5189d6..152d4e96d5d 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -345,7 +345,9 @@ class RENDER_PT_stamp(RenderButtonsPanel, Panel): layout.prop(rd, "use_stamp") col = layout.column() col.active = rd.use_stamp - col.prop(rd, "stamp_font_size", text="Font Size") + row = col.row() + row.prop(rd, "stamp_font_size", text="Font Size") + row.prop(rd, "use_stamp_labels", text="Draw labels") row = col.row() row.column().prop(rd, "stamp_foreground", slider=True) diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index 8d581e84e25..5cc135392c1 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -960,7 +960,6 @@ class CLIP_PT_stabilization(CLIP_PT_reconstruction_panel, Panel): icon='DOWNARROW_HLT') row = layout.row() - row.active = stab.use_stabilize_rotation row.prop(stab, "use_autoscale") sub = row.row() sub.active = stab.use_autoscale @@ -971,10 +970,9 @@ class CLIP_PT_stabilization(CLIP_PT_reconstruction_panel, Panel): # Hrm, how to make it more obvious label? row.prop(stab, "target_position", text="") col.prop(stab, "target_rotation") - if stab.use_autoscale: - col.label(text="Auto Scale Factor: %5.3f" % (1.0 / stab.target_zoom)) - else: - col.prop(stab, "target_zoom") + row = col.row(align=True) + row.prop(stab, "target_scale") + row.active = not stab.use_autoscale col = layout.column(align=True) col.prop(stab, "influence_location") diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index da1e9c47737..e6741cd6122 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -968,8 +968,7 @@ class VIEW3D_MT_select_gpencil(Menu): layout.operator("gpencil.select_all", text="(De)select All").action = 'TOGGLE' layout.operator("gpencil.select_all", text="Inverse").action = 'INVERT' layout.operator("gpencil.select_linked", text="Linked") - #layout.operator_menu_enum("gpencil.select_grouped", "type", text="Grouped") - layout.operator("gpencil.select_grouped", text="Grouped") + layout.operator_menu_enum("gpencil.select_grouped", "type", text="Grouped") layout.separator() diff --git a/source/blender/alembic/CMakeLists.txt b/source/blender/alembic/CMakeLists.txt index 42bd6a9c340..0b6b2433bd0 100644 --- a/source/blender/alembic/CMakeLists.txt +++ b/source/blender/alembic/CMakeLists.txt @@ -33,6 +33,7 @@ set(INC ../makesrna ../windowmanager ../../../intern/guardedalloc + ../../../intern/utfconv ) set(INC_SYS diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc index 132c59c0cfb..57a2bdd274f 100644 --- a/source/blender/alembic/intern/abc_exporter.cc +++ b/source/blender/alembic/intern/abc_exporter.cc @@ -30,6 +30,10 @@ #include <Alembic/AbcCoreOgawa/All.h> +#ifdef WIN32 +# include "utfconv.h" +#endif + #include "abc_camera.h" #include "abc_curves.h" #include "abc_hair.h" @@ -66,6 +70,54 @@ extern "C" { using Alembic::Abc::TimeSamplingPtr; using Alembic::Abc::OBox3dProperty; + +/* ************************************************************************** */ + +/* This kinda duplicates CreateArchiveWithInfo, but Alembic does not seem to + * have a version supporting streams. */ +static Alembic::Abc::OArchive create_archive(std::ostream *ostream, + const std::string &filename, + const std::string &scene_name, + const Alembic::Abc::Argument &arg0, + const Alembic::Abc::Argument &arg1, + bool ogawa) +{ + Alembic::Abc::MetaData md = GetMetaData(arg0, arg1); + md.set(Alembic::Abc::kApplicationNameKey, "Blender"); + md.set(Alembic::Abc::kUserDescriptionKey, scene_name); + + time_t raw_time; + time(&raw_time); + char buffer[128]; + +#if defined _WIN32 || defined _WIN64 + ctime_s(buffer, 128, &raw_time); +#else + ctime_r(&raw_time, buffer); +#endif + + const std::size_t buffer_len = strlen(buffer); + if (buffer_len > 0 && buffer[buffer_len - 1] == '\n') { + buffer[buffer_len - 1] = '\0'; + } + + md.set(Alembic::Abc::kDateWrittenKey, buffer); + + Alembic::Abc::ErrorHandler::Policy policy = GetErrorHandlerPolicyFromArgs(arg0, arg1); + +#ifdef WITH_ALEMBIC_HDF5 + if (!ogawa) { + return Alembic::Abc::OArchive(Alembic::AbcCoreHDF5::WriteArchive(), filename, md, policy); + } +#else + static_cast<void>(filename); + static_cast<void>(ogawa); +#endif + + Alembic::AbcCoreOgawa::WriteArchive archive_writer; + return Alembic::Abc::OArchive(archive_writer(ostream, md), Alembic::Abc::kWrapExisting, policy); +} + /* ************************************************************************** */ ExportSettings::ExportSettings() @@ -246,26 +298,25 @@ void AbcExporter::operator()(Main *bmain, float &progress, bool &was_canceled) Alembic::Abc::Argument arg(md); -#ifdef WITH_ALEMBIC_HDF5 - if (!m_settings.export_ogawa) { - m_archive = Alembic::Abc::CreateArchiveWithInfo(Alembic::AbcCoreHDF5::WriteArchive(), - m_filename, - "Blender", - scene_name, - Alembic::Abc::ErrorHandler::kThrowPolicy, - arg); - } - else + /* Use stream to support unicode character paths on Windows. */ + if (m_settings.export_ogawa) { +#ifdef WIN32 + UTF16_ENCODE(m_filename); + std::wstring wstr(m_filename_16); + m_out_file.open(wstr.c_str(), std::ios::out | std::ios::binary); + UTF16_UN_ENCODE(m_filename); +#else + m_out_file.open(m_filename, std::ios::out | std::ios::binary); #endif - { - m_archive = Alembic::Abc::CreateArchiveWithInfo(Alembic::AbcCoreOgawa::WriteArchive(), - m_filename, - "Blender", - scene_name, - Alembic::Abc::ErrorHandler::kThrowPolicy, - arg); } + m_archive = create_archive(&m_out_file, + m_filename, + scene_name, + Alembic::Abc::ErrorHandler::kThrowPolicy, + arg, + m_settings.export_ogawa); + /* Create time samplings for transforms and shapes. */ TimeSamplingPtr trans_time = createTimeSampling(m_settings.frame_step_xform); diff --git a/source/blender/alembic/intern/abc_exporter.h b/source/blender/alembic/intern/abc_exporter.h index 070eb9ea81a..6c242f973c4 100644 --- a/source/blender/alembic/intern/abc_exporter.h +++ b/source/blender/alembic/intern/abc_exporter.h @@ -24,6 +24,7 @@ #define __ABC_EXPORTER_H__ #include <Alembic/Abc/All.h> +#include <fstream> #include <map> #include <set> #include <vector> @@ -75,6 +76,7 @@ class AbcExporter { const char *m_filename; + std::ofstream m_out_file; Alembic::Abc::OArchive m_archive; unsigned int m_trans_sampling_index, m_shape_sampling_index; diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc index f42c708b4c2..d057cc341f6 100644 --- a/source/blender/alembic/intern/alembic_capi.cc +++ b/source/blender/alembic/intern/alembic_capi.cc @@ -29,6 +29,12 @@ #include <Alembic/AbcCoreOgawa/All.h> #include <Alembic/AbcMaterial/IMaterial.h> +#include <fstream> + +#ifdef WIN32 +# include "utfconv.h" +#endif + #include "abc_camera.h" #include "abc_curves.h" #include "abc_hair.h" @@ -109,49 +115,97 @@ using Alembic::AbcGeom::V3fArraySamplePtr; using Alembic::AbcMaterial::IMaterial; -struct AbcArchiveHandle { - int unused; -}; - -ABC_INLINE IArchive *archive_from_handle(AbcArchiveHandle *handle) -{ - return reinterpret_cast<IArchive *>(handle); -} - -ABC_INLINE AbcArchiveHandle *handle_from_archive(IArchive *archive) +static IArchive open_archive(const std::string &filename, + const std::vector<std::istream *> &input_streams, + bool &is_hdf5) { - return reinterpret_cast<AbcArchiveHandle *>(archive); -} - -static IArchive *open_archive(const std::string &filename) -{ - Alembic::AbcCoreAbstract::ReadArraySampleCachePtr cache_ptr; - IArchive *archive; - try { - archive = new IArchive(Alembic::AbcCoreOgawa::ReadArchive(), - filename.c_str(), ErrorHandler::kThrowPolicy, - cache_ptr); + is_hdf5 = false; + Alembic::AbcCoreOgawa::ReadArchive archive_reader(input_streams); + + return IArchive(archive_reader(filename), + kWrapExisting, + ErrorHandler::kThrowPolicy); } catch (const Exception &e) { std::cerr << e.what() << '\n'; #ifdef WITH_ALEMBIC_HDF5 try { - archive = new IArchive(Alembic::AbcCoreHDF5::ReadArchive(), - filename.c_str(), ErrorHandler::kThrowPolicy, - cache_ptr); + is_hdf5 = true; + Alembic::AbcCoreAbstract::ReadArraySampleCachePtr cache_ptr; + + return IArchive(Alembic::AbcCoreHDF5::ReadArchive(), + filename.c_str(), ErrorHandler::kThrowPolicy, + cache_ptr); } catch (const Exception &) { std::cerr << e.what() << '\n'; - return NULL; + return IArchive(); } #else - return NULL; + return IArchive(); #endif } - return archive; + return IArchive(); +} + +/* Wrapper around an archive to be able to use streams so that unicode paths + * work on Windows (T49112), and to make sure the input stream remains valid as + * long as the archive is open. */ +class ArchiveWrapper { + IArchive m_archive; + std::ifstream m_infile; + std::vector<std::istream *> m_streams; + +public: + explicit ArchiveWrapper(const char *filename) + { +#ifdef WIN32 + UTF16_ENCODE(filename); + std::wstring wstr(filename_16); + m_infile.open(wstr.c_str(), std::ios::in | std::ios::binary); + UTF16_UN_ENCODE(filename); +#else + m_infile.open(filename, std::ios::in | std::ios::binary); +#endif + + m_streams.push_back(&m_infile); + + bool is_hdf5; + m_archive = open_archive(filename, m_streams, is_hdf5); + + /* We can't open an HDF5 file from a stream, so close it. */ + if (is_hdf5) { + m_infile.close(); + m_streams.clear(); + } + } + + bool valid() const + { + return m_archive.valid(); + } + + IObject getTop() + { + return m_archive.getTop(); + } +}; + +struct AbcArchiveHandle { + int unused; +}; + +ABC_INLINE ArchiveWrapper *archive_from_handle(AbcArchiveHandle *handle) +{ + return reinterpret_cast<ArchiveWrapper *>(handle); +} + +ABC_INLINE AbcArchiveHandle *handle_from_archive(ArchiveWrapper *archive) +{ + return reinterpret_cast<AbcArchiveHandle *>(archive); } //#define USE_NURBS @@ -247,9 +301,10 @@ static void gather_objects_paths(const IObject &object, ListBase *object_paths) AbcArchiveHandle *ABC_create_handle(const char *filename, ListBase *object_paths) { - IArchive *archive = open_archive(filename); + ArchiveWrapper *archive = new ArchiveWrapper(filename); - if (!archive) { + if (!archive->valid()) { + delete archive; return NULL; } @@ -582,12 +637,10 @@ static void import_startjob(void *user_data, short *stop, short *do_update, floa data->do_update = do_update; data->progress = progress; - IArchive *archive = open_archive(data->filename); + ArchiveWrapper *archive = new ArchiveWrapper(data->filename); - if (!archive || !archive->valid()) { - if (archive) { - delete archive; - } + if (!archive->valid()) { + delete archive; data->error_code = ABC_ARCHIVE_FAIL; return; } @@ -812,7 +865,7 @@ void ABC_import(bContext *C, const char *filepath, float scale, bool is_sequence void ABC_get_transform(AbcArchiveHandle *handle, Object *ob, const char *object_path, float r_mat[4][4], float time, float scale) { - IArchive *archive = archive_from_handle(handle); + ArchiveWrapper *archive = archive_from_handle(handle); if (!archive || !archive->valid()) { return; @@ -1088,7 +1141,7 @@ DerivedMesh *ABC_read_mesh(AbcArchiveHandle *handle, const char **err_str, int read_flag) { - IArchive *archive = archive_from_handle(handle); + ArchiveWrapper *archive = archive_from_handle(handle); if (!archive || !archive->valid()) { *err_str = "Invalid archive!"; diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 483fefbd89c..189340db618 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -27,8 +27,8 @@ /* these lines are grep'd, watch out for our not-so-awesome regex * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ -#define BLENDER_VERSION 277 -#define BLENDER_SUBVERSION 3 +#define BLENDER_VERSION 278 +#define BLENDER_SUBVERSION 0 /* Several breakages with 270, e.g. constraint deg vs rad */ #define BLENDER_MINVERSION 270 #define BLENDER_MINSUBVERSION 6 @@ -37,7 +37,7 @@ /* can be left blank, otherwise a,b,c... etc with no quotes */ #define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE alpha +#define BLENDER_VERSION_CYCLE rc extern char versionstr[]; /* from blender.c */ diff --git a/source/blender/blenkernel/BKE_cachefile.h b/source/blender/blenkernel/BKE_cachefile.h index 51b161f1a06..7a9744ef9d6 100644 --- a/source/blender/blenkernel/BKE_cachefile.h +++ b/source/blender/blenkernel/BKE_cachefile.h @@ -38,6 +38,8 @@ struct CacheFile; struct Main; struct Scene; +void BKE_cachefiles_init(void); + void *BKE_cachefile_add(struct Main *bmain, const char *name); void BKE_cachefile_init(struct CacheFile *cache_file); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 79e500f8ceb..714417ae29e 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -2282,7 +2282,7 @@ static void editbmesh_calc_modifiers( { ModifierData *md, *previewmd = NULL; float (*deformedVerts)[3] = NULL; - CustomDataMask mask, previewmask = 0, append_mask = 0; + CustomDataMask mask = 0, previewmask = 0, append_mask = 0; DerivedMesh *dm = NULL, *orcodm = NULL; int i, numVerts = 0, cageIndex = modifiers_getCageIndex(scene, ob, NULL, 1); CDMaskLink *datamasks, *curr; @@ -2565,11 +2565,15 @@ static void editbmesh_calc_modifiers( * we'll be using GPU backend of OpenSubdiv. This is so * playback performance is kept as high as possible. */ -static bool calc_modifiers_skip_orco(const Object *ob) +static bool calc_modifiers_skip_orco(Scene *scene, + const Object *ob, + bool use_render_params) { - const ModifierData *last_md = ob->modifiers.last; + ModifierData *last_md = ob->modifiers.last; + const int required_mode = use_render_params ? eModifierMode_Render : eModifierMode_Realtime; if (last_md != NULL && - last_md->type == eModifierType_Subsurf) + last_md->type == eModifierType_Subsurf && + modifier_isEnabled(scene, last_md, required_mode)) { SubsurfModifierData *smd = (SubsurfModifierData *)last_md; /* TODO(sergey): Deduplicate this with checks from subsurf_ccg.c. */ @@ -2589,7 +2593,7 @@ static void mesh_build_data( BKE_object_sculpt_modifiers_changed(ob); #ifdef WITH_OPENSUBDIV - if (calc_modifiers_skip_orco(ob)) { + if (calc_modifiers_skip_orco(scene, ob, false)) { dataMask &= ~(CD_MASK_ORCO | CD_MASK_PREVIEW_MCOL); } #endif @@ -2624,7 +2628,7 @@ static void editbmesh_build_data(Scene *scene, Object *obedit, BMEditMesh *em, C BKE_editmesh_free_derivedmesh(em); #ifdef WITH_OPENSUBDIV - if (calc_modifiers_skip_orco(obedit)) { + if (calc_modifiers_skip_orco(scene, obedit, false)) { dataMask &= ~(CD_MASK_ORCO | CD_MASK_PREVIEW_MCOL); } #endif diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c index aebd564ca58..3bc81a69c86 100644 --- a/source/blender/blenkernel/intern/armature_update.c +++ b/source/blender/blenkernel/intern/armature_update.c @@ -617,9 +617,9 @@ void BKE_pose_eval_bone(EvaluationContext *UNUSED(eval_ctx), /* pass */ } else { - /* TODO(sergey): Use time source node for time. */ - float ctime = BKE_scene_frame_get(scene); /* not accurate... */ if ((pchan->flag & POSE_DONE) == 0) { + /* TODO(sergey): Use time source node for time. */ + float ctime = BKE_scene_frame_get(scene); /* not accurate... */ BKE_pose_where_is_bone(scene, ob, pchan, ctime, 1); } } @@ -641,8 +641,8 @@ void BKE_pose_constraints_evaluate(EvaluationContext *UNUSED(eval_ctx), /* IK are being solved separately/ */ } else { - float ctime = BKE_scene_frame_get(scene); /* not accurate... */ if ((pchan->flag & POSE_DONE) == 0) { + float ctime = BKE_scene_frame_get(scene); /* not accurate... */ BKE_pose_where_is_bone(scene, ob, pchan, ctime, 1); } } diff --git a/source/blender/blenkernel/intern/cachefile.c b/source/blender/blenkernel/intern/cachefile.c index 16f263791db..502f1d53ab2 100644 --- a/source/blender/blenkernel/intern/cachefile.c +++ b/source/blender/blenkernel/intern/cachefile.c @@ -35,6 +35,7 @@ #include "BLI_listbase.h" #include "BLI_path_util.h" #include "BLI_string.h" +#include "BLI_threads.h" #include "BLI_utildefines.h" #include "BKE_animsys.h" @@ -48,6 +49,13 @@ # include "ABC_alembic.h" #endif +static SpinLock spin; + +void BKE_cachefiles_init(void) +{ + BLI_spin_init(&spin); +} + void *BKE_cachefile_add(Main *bmain, const char *name) { CacheFile *cache_file = BKE_libblock_alloc(bmain, ID_CF, name); @@ -65,6 +73,7 @@ void BKE_cachefile_init(CacheFile *cache_file) cache_file->frame = 0.0f; cache_file->is_sequence = false; cache_file->scale = 1.0f; + cache_file->handle_mutex = BLI_mutex_alloc(); } /** Free (or release) any data used by this cachefile (does not free the cachefile itself). */ @@ -76,6 +85,7 @@ void BKE_cachefile_free(CacheFile *cache_file) ABC_free_handle(cache_file->handle); #endif + BLI_mutex_free(cache_file->handle_mutex); BLI_freelistN(&cache_file->object_paths); } @@ -114,9 +124,19 @@ void BKE_cachefile_reload(const Main *bmain, CacheFile *cache_file) void BKE_cachefile_ensure_handle(const Main *bmain, CacheFile *cache_file) { + BLI_spin_lock(&spin); + if (cache_file->handle_mutex == NULL) { + cache_file->handle_mutex = BLI_mutex_alloc(); + } + BLI_spin_unlock(&spin); + + BLI_mutex_lock(cache_file->handle_mutex); + if (cache_file->handle == NULL) { BKE_cachefile_reload(bmain, cache_file); } + + BLI_mutex_unlock(cache_file->handle_mutex); } void BKE_cachefile_update_frame(Main *bmain, Scene *scene, const float ctime, const float fps) diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 70fdd4aa72e..c4afa58b7d3 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -4344,7 +4344,7 @@ static bConstraintTypeInfo CTI_OBJECTSOLVER = { static void transformcache_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata) { bTransformCacheConstraint *data = con->data; - func(con, (ID **)&data->cache_file, false, userdata); + func(con, (ID **)&data->cache_file, true, userdata); } static void transformcache_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *targets) @@ -4353,11 +4353,15 @@ static void transformcache_evaluate(bConstraint *con, bConstraintOb *cob, ListBa bTransformCacheConstraint *data = con->data; Scene *scene = cob->scene; - const float frame = BKE_scene_frame_get(scene); - const float time = BKE_cachefile_time_offset(data->cache_file, frame, FPS); - CacheFile *cache_file = data->cache_file; + if (!cache_file) { + return; + } + + const float frame = BKE_scene_frame_get(scene); + const float time = BKE_cachefile_time_offset(cache_file, frame, FPS); + BKE_cachefile_ensure_handle(G.main, cache_file); ABC_get_transform(cache_file->handle, cob->ob, data->object_path, @@ -4391,6 +4395,13 @@ static void transformcache_free(bConstraint *con) } } +static void transformcache_new_data(void *cdata) +{ + bTransformCacheConstraint *data = (bTransformCacheConstraint *)cdata; + + data->cache_file = NULL; +} + static bConstraintTypeInfo CTI_TRANSFORM_CACHE = { CONSTRAINT_TYPE_TRANSFORM_CACHE, /* type */ sizeof(bTransformCacheConstraint), /* size */ @@ -4399,7 +4410,7 @@ static bConstraintTypeInfo CTI_TRANSFORM_CACHE = { transformcache_free, /* free data */ transformcache_id_looper, /* id looper */ transformcache_copy, /* copy data */ - NULL, /* new data */ + transformcache_new_data, /* new data */ NULL, /* get constraint targets */ NULL, /* flush constraint targets */ NULL, /* get target matrix */ diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 626d389ac2d..8a9cb73c8c9 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1866,7 +1866,7 @@ void BKE_image_stamp_buf( display = IMB_colormanagement_display_get_named(display_device); if (stamp_data_template == NULL) { - stampdata(scene, camera, &stamp_data, 1); + stampdata(scene, camera, &stamp_data, (scene->r.stamp & R_STAMP_HIDE_LABELS) == 0); } else { stampdata_from_template(&stamp_data, scene, stamp_data_template); diff --git a/source/blender/blenkernel/intern/lamp.c b/source/blender/blenkernel/intern/lamp.c index e9d039ad480..d098366aef4 100644 --- a/source/blender/blenkernel/intern/lamp.c +++ b/source/blender/blenkernel/intern/lamp.c @@ -154,8 +154,6 @@ Lamp *localize_lamp(Lamp *la) if (lan->mtex[a]) { lan->mtex[a] = MEM_mallocN(sizeof(MTex), "localize_lamp"); memcpy(lan->mtex[a], la->mtex[a], sizeof(MTex)); - /* free lamp decrements */ - id_us_plus((ID *)lan->mtex[a]->tex); } } diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c index 4afce3b5f85..61831d92766 100644 --- a/source/blender/blenkernel/intern/library_remap.c +++ b/source/blender/blenkernel/intern/library_remap.c @@ -871,8 +871,8 @@ void BKE_libblock_delete(Main *bmain, void *idv) BKE_main_id_tag_all(bmain, LIB_TAG_DOIT, false); /* First tag all datablocks directly from target lib. - * Note that we go forward here, since we want to check dependencies before users (e.g. meshes before objects). - * Avoids to have to loop twice. */ + * Note that we go forward here, since we want to check dependencies before users (e.g. meshes before objects). + * Avoids to have to loop twice. */ for (i = 0; i < base_count; i++) { ListBase *lb = lbarray[i]; ID *id; diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 733e9030056..ba3aef81514 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -2197,8 +2197,10 @@ Mesh *BKE_mesh_new_from_object( { Mesh *tmpmesh; Curve *tmpcu = NULL, *copycu; - int render = settings == eModifierMode_Render, i; - int cage = !apply_modifiers; + int i; + const bool render = (settings == eModifierMode_Render); + const bool cage = !apply_modifiers; + bool do_mat_id_us = true; /* perform the mesh extraction based on type */ switch (ob->type) { @@ -2268,6 +2270,12 @@ Mesh *BKE_mesh_new_from_object( BKE_mesh_texspace_copy_from_object(tmpmesh, ob); BKE_libblock_free_us(bmain, tmpobj); + + /* XXX The curve to mesh conversion is convoluted... But essentially, BKE_mesh_from_nurbs_displist() + * already transfers the ownership of materials from the temp copy of the Curve ID to the new + * Mesh ID, so we do not want to increase materials' usercount later. */ + do_mat_id_us = false; + break; } @@ -2315,8 +2323,11 @@ Mesh *BKE_mesh_new_from_object( if (cage) { /* copies the data */ tmpmesh = BKE_mesh_copy(bmain, ob->data); - /* if not getting the original caged mesh, get final derived mesh */ + + /* XXX BKE_mesh_copy() already handles materials usercount. */ + do_mat_id_us = false; } + /* if not getting the original caged mesh, get final derived mesh */ else { /* Make a dummy mesh, saves copying */ DerivedMesh *dm; @@ -2360,7 +2371,7 @@ Mesh *BKE_mesh_new_from_object( tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : tmpcu->mat[i]; - if (tmpmesh->mat[i]) { + if (do_mat_id_us && tmpmesh->mat[i]) { id_us_plus(&tmpmesh->mat[i]->id); } } @@ -2379,7 +2390,7 @@ Mesh *BKE_mesh_new_from_object( /* are we an object material or data based? */ tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : tmpmb->mat[i]; - if (tmpmesh->mat[i]) { + if (do_mat_id_us && tmpmesh->mat[i]) { id_us_plus(&tmpmesh->mat[i]->id); } } @@ -2399,7 +2410,7 @@ Mesh *BKE_mesh_new_from_object( /* are we an object material or data based? */ tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : origmesh->mat[i]; - if (tmpmesh->mat[i]) { + if (do_mat_id_us && tmpmesh->mat[i]) { id_us_plus(&tmpmesh->mat[i]->id); } } diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 482015d3b26..6794a8e8f93 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -1247,8 +1247,6 @@ static void free_buffers(MovieClip *clip) IMB_free_anim(clip->anim); clip->anim = NULL; } - - BKE_animdata_free((ID *) clip, false); } void BKE_movieclip_clear_cache(MovieClip *clip) @@ -1487,6 +1485,7 @@ void BKE_movieclip_free(MovieClip *clip) free_buffers(clip); BKE_tracking_free(&clip->tracking); + BKE_animdata_free((ID *) clip, false); } MovieClip *BKE_movieclip_copy(Main *bmain, MovieClip *clip) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 87e55a7ac95..0b15d28ec17 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -977,7 +977,7 @@ Object *BKE_object_copy_ex(Main *bmain, Object *ob, bool copy_caches) /* increase user numbers */ id_us_plus((ID *)obn->data); id_us_plus((ID *)obn->gpd); - id_lib_extern((ID *)obn->dup_group); + id_us_plus((ID *)obn->dup_group); for (a = 0; a < obn->totcol; a++) id_us_plus((ID *)obn->mat[a]); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 73af6a6be65..5454e1f7568 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1539,10 +1539,11 @@ static void print_threads_statistics(ThreadedObjectUpdateState *state) #else finish_time = PIL_check_seconds_timer(); tot_thread = BLI_system_thread_count(); + int total_objects = 0; for (i = 0; i < tot_thread; i++) { - int total_objects = 0; - double total_time = 0.0; + int thread_total_objects = 0; + double thread_total_time = 0.0; StatisicsEntry *entry; if (state->has_updated_objects) { @@ -1551,11 +1552,14 @@ static void print_threads_statistics(ThreadedObjectUpdateState *state) entry; entry = entry->next) { - total_objects++; - total_time += entry->duration; + thread_total_objects++; + thread_total_time += entry->duration; } - printf("Thread %d: total %d objects in %f sec.\n", i, total_objects, total_time); + printf("Thread %d: total %d objects in %f sec.\n", + i, + thread_total_objects, + thread_total_time); for (entry = state->statistics[i].first; entry; @@ -1563,12 +1567,16 @@ static void print_threads_statistics(ThreadedObjectUpdateState *state) { printf(" %s in %f sec\n", entry->object->id.name + 2, entry->duration); } + + total_objects += thread_total_objects; } BLI_freelistN(&state->statistics[i]); } if (state->has_updated_objects) { - printf("Scene update in %f sec\n", finish_time - state->base_time); + printf("Scene updated %d objects in %f sec\n", + total_objects, + finish_time - state->base_time); } #endif } diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index d5d3384bb48..a86606f1099 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -330,7 +330,7 @@ void BKE_tracking_settings_init(MovieTracking *tracking) tracking->settings.object_distance = 1; tracking->stabilization.scaleinf = 1.0f; - tracking->stabilization.anchor_frame = MINFRAME; + tracking->stabilization.anchor_frame = 1; zero_v2(tracking->stabilization.target_pos); tracking->stabilization.target_rot = 0.0f; tracking->stabilization.scale = 1.0f; diff --git a/source/blender/blenkernel/intern/tracking_stabilize.c b/source/blender/blenkernel/intern/tracking_stabilize.c index 4d72d851ae9..df42f253fdf 100644 --- a/source/blender/blenkernel/intern/tracking_stabilize.c +++ b/source/blender/blenkernel/intern/tracking_stabilize.c @@ -452,6 +452,29 @@ static MovieTrackingMarker *get_tracking_data_point( } } + +/* Define the reference point for rotation/scale measurement and compensation. + * The stabilizator works by assuming the image was distorted by a affine linear + * transform, i.e. it was rotated and stretched around this reference point + * (pivot point) and then shifted laterally. Any scale and orientation changes + * will be picked up relative to this point. And later the image will be + * stabilized by rotating around this point. The result can only be as + * accurate as this pivot point actually matches the real rotation center + * of the actual movements. Thus any scheme to define a pivot point is + * always guesswork. + * + * As a simple default, we use the weighted average of the location markers + * of the current frame as pivot point. TODO It is planned to add further + * options, like e.g. anchoring the pivot point at the canvas. Moreover, + * it is planned to allow for a user controllable offset. + */ +static void setup_pivot(const float ref_pos[2], float r_pivot[2]) +{ + zero_v2(r_pivot); /* TODO: add an animated offset position here. */ + add_v2_v2(r_pivot, ref_pos); +} + + /* Calculate the contribution of a single track at the time position (frame) of * the given marker. Each track has a local reference frame, which is as close * as possible to the global anchor_frame. Thus the translation contribution is @@ -508,22 +531,21 @@ static void translation_contribution(TrackStabilizationBase *track_ref, * in the same framework, we average the scales as logarithms. * * aspect is a total aspect ratio of the undistorted image (includes fame and - * pixel aspect). + * pixel aspect). The function returns a quality factor, which can be used + * to damp the contributions of points in close proximity to the pivot point, + * since such contributions might be dominated by rounding errors and thus + * poison the calculated average. When the quality factor goes towards zero, + * the weight of this contribution should be reduced accordingly. */ -static void rotation_contribution(TrackStabilizationBase *track_ref, - MovieTrackingMarker *marker, - float aspect, - float target_pos[2], - float averaged_translation_contribution[2], - float *result_angle, - float *result_scale) +static float rotation_contribution(TrackStabilizationBase *track_ref, + MovieTrackingMarker *marker, + const float aspect, + const float pivot[2], + float *result_angle, + float *result_scale) { - float len; + float len, quality; float pos[2]; - float pivot[2]; - copy_v2_fl(pivot, 0.5f); /* Use center of frame as hard wired pivot. */ - add_v2_v2(pivot, averaged_translation_contribution); - sub_v2_v2(pivot, target_pos); sub_v2_v2v2(pos, marker->pos, pivot); pos[0] *= aspect; @@ -531,9 +553,47 @@ static void rotation_contribution(TrackStabilizationBase *track_ref, *result_angle = atan2f(pos[1],pos[0]); - len = len_v2(pos) + SCALE_ERROR_LIMIT_BIAS; + len = len_v2(pos); + + /* prevent points very close to the pivot point from poisoning the result */ + quality = 1 - expf(-len*len / SCALE_ERROR_LIMIT_BIAS*SCALE_ERROR_LIMIT_BIAS); + len += SCALE_ERROR_LIMIT_BIAS; + *result_scale = len * track_ref->stabilization_scale_base; BLI_assert(0.0 < *result_scale); + + return quality; +} + + +/* Workaround to allow for rotation around an arbitrary pivot point. + * Currently, the public API functions do not support this flexibility. + * Rather, rotation will always be applied around a fixed origin. + * As a workaround, we shift the image after rotation to match the + * desired rotation centre. And since this offset needs to be applied + * after the rotation and scaling, we can collapse it with the + * translation compensation, which is also a lateral shift (offset). + * The offset to apply is intended_pivot - rotated_pivot + */ +static void compensate_rotation_center(const int size, float aspect, + const float angle, + const float scale, + const float pivot[2], + float result_translation[2]) +{ + const float origin[2] = {0.5f*aspect*size, 0.5f*size}; + float intended_pivot[2], rotated_pivot[2]; + float rotation_mat[2][2]; + + copy_v2_v2(intended_pivot, pivot); + copy_v2_v2(rotated_pivot, pivot); + rotate_m2(rotation_mat, +angle); + sub_v2_v2(rotated_pivot, origin); + mul_m2v2(rotation_mat, rotated_pivot); + mul_v2_fl(rotated_pivot, scale); + add_v2_v2(rotated_pivot, origin); + add_v2_v2(result_translation, intended_pivot); + sub_v2_v2(result_translation, rotated_pivot); } @@ -553,6 +613,7 @@ static bool average_track_contributions(StabContext *ctx, int framenr, float aspect, float r_translation[2], + float r_pivot[2], float *r_angle, float *r_scale_step) { @@ -561,12 +622,15 @@ static bool average_track_contributions(StabContext *ctx, MovieTrackingTrack *track; MovieTracking *tracking = ctx->tracking; MovieTrackingStabilization *stab = &tracking->stabilization; + float ref_pos[2]; BLI_assert(stab->flag & TRACKING_2D_STABILIZATION); zero_v2(r_translation); *r_scale_step = 0.0f; /* logarithm */ *r_angle = 0.0f; + zero_v2(ref_pos); + ok = false; weight_sum = 0.0f; for (track = tracking->tracks.first; track; track = track->next) { @@ -586,8 +650,10 @@ static bool average_track_contributions(StabContext *ctx, float offset[2]; weight_sum += weight; translation_contribution(stabilization_base, marker, offset); - mul_v2_fl(offset, weight); - add_v2_v2(r_translation, offset); + r_translation[0] += weight * offset[0]; + r_translation[1] += weight * offset[1]; + ref_pos[0] += weight * marker->pos[0]; + ref_pos[1] += weight * marker->pos[1]; ok |= (weight_sum > EPSILON_WEIGHT); } } @@ -596,8 +662,11 @@ static bool average_track_contributions(StabContext *ctx, return false; } + ref_pos[0] /= weight_sum; + ref_pos[1] /= weight_sum; r_translation[0] /= weight_sum; r_translation[1] /= weight_sum; + setup_pivot(ref_pos, r_pivot); if (!(stab->flag & TRACKING_STABILIZE_ROTATION)) { return ok; @@ -619,17 +688,15 @@ static bool average_track_contributions(StabContext *ctx, TrackStabilizationBase *stabilization_base = access_stabilization_baseline_data(ctx, track); BLI_assert(stabilization_base != NULL); - float rotation, scale; - float target_pos[2]; + float rotation, scale, quality; + quality = rotation_contribution(stabilization_base, + marker, + aspect, + r_pivot, + &rotation, + &scale); + weight *= quality; weight_sum += weight; - get_animated_target_pos(ctx, framenr, target_pos); - rotation_contribution(stabilization_base, - marker, - aspect, - target_pos, - r_translation, - &rotation, - &scale); *r_angle += rotation * weight; if (stab->flag & TRACKING_STABILIZE_SCALE) { *r_scale_step += logf(scale) * weight; @@ -656,6 +723,75 @@ static bool average_track_contributions(StabContext *ctx, } +/* Calculate weight center of location tracks for given frame. + * This function performs similar calculations as average_track_contributions(), + * but does not require the tracks to be initialized for stabilisation. Moreover, + * when there is no usable tracking data for the given frame number, data from + * a neighbouring frame is used. Thus this function can be used to calculate + * a starting point on initialization. + */ +static void average_marker_positions(StabContext *ctx, int framenr, float r_ref_pos[2]) +{ + bool ok = false; + float weight_sum; + MovieTrackingTrack *track; + MovieTracking *tracking = ctx->tracking; + + zero_v2(r_ref_pos); + weight_sum = 0.0f; + for (track = tracking->tracks.first; track; track = track->next) { + if (track->flag & TRACK_USE_2D_STAB) { + float weight = 0.0f; + MovieTrackingMarker *marker = + get_tracking_data_point(ctx, track, framenr, &weight); + if (marker) { + weight_sum += weight; + r_ref_pos[0] += weight * marker->pos[0]; + r_ref_pos[1] += weight * marker->pos[1]; + ok |= (weight_sum > EPSILON_WEIGHT); + } + } + } + if (ok) { + r_ref_pos[0] /= weight_sum; + r_ref_pos[1] /= weight_sum; + } else { + /* No usable tracking data on any track on this frame. + * Use data from neighbouring frames to extrapolate... + */ + int next_lower = MINAFRAME; + int next_higher = MAXFRAME; + use_values_from_fcurves(ctx, true); + for (track = tracking->tracks.first; track; track = track->next) { + /* Note: we deliberately do not care if this track + * is already initialized for stabilisation */ + if (track->flag & TRACK_USE_2D_STAB) { + int startpoint = search_closest_marker_index(track, framenr); + retrieve_next_higher_usable_frame(ctx, + track, + startpoint, + framenr, + &next_higher); + retrieve_next_lower_usable_frame(ctx, + track, + startpoint, + framenr, + &next_lower); + } + } + if (next_lower >= MINFRAME) { + /* use next usable frame to the left. + * Also default to this frame when we're in a gap */ + average_marker_positions(ctx, next_lower, r_ref_pos); + + } else if (next_higher < MAXFRAME) { + average_marker_positions(ctx, next_higher, r_ref_pos); + } + use_values_from_fcurves(ctx, false); + } +} + + /* Linear interpolation of data retrieved at two measurement points. * This function is used to fill gaps in the middle of the covered area, * at frames without any usable tracks for stabilization. @@ -670,8 +806,9 @@ static bool interpolate_averaged_track_contributions(StabContext *ctx, int framenr, int frame_a, int frame_b, - float aspect, - float translation[2], + const float aspect, + float r_translation[2], + float r_pivot[2], float *r_angle, float *r_scale_step) { @@ -679,6 +816,7 @@ static bool interpolate_averaged_track_contributions(StabContext *ctx, float trans_a[2], trans_b[2]; float angle_a, angle_b; float scale_a, scale_b; + float pivot_a[2], pivot_b[2]; bool success = false; BLI_assert(frame_a <= frame_b); @@ -688,16 +826,17 @@ static bool interpolate_averaged_track_contributions(StabContext *ctx, t = ((float)framenr - frame_a) / (frame_b - frame_a); s = 1.0f - t; - success = average_track_contributions(ctx, frame_a, aspect, trans_a, &angle_a, &scale_a); + success = average_track_contributions(ctx, frame_a, aspect, trans_a, pivot_a, &angle_a, &scale_a); if (!success) { return false; } - success = average_track_contributions(ctx, frame_b, aspect, trans_b, &angle_b, &scale_b); + success = average_track_contributions(ctx, frame_b, aspect, trans_b, pivot_b, &angle_b, &scale_b); if (!success) { return false; } - interp_v2_v2v2(translation, trans_a, trans_b, t); + interp_v2_v2v2(r_translation, trans_a, trans_b, t); + interp_v2_v2v2(r_pivot, pivot_a, pivot_b, t); *r_scale_step = s * scale_a + t * scale_b; *r_angle = s * angle_a + t * angle_b; return true; @@ -802,13 +941,12 @@ static void initialize_track_for_stabilization(StabContext *ctx, MovieTrackingTrack *track, int reference_frame, float aspect, - const float target_pos[2], const float average_translation[2], - float average_angle, - float average_scale_step) + const float pivot[2], + const float average_angle, + const float average_scale_step) { float pos[2], angle, len; - float pivot[2]; TrackStabilizationBase *local_data = access_stabilization_baseline_data(ctx, track); MovieTrackingMarker *marker = @@ -825,9 +963,6 @@ static void initialize_track_for_stabilization(StabContext *ctx, marker->pos); /* Per track baseline value for rotation. */ - copy_v2_fl(pivot, 0.5f); /* Use center of frame as hard wired pivot. */ - add_v2_v2(pivot, average_translation); - sub_v2_v2(pivot, target_pos); sub_v2_v2v2(pos, marker->pos, pivot); pos[0] *= aspect; @@ -855,10 +990,9 @@ static void initialize_all_tracks(StabContext *ctx, float aspect) */ int reference_frame = tracking->stabilization.anchor_frame; float average_angle=0, average_scale_step=0; - float average_translation[2]; - float target_pos_at_ref_frame[2]; - zero_v2(target_pos_at_ref_frame); + float average_translation[2], average_pos[2], pivot[2]; zero_v2(average_translation); + zero_v2(pivot); /* Initialize private working data. */ for (track = tracking->tracks.first; track != NULL; track = track->next) { @@ -891,6 +1025,10 @@ static void initialize_all_tracks(StabContext *ctx, float aspect) goto cleanup; } + /* starting point for pivot, before having initialized any track */ + average_marker_positions(ctx, reference_frame, average_pos); + setup_pivot(average_pos, pivot); + for (i = 0; i < track_cnt; ++i) { track = order[i].data; if (reference_frame != order[i].reference_frame) { @@ -899,18 +1037,16 @@ static void initialize_all_tracks(StabContext *ctx, float aspect) reference_frame, aspect, average_translation, + pivot, &average_angle, &average_scale_step); - get_animated_target_pos(ctx, - reference_frame, - target_pos_at_ref_frame); } initialize_track_for_stabilization(ctx, track, reference_frame, aspect, - target_pos_at_ref_frame, average_translation, + pivot, average_angle, average_scale_step); } @@ -936,6 +1072,7 @@ static bool stabilization_determine_offset_for_frame(StabContext *ctx, int framenr, float aspect, float r_translation[2], + float r_pivot[2], float *r_angle, float *r_scale_step) { @@ -953,6 +1090,7 @@ static bool stabilization_determine_offset_for_frame(StabContext *ctx, framenr, aspect, r_translation, + r_pivot, r_angle, r_scale_step); if (!success) { @@ -971,6 +1109,7 @@ static bool stabilization_determine_offset_for_frame(StabContext *ctx, next_higher, aspect, r_translation, + r_pivot, r_angle, r_scale_step); } @@ -982,6 +1121,7 @@ static bool stabilization_determine_offset_for_frame(StabContext *ctx, next_higher, aspect, r_translation, + r_pivot, r_angle, r_scale_step); } @@ -991,6 +1131,7 @@ static bool stabilization_determine_offset_for_frame(StabContext *ctx, next_lower, aspect, r_translation, + r_pivot, r_angle, r_scale_step); } @@ -1017,16 +1158,17 @@ static void stabilization_calculate_data(StabContext *ctx, bool do_compensate, float scale_step, float r_translation[2], + float r_pivot[2], float *r_scale, float *r_angle) { - float target_pos[2]; + float target_pos[2], target_scale; float scaleinf = get_animated_scaleinf(ctx, framenr); - *r_scale = (get_animated_target_scale(ctx,framenr) - 1.0f) * scaleinf + 1.0f; - if (ctx->stab->flag & TRACKING_STABILIZE_SCALE) { - *r_scale *= expf(scale_step * scaleinf); /* Averaged in log scale */ + *r_scale = expf(scale_step * scaleinf); /* Averaged in log scale */ + } else { + *r_scale = 1.0f; } mul_v2_fl(r_translation, get_animated_locinf(ctx, framenr)); @@ -1039,10 +1181,17 @@ static void stabilization_calculate_data(StabContext *ctx, get_animated_target_pos(ctx, framenr, target_pos); sub_v2_v2(r_translation, target_pos); *r_angle -= get_animated_target_rot(ctx,framenr); + target_scale = get_animated_target_scale(ctx,framenr); + if (target_scale != 0.0f) { + *r_scale /= target_scale; + /* target_scale is an expected/intended reference zoom value */ + } /* Convert from relative to absolute coordinates, square pixels. */ r_translation[0] *= (float)size * aspect; r_translation[1] *= (float)size; + r_pivot[0] *= (float)size * aspect; + r_pivot[1] *= (float)size; /* Output measured data, or inverse of the measured values for * compensation? @@ -1056,25 +1205,61 @@ static void stabilization_calculate_data(StabContext *ctx, } } +static void stabilization_data_to_mat4(float pixel_aspect, + const float pivot[2], + const float translation[2], + float scale, + float angle, + float r_mat[4][4]) +{ + float translation_mat[4][4], rotation_mat[4][4], scale_mat[4][4], + pivot_mat[4][4], inv_pivot_mat[4][4], + aspect_mat[4][4], inv_aspect_mat[4][4]; + float scale_vector[3] = {scale, scale, 1.0f}; -/* Determine the inner part of the frame, which is always safe to use. - * When enlarging the image by the inverse of this factor, any black areas - * appearing due to frame translation and rotation will be removed. + unit_m4(translation_mat); + unit_m4(rotation_mat); + unit_m4(scale_mat); + unit_m4(aspect_mat); + unit_m4(pivot_mat); + unit_m4(inv_pivot_mat); + + /* aspect ratio correction matrix */ + aspect_mat[0][0] /= pixel_aspect; + invert_m4_m4(inv_aspect_mat, aspect_mat); + + add_v2_v2(pivot_mat[3], pivot); + sub_v2_v2(inv_pivot_mat[3], pivot); + + size_to_mat4(scale_mat, scale_vector); /* scale matrix */ + add_v2_v2(translation_mat[3], translation); /* translation matrix */ + rotate_m4(rotation_mat, 'Z', angle); /* rotation matrix */ + + /* Compose transformation matrix. */ + mul_m4_series(r_mat, aspect_mat, translation_mat, + pivot_mat, scale_mat, rotation_mat, inv_pivot_mat, + inv_aspect_mat); +} + +/* Calculate scale factor necessary to eliminate black image areas + * caused by the compensating movements of the stabilizator. + * This function visits every frame where stabilisation data is + * available and determines the factor for this frame. The overall + * largest factor found is returned as result. * - * NOTE: When calling this function, basic initialization of tracks must be - * done already + * NOTE: all tracks need to be initialized before calling this function. */ -static void stabilization_determine_safe_image_area(StabContext *ctx, - int size, - float image_aspect) +static float calculate_autoscale_factor(StabContext *ctx, + int size, + float aspect) { MovieTrackingStabilization *stab = ctx->stab; float pixel_aspect = ctx->tracking->camera.pixel_aspect; + int height = size, width = aspect*size; int sfra = INT_MAX, efra = INT_MIN, cfra; float scale = 1.0f, scale_step = 0.0f; MovieTrackingTrack *track; - stab->scale = 1.0f; /* Calculate maximal frame range of tracks where stabilization is active. */ for (track = ctx->tracking->tracks.first; track; track = track->next) { @@ -1089,124 +1274,117 @@ static void stabilization_determine_safe_image_area(StabContext *ctx, } } - /* For every frame we calculate scale factor needed to eliminate black border area - * and choose largest scale factor as final one. - */ + use_values_from_fcurves(ctx, true); for (cfra = sfra; cfra <= efra; cfra++) { - float translation[2], angle, tmp_scale; - int i; + float translation[2], pivot[2], angle, tmp_scale; float mat[4][4]; - float points[4][2] = {{0.0f, 0.0f}, - {0.0f, size}, - {image_aspect * size, size}, - {image_aspect * size, 0.0f}}; - float si, co; - bool do_compensate = true; - + const float points[4][2] = {{0.0f, 0.0f}, + {0.0f, height}, + {width, height}, + {width, 0.0f}}; + const bool do_compensate = true; + /* Calculate stabilization parameters for the current frame. */ stabilization_determine_offset_for_frame(ctx, cfra, - image_aspect, + aspect, translation, + pivot, &angle, &scale_step); stabilization_calculate_data(ctx, cfra, size, - image_aspect, + aspect, do_compensate, scale_step, translation, + pivot, &tmp_scale, &angle); - - BKE_tracking_stabilization_data_to_mat4(size * image_aspect, - size, - pixel_aspect, - translation, - 1.0f, - angle, - mat); - - si = sinf(angle); - co = cosf(angle); - + /* Compose transformation matrix. */ + /* NOTE: Here we operate in NON-COMPENSATED coordinates, meaning we have + * to construct transformation matrix using proper pivot point. + * Compensation for that will happen later on. + */ + stabilization_data_to_mat4(pixel_aspect, + pivot, + translation, + tmp_scale, + angle, + mat); /* Investigate the transformed border lines for this frame; * find out, where it cuts the original frame. */ - for (i = 0; i < 4; i++) { - int j; - float a[3] = {0.0f, 0.0f, 0.0f}, - b[3] = {0.0f, 0.0f, 0.0f}; - - copy_v2_v2(a, points[i]); - copy_v2_v2(b, points[(i + 1) % 4]); - a[2] = b[2] = 0.0f; - - mul_m4_v3(mat, a); - mul_m4_v3(mat, b); - - for (j = 0; j < 4; j++) { - float point[3] = {points[j][0], points[j][1], 0.0f}; - float v1[3], v2[3]; - - sub_v3_v3v3(v1, b, a); - sub_v3_v3v3(v2, point, a); - - if (cross_v2v2(v1, v2) >= 0.0f) { - const float rot_dx[4][2] = {{1.0f, 0.0f}, - {0.0f, -1.0f}, - {-1.0f, 0.0f}, - {0.0f, 1.0f}}; - const float rot_dy[4][2] = {{0.0f, 1.0f}, - {1.0f, 0.0f}, - {0.0f, -1.0f}, - {-1.0f, 0.0f}}; - - float dx = translation[0] * rot_dx[j][0] + - translation[1] * rot_dx[j][1], - dy = translation[0] * rot_dy[j][0] + - translation[1] * rot_dy[j][1]; - - float w, h, E, F, G, H, I, J, K, S; - - if (j % 2) { - w = (float)size / 2.0f; - h = image_aspect*size / 2.0f; - } - else { - w = image_aspect*size / 2.0f; - h = (float)size / 2.0f; - } - - E = -w * co + h * si; - F = -h * co - w * si; - - if ((i % 2) == (j % 2)) { - G = -w * co - h * si; - H = h * co - w * si; - } - else { - G = w * co + h * si; - H = -h * co + w * si; - } - - I = F - H; - J = G - E; - K = G * F - E * H; - - S = (dx * I + dy * J + K) / (-w * I - h * J); - - scale = min_ff(scale, S); + for (int edge_index = 0; edge_index < 4; edge_index++) { + /* Calculate coordinates of stabilized frame edge points. + * Use matrix multiplication here so we operate in homogeneous + * coordinates. + */ + float stable_edge_p1[3], stable_edge_p2[3]; + copy_v2_v2(stable_edge_p1, points[edge_index]); + copy_v2_v2(stable_edge_p2, points[(edge_index + 1) % 4]); + stable_edge_p1[2] = stable_edge_p2[2] = 0.0f; + mul_m4_v3(mat, stable_edge_p1); + mul_m4_v3(mat, stable_edge_p2); + /* Now we iterate over all original frame corners (we call them + * 'point' here) to see if there's black area between stabilized + * frame edge and original point. + */ + for (int point_index = 0; point_index < 4; point_index++) { + const float point[3] = {points[point_index][0], + points[point_index][1], + 0.0f}; + /* Calculate vector which goes from first edge point to + * second one. + */ + float stable_edge_vec[3]; + sub_v3_v3v3(stable_edge_vec, stable_edge_p2, stable_edge_p1); + /* Calculate vector which connects current frame point to + * first edge point. + */ + float point_to_edge_start_vec[3]; + sub_v3_v3v3(point_to_edge_start_vec, point, stable_edge_p1); + /* Use this two vectors to check whether frame point is inside + * of the stabilized frame or not. + * If the point is inside, there is no black area happening + * and no scaling required for it. + */ + if (cross_v2v2(stable_edge_vec, point_to_edge_start_vec) >= 0.0f) { + /* We are scaling around motion-compensated pivot point. */ + float scale_pivot[2]; + add_v2_v2v2(scale_pivot, pivot, translation); + /* Calculate line which goes via `point` and parallel to + * the stabilized frame edge. This line is coming via + * `point` and `point2` at the end. + */ + float point2[2]; + add_v2_v2v2(point2, point, stable_edge_vec); + /* Calculate actual distance between pivot point and + * the stabilized frame edge. Then calculate distance + * between pivot point and line which goes via actual + * corner and is parallel to the edge. + * + * Dividing one by another will give us required scale + * factor to get rid of black areas. + */ + float real_dist = dist_to_line_v2(scale_pivot, + stable_edge_p1, + stable_edge_p2); + float required_dist = dist_to_line_v2(scale_pivot, + point, + point2); + const float S = required_dist / real_dist; + scale = max_ff(scale, S); } } } } - - stab->scale = scale; - if (stab->maxscale > 0.0f) { - stab->scale = max_ff(stab->scale, 1.0f / stab->maxscale); + scale = min_ff(scale, stab->maxscale); } + use_values_from_fcurves(ctx, false); + + return scale; } @@ -1218,19 +1396,14 @@ static void stabilization_determine_safe_image_area(StabContext *ctx, * turns out to be tricky, hard to maintain and generally not worth the * effort. Thus we'll re-initialize on every frame. */ -static StabContext *init_stabilizer(MovieClip *clip, int width, int height) +static StabContext *init_stabilizer(MovieClip *clip, int size, float aspect) { - MovieTracking *tracking = &clip->tracking; - MovieTrackingStabilization *stab = &tracking->stabilization; - float pixel_aspect = tracking->camera.pixel_aspect; - float aspect = (float)width * pixel_aspect / height; - int size = height; - StabContext *ctx = initialize_stabilization_working_context(clip); BLI_assert(ctx != NULL); initialize_all_tracks(ctx, aspect); - if (stab->flag & TRACKING_AUTOSCALE) { - stabilization_determine_safe_image_area(ctx, size, aspect); + if (ctx->stab->flag & TRACKING_AUTOSCALE) { + ctx->stab->scale = 1.0; + ctx->stab->scale = calculate_autoscale_factor(ctx, size, aspect); } /* By default, just use values for the global current frame. */ use_values_from_fcurves(ctx, false); @@ -1275,9 +1448,10 @@ void BKE_tracking_stabilization_data_get(MovieClip *clip, float pixel_aspect = tracking->camera.pixel_aspect; float aspect = (float)width * pixel_aspect / height; int size = height; + float pivot[2]; if (enabled) { - ctx = init_stabilizer(clip, width, height); + ctx = init_stabilizer(clip, size, aspect); } if (enabled && @@ -1285,6 +1459,7 @@ void BKE_tracking_stabilization_data_get(MovieClip *clip, framenr, aspect, translation, + pivot, angle, &scale_step)) { @@ -1295,8 +1470,15 @@ void BKE_tracking_stabilization_data_get(MovieClip *clip, do_compensate, scale_step, translation, + pivot, scale, angle); + compensate_rotation_center(size, + aspect, + *angle, + *scale, + pivot, + translation); } else { zero_v2(translation); @@ -1426,47 +1608,30 @@ ImBuf *BKE_tracking_stabilize_frame(MovieClip *clip, void BKE_tracking_stabilization_data_to_mat4(int buffer_width, int buffer_height, float pixel_aspect, - float translation[2], float scale, float angle, - float mat[4][4]) + float translation[2], + float scale, + float angle, + float r_mat[4][4]) { - float translation_mat[4][4], rotation_mat[4][4], scale_mat[4][4], - pivot_mat[4][4], inv_pivot_mat[4][4], - aspect_mat[4][4], inv_aspect_mat[4][4]; - float scale_vector[3] = {scale, scale, 1.0f}; - - float pivot[2]; /* XXX this should be a parameter, it is part of the stabilization data */ - - /* Use the motion compensated image center as rotation center. - * This is not 100% correct, but reflects the way the rotation data was - * measured. Actually we'd need a way to find a good pivot, and use that - * both for averaging and for compensation. + /* Since we cannot receive the real pivot point coordinates (API limitation), + * we perform the rotation/scale around the center of frame. + * Then we correct by an additional shift, which was calculated in + * compensate_rotation_center() and "sneaked in" as additional offset + * in the translation parameter. This works, since translation needs to be + * applied after rotation/scale anyway. Thus effectively the image gets + * rotated around the desired pivot point */ /* TODO(sergey) pivot shouldn't be calculated here, rather received * as a parameter. */ - pivot[0] = pixel_aspect * buffer_width / 2.0f - translation[0]; - pivot[1] = (float)buffer_height / 2.0f - translation[1]; - - unit_m4(translation_mat); - unit_m4(rotation_mat); - unit_m4(scale_mat); - unit_m4(aspect_mat); - unit_m4(pivot_mat); - unit_m4(inv_pivot_mat); - - /* aspect ratio correction matrix */ - aspect_mat[0][0] /= pixel_aspect; - invert_m4_m4(inv_aspect_mat, aspect_mat); - - add_v2_v2(pivot_mat[3], pivot); - sub_v2_v2(inv_pivot_mat[3], pivot); - - size_to_mat4(scale_mat, scale_vector); /* scale matrix */ - add_v2_v2(translation_mat[3], translation); /* translation matrix */ - rotate_m4(rotation_mat, 'Z', angle); /* rotation matrix */ - - /* compose transformation matrix */ - mul_m4_series(mat, aspect_mat, translation_mat, - pivot_mat, scale_mat, rotation_mat, inv_pivot_mat, - inv_aspect_mat); + float pivot[2]; + pivot[0] = 0.5f * pixel_aspect * buffer_width; + pivot[1] = 0.5f * buffer_height; + /* Compose transformation matrix. */ + stabilization_data_to_mat4(pixel_aspect, + pivot, + translation, + scale, + angle, + r_mat); } diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index de1e3187a70..caa9a1e357f 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -158,8 +158,6 @@ World *localize_world(World *wrld) if (wrld->mtex[a]) { wrldn->mtex[a] = MEM_mallocN(sizeof(MTex), "localize_world"); memcpy(wrldn->mtex[a], wrld->mtex[a], sizeof(MTex)); - /* free world decrements */ - id_us_plus((ID *)wrldn->mtex[a]->tex); } } diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 40454a93ec8..dd30f267f78 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -2892,8 +2892,8 @@ void plot_line_v2v2i(const int p1[2], const int p2[2], bool (*callback)(int, int int x2 = p2[0]; int y2 = p2[1]; - signed char ix; - signed char iy; + int ix; + int iy; /* if x1 == x2 or y1 == y2, then it does not matter what we set here */ int delta_x = (x2 > x1 ? ((void)(ix = 1), x2 - x1) : ((void)(ix = -1), x1 - x2)) << 1; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 999616f3865..a476b18eaac 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2705,6 +2705,7 @@ static void lib_link_cachefiles(FileData *fd, Main *bmain) BLI_listbase_clear(&cache_file->object_paths); cache_file->handle = NULL; + cache_file->handle_mutex = NULL; if (cache_file->adt) { lib_link_animdata(fd, &cache_file->id, cache_file->adt); @@ -2715,6 +2716,7 @@ static void lib_link_cachefiles(FileData *fd, Main *bmain) static void direct_link_cachefile(FileData *fd, CacheFile *cache_file) { cache_file->handle = NULL; + cache_file->handle_mutex = NULL; /* relink animdata */ cache_file->adt = newdataadr(fd, cache_file->adt); @@ -4930,6 +4932,9 @@ static void direct_link_object(FileData *fd, Object *ob) */ ob->recalc = 0; + /* XXX This should not be needed - but seems like it can happen in some cases, so for now play safe... */ + ob->proxy_from = NULL; + /* loading saved files with editmode enabled works, but for undo we like * to stay in object mode during undo presses so keep editmode disabled. * @@ -6309,10 +6314,13 @@ void blo_lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *cursc * since it gets initialized later */ sima->iuser.scene = NULL; - sima->scopes.waveform_1 = NULL; - sima->scopes.waveform_2 = NULL; - sima->scopes.waveform_3 = NULL; - sima->scopes.vecscope = NULL; +#if 0 + /* Those are allocated and freed by space code, no need to handle them here. */ + MEM_SAFE_FREE(sima->scopes.waveform_1); + MEM_SAFE_FREE(sima->scopes.waveform_2); + MEM_SAFE_FREE(sima->scopes.waveform_3); + MEM_SAFE_FREE(sima->scopes.vecscope); +#endif sima->scopes.ok = 0; /* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index 95ea1fd12cf..d7523ea0dfd 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -90,9 +90,6 @@ static void migrate_single_rot_stabilization_track_settings(MovieTrackingStabili } } stab->rot_track = NULL; /* this field is now ignored */ - - /* by default show the track lists expanded, to improve "discoverability" */ - stab->flag |= TRACKING_SHOW_STAB_TRACKS; } static void do_version_constraints_radians_degrees_270_1(ListBase *lb) @@ -1221,12 +1218,20 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) /* set color attributes */ copy_v4_v4(palcolor->color, gpl->color); copy_v4_v4(palcolor->fill, gpl->fill); - palcolor->flag = gpl->flag; + + if (gpl->flag & GP_LAYER_HIDE) palcolor->flag |= PC_COLOR_HIDE; + if (gpl->flag & GP_LAYER_LOCKED) palcolor->flag |= PC_COLOR_LOCKED; + if (gpl->flag & GP_LAYER_ONIONSKIN) palcolor->flag |= PC_COLOR_ONIONSKIN; + if (gpl->flag & GP_LAYER_VOLUMETRIC) palcolor->flag |= PC_COLOR_VOLUMETRIC; + if (gpl->flag & GP_LAYER_HQ_FILL) palcolor->flag |= PC_COLOR_HQ_FILL; + /* set layer opacity to 1 */ gpl->opacity = 1.0f; + /* set tint color */ ARRAY_SET_ITEMS(gpl->tintcolor, 0.0f, 0.0f, 0.0f, 0.0f); - + + /* flush relevant layer-settings to strokes */ for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { /* set stroke to palette and force recalculation */ @@ -1234,14 +1239,15 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) gps->palcolor = NULL; gps->flag |= GP_STROKE_RECALC_COLOR; gps->thickness = gpl->thickness; + /* set alpha strength to 1 */ for (int i = 0; i < gps->totpoints; i++) { gps->points[i].strength = 1.0f; } - } } } + /* set thickness to 0 (now it is a factor to override stroke thickness) */ gpl->thickness = 0.0f; } @@ -1254,7 +1260,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) /* ------- end of grease pencil initialization --------------- */ } - { + if (!MAIN_VERSION_ATLEAST(main, 278, 0)) { if (!DNA_struct_elem_find(fd->filesdna, "MovieTrackingTrack", "float", "weight_stab")) { MovieClip *clip; for (clip = main->movieclip.first; clip; clip = clip->id.next) { @@ -1281,13 +1287,20 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) for (clip = main->movieclip.first; clip != NULL; clip = clip->id.next) { if (clip->tracking.stabilization.rot_track) { migrate_single_rot_stabilization_track_settings(&clip->tracking.stabilization); - if (!clip->tracking.stabilization.scale) { - /* ensure init. - * Was previously used for autoscale only, - * now used always (as "target scale") */ - clip->tracking.stabilization.scale = 1.0f; - } } + if (clip->tracking.stabilization.scale == 0.0f) { + /* ensure init. + * Was previously used for autoscale only, + * now used always (as "target scale") */ + clip->tracking.stabilization.scale = 1.0f; + } + /* blender prefers 1-based frame counting; + * thus using frame 1 as reference typically works best */ + clip->tracking.stabilization.anchor_frame = 1; + /* by default show the track lists expanded, to improve "discoverability" */ + clip->tracking.stabilization.flag |= TRACKING_SHOW_STAB_TRACKS; + /* deprecated, not used anymore */ + clip->tracking.stabilization.ok = false; } } } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 12389dc1e7f..8e458d14f1f 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -49,7 +49,7 @@ * <bh.len> int, len data after BHead * <bh.old> void, old pointer * <bh.SDNAnr> int - * <bh.nr> int, in case of array: amount of structs + * <bh.nr> int, in case of array: number of structs * data * ... * ... diff --git a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp index 76afedf4b2a..ca3c5f7b069 100644 --- a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp +++ b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp @@ -20,6 +20,8 @@ * Monique Dewanchand */ +#include <stdlib.h> + #include "COM_DoubleEdgeMaskOperation.h" #include "BLI_math.h" #include "DNA_node_types.h" @@ -1151,12 +1153,13 @@ void DoubleEdgeMaskOperation::doDoubleEdgeMask(float *imask, float *omask, float if (true) { // if both input sockets have some data coming in... - t = (this->getWidth() * this->getHeight()) - 1; // determine size of the frame + rw = this->getWidth(); // width of a row of pixels + t = (rw * this->getHeight()) - 1; // determine size of the frame + memset(res, 0, sizeof(float) * (t + 1)); // clear output buffer (not all pixels will be written later) lres = (unsigned int *)res; // unsigned int pointer to output buffer (for bit level ops) limask = (unsigned int *)imask; // unsigned int pointer to input mask (for bit level ops) lomask = (unsigned int *)omask; // unsigned int pointer to output mask (for bit level ops) - rw = this->getWidth(); // width of a row of pixels /* diff --git a/source/blender/depsgraph/intern/eval/deg_eval.cc b/source/blender/depsgraph/intern/eval/deg_eval.cc index c3fd202d832..f8cca5393e2 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval.cc @@ -304,7 +304,7 @@ static void schedule_node(TaskPool *pool, Depsgraph *graph, unsigned int layers, deg_task_run_func, node, false, - TASK_PRIORITY_LOW, + TASK_PRIORITY_HIGH, thread_id); } } diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index f9e1504b3ce..7c6c25bef0d 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -33,7 +33,7 @@ #include "intern/eval/deg_eval_flush.h" // TODO(sergey): Use some sort of wrapper. -#include <queue> +#include <deque> extern "C" { #include "DNA_object_types.h" @@ -71,7 +71,7 @@ void lib_id_recalc_data_tag(Main *bmain, ID *id) } /* namespace */ -typedef std::queue<OperationDepsNode *> FlushQueue; +typedef std::deque<OperationDepsNode *> FlushQueue; static void flush_init_func(void *data_v, int i) { @@ -122,20 +122,60 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) */ GSET_FOREACH_BEGIN(OperationDepsNode *, node, graph->entry_tags) { - queue.push(node); + queue.push_back(node); node->scheduled = true; } GSET_FOREACH_END(); + int num_flushed_objects = 0; while (!queue.empty()) { OperationDepsNode *node = queue.front(); - queue.pop(); + queue.pop_front(); for (;;) { node->flag |= DEPSOP_FLAG_NEEDS_UPDATE; ComponentDepsNode *comp_node = node->owner; IDDepsNode *id_node = comp_node->owner; + + ID *id = id_node->id; + if(id_node->done == 0) { + deg_editors_id_update(bmain, id); + lib_id_recalc_tag(bmain, id); + /* TODO(sergey): For until we've got proper data nodes in the graph. */ + lib_id_recalc_data_tag(bmain, id); + } + + if(comp_node->done == 0) { + Object *object = NULL; + if (GS(id->name) == ID_OB) { + object = (Object *)id; + if(id_node->done == 0) { + ++num_flushed_objects; + } + } + foreach (OperationDepsNode *op, comp_node->operations) { + op->flag |= DEPSOP_FLAG_NEEDS_UPDATE; + } + if (object != NULL) { + /* This code is used to preserve those areas which does + * direct object update, + * + * Plus it ensures visibility changes and relations and + * layers visibility update has proper flags to work with. + */ + if (comp_node->type == DEPSNODE_TYPE_ANIMATION) { + object->recalc |= OB_RECALC_TIME; + } + else if (comp_node->type == DEPSNODE_TYPE_TRANSFORM) { + object->recalc |= OB_RECALC_OB; + } + else { + object->recalc |= OB_RECALC_DATA; + } + } + } + id_node->done = 1; comp_node->done = 1; @@ -154,7 +194,7 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) foreach (DepsRelation *rel, node->outlinks) { OperationDepsNode *to_node = (OperationDepsNode *)rel->to; if (to_node->scheduled == false) { - queue.push(to_node); + queue.push_front(to_node); to_node->scheduled = true; } } @@ -162,52 +202,7 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) } } } - - GHASH_FOREACH_BEGIN(DEG::IDDepsNode *, id_node, graph->id_hash) - { - if (id_node->done == 1) { - ID *id = id_node->id; - Object *object = NULL; - - if (GS(id->name) == ID_OB) { - object = (Object *)id; - } - - deg_editors_id_update(bmain, id_node->id); - - lib_id_recalc_tag(bmain, id_node->id); - /* TODO(sergey): For until we've got proper data nodes in the graph. */ - lib_id_recalc_data_tag(bmain, id_node->id); - - GHASH_FOREACH_BEGIN(const ComponentDepsNode *, comp_node, id_node->components) - { - if (comp_node->done) { - foreach (OperationDepsNode *op, comp_node->operations) { - op->flag |= DEPSOP_FLAG_NEEDS_UPDATE; - } - if (object != NULL) { - /* This code is used to preserve those areas which does - * direct object update, - * - * Plus it ensures visibility changes and relations and - * layers visibility update has proper flags to work with. - */ - if (comp_node->type == DEPSNODE_TYPE_ANIMATION) { - object->recalc |= OB_RECALC_TIME; - } - else if (comp_node->type == DEPSNODE_TYPE_TRANSFORM) { - object->recalc |= OB_RECALC_OB; - } - else { - object->recalc |= OB_RECALC_DATA; - } - } - } - } - GHASH_FOREACH_END(); - } - } - GHASH_FOREACH_END(); + DEG_DEBUG_PRINTF("Update flushed to %d objects\n", num_flushed_objects); } static void graph_clear_func(void *data_v, int i) diff --git a/source/blender/editors/gpencil/gpencil_data.c b/source/blender/editors/gpencil/gpencil_data.c index 2aa6d30c114..9560ab188a4 100644 --- a/source/blender/editors/gpencil/gpencil_data.c +++ b/source/blender/editors/gpencil/gpencil_data.c @@ -75,9 +75,6 @@ #include "gpencil_intern.h" -/* maximum sizes of gp-session buffer */ -#define GP_STROKE_BUFFER_MAX 5000 - /* ************************************************ */ /* Datablock Operators */ @@ -882,9 +879,9 @@ static int gp_stroke_change_color_exec(bContext *C, wmOperator *UNUSED(op)) continue; /* asign new color (only if different) */ - if (STREQ(gps->colorname, color->info) == false) { + if ((STREQ(gps->colorname, color->info) == false) || (gps->palcolor != color)) { BLI_strncpy(gps->colorname, color->info, sizeof(gps->colorname)); - gps->flag |= GP_STROKE_RECALC_COLOR; + gps->palcolor = color; } } } @@ -965,431 +962,6 @@ void GPENCIL_OT_stroke_lock_color(wmOperatorType *ot) ot->poll = gp_active_layer_poll; } -/* ******************* Apply layer thickness change to Strokes ************************** */ - -static int gp_stroke_apply_thickness_exec(bContext *C, wmOperator *UNUSED(op)) -{ - bGPdata *gpd = ED_gpencil_data_get_active(C); - bGPDlayer *gpl = BKE_gpencil_layer_getactive(gpd); - - /* sanity checks */ - if (ELEM(NULL, gpd, gpl, gpl->frames.first)) - return OPERATOR_CANCELLED; - - /* loop all strokes */ - for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { - for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { - /* Apply thickness */ - gps->thickness = gps->thickness + gpl->thickness; - } - } - /* clear value */ - gpl->thickness = 0.0f; - - /* notifiers */ - WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); - - return OPERATOR_FINISHED; -} - -void GPENCIL_OT_stroke_apply_thickness(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Apply Stroke Thickness"; - ot->idname = "GPENCIL_OT_stroke_apply_thickness"; - ot->description = "Apply the thickness change of the layer to its strokes"; - - /* api callbacks */ - ot->exec = gp_stroke_apply_thickness_exec; - ot->poll = gp_active_layer_poll; -} - -/* ******************* Close Strokes ************************** */ - -enum { - GP_STROKE_CYCLIC_CLOSE = 1, - GP_STROKE_CYCLIC_OPEN = 2, - GP_STROKE_CYCLIC_TOGGLE = 3 -}; - -static int gp_stroke_cyclical_set_exec(bContext *C, wmOperator *op) -{ - bGPdata *gpd = ED_gpencil_data_get_active(C); - const int type = RNA_enum_get(op->ptr, "type"); - - /* sanity checks */ - if (ELEM(NULL, gpd)) - return OPERATOR_CANCELLED; - - /* loop all selected strokes */ - CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers) - { - for (bGPDstroke *gps = gpl->actframe->strokes.last; gps; gps = gps->prev) { - bGPDpalettecolor *palcolor = gps->palcolor; - - /* skip strokes that are not selected or invalid for current view */ - if (((gps->flag & GP_STROKE_SELECT) == 0) || ED_gpencil_stroke_can_use(C, gps) == false) - continue; - /* skip hidden or locked colors */ - if (!palcolor || (palcolor->flag & PC_COLOR_HIDE) || (palcolor->flag & PC_COLOR_LOCKED)) - continue; - - switch (type) { - case GP_STROKE_CYCLIC_CLOSE: - /* Close all (enable) */ - gps->flag |= GP_STROKE_CYCLIC; - break; - case GP_STROKE_CYCLIC_OPEN: - /* Open all (disable) */ - gps->flag &= ~GP_STROKE_CYCLIC; - break; - case GP_STROKE_CYCLIC_TOGGLE: - /* Just toggle flag... */ - gps->flag ^= GP_STROKE_CYCLIC; - break; - default: - BLI_assert(0); - break; - } - } - } - CTX_DATA_END; - - /* notifiers */ - WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); - - return OPERATOR_FINISHED; -} - -/** - * Similar to #CURVE_OT_cyclic_toggle or #MASK_OT_cyclic_toggle, but with - * option to force opened/closed strokes instead of just toggle behavior. - */ -void GPENCIL_OT_stroke_cyclical_set(wmOperatorType *ot) -{ - static EnumPropertyItem cyclic_type[] = { - {GP_STROKE_CYCLIC_CLOSE, "CLOSE", 0, "Close all", ""}, - {GP_STROKE_CYCLIC_OPEN, "OPEN", 0, "Open all", ""}, - {GP_STROKE_CYCLIC_TOGGLE, "TOGGLE", 0, "Toggle", ""}, - {0, NULL, 0, NULL, NULL} - }; - - /* identifiers */ - ot->name = "Set Cyclical State"; - ot->idname = "GPENCIL_OT_stroke_cyclical_set"; - ot->description = "Close or open the selected stroke adding an edge from last to first point"; - - /* api callbacks */ - ot->exec = gp_stroke_cyclical_set_exec; - ot->poll = gp_active_layer_poll; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - ot->prop = RNA_def_enum(ot->srna, "type", cyclic_type, GP_STROKE_CYCLIC_TOGGLE, "Type", ""); -} - -/* ******************* Stroke join ************************** */ - -/* Helper: flip stroke */ -static void gpencil_flip_stroke(bGPDstroke *gps) -{ - bGPDspoint pt, *point, *point2; - int end = gps->totpoints - 1; - - for (int i = 0; i < gps->totpoints / 2; i++) { - /* save first point */ - point = &gps->points[i]; - pt.x = point->x; - pt.y = point->y; - pt.z = point->z; - pt.flag = point->flag; - pt.pressure = point->pressure; - pt.strength = point->strength; - pt.time = point->time; - - /* replace first point with last point */ - point2 = &gps->points[end]; - point->x = point2->x; - point->y = point2->y; - point->z = point2->z; - point->flag = point2->flag; - point->pressure = point2->pressure; - point->strength = point2->strength; - point->time = point2->time; - - /* replace last point with first saved before */ - point = &gps->points[end]; - point->x = pt.x; - point->y = pt.y; - point->z = pt.z; - point->flag = pt.flag; - point->pressure = pt.pressure; - point->strength = pt.strength; - point->time = pt.time; - - end--; - } -} - -/* Helper: copy point between strokes */ -static void gpencil_stroke_copy_point(bGPDstroke *gps, bGPDspoint *point, float delta[3], - float pressure, float strength, float deltatime) -{ - bGPDspoint *newpoint; - - gps->points = MEM_reallocN(gps->points, sizeof(bGPDspoint) * (gps->totpoints + 1)); - gps->totpoints++; - - newpoint = &gps->points[gps->totpoints - 1]; - newpoint->x = point->x * delta[0]; - newpoint->y = point->y * delta[1]; - newpoint->z = point->z * delta[2]; - newpoint->flag = point->flag; - newpoint->pressure = pressure; - newpoint->strength = strength; - newpoint->time = point->time + deltatime; -} - -/* Helper: join two strokes using the shortest distance (reorder stroke if necessary ) */ -static void gpencil_stroke_join_strokes(bGPDstroke *gps_a, bGPDstroke *gps_b, const bool leave_gaps) -{ - bGPDspoint point, *pt; - int i; - float delta[3] = {1.0f, 1.0f, 1.0f}; - float deltatime = 0.0f; - - /* sanity checks */ - if (ELEM(NULL, gps_a, gps_b)) - return; - - if ((gps_a->totpoints == 0) || (gps_b->totpoints == 0)) - return; - - /* define start and end points of each stroke */ - float sa[3], sb[3], ea[3], eb[3]; - pt = &gps_a->points[0]; - copy_v3_v3(sa, &pt->x); - - pt = &gps_a->points[gps_a->totpoints - 1]; - copy_v3_v3(ea, &pt->x); - - pt = &gps_b->points[0]; - copy_v3_v3(sb, &pt->x); - - pt = &gps_b->points[gps_b->totpoints - 1]; - copy_v3_v3(eb, &pt->x); - - /* review if need flip stroke B */ - float ea_sb = len_squared_v3v3(ea, sb); - float ea_eb = len_squared_v3v3(ea, eb); - /* flip if distance to end point is shorter */ - if (ea_eb < ea_sb) { - gpencil_flip_stroke(gps_b); - } - - /* don't visibly link the first and last points? */ - if (leave_gaps) { - /* 1st: add one tail point to start invisible area */ - point = gps_a->points[gps_a->totpoints - 1]; - deltatime = point.time; - gpencil_stroke_copy_point(gps_a, &point, delta, 0.0f, 0.0f, 0.0f); - - /* 2nd: add one head point to finish invisible area */ - point = gps_b->points[0]; - gpencil_stroke_copy_point(gps_a, &point, delta, 0.0f, 0.0f, deltatime); - } - - /* 3rd: add all points */ - for (i = 0, pt = gps_b->points; i < gps_b->totpoints && pt; i++, pt++) { - /* check if still room in buffer */ - if (gps_a->totpoints <= GP_STROKE_BUFFER_MAX - 2) { - gpencil_stroke_copy_point(gps_a, pt, delta, pt->pressure, pt->strength, deltatime); - } - } -} - -static int gp_stroke_join_exec(bContext *C, wmOperator *op) -{ - bGPdata *gpd = ED_gpencil_data_get_active(C); - bGPDlayer *activegpl = BKE_gpencil_layer_getactive(gpd); - bGPDstroke *gps, *gpsn; - bGPDpalette *palette = BKE_gpencil_palette_getactive(gpd); - bGPDpalettecolor *palcolor = BKE_gpencil_palettecolor_getactive(palette); - - bGPDframe *gpf_a = NULL; - bGPDstroke *stroke_a = NULL; - bGPDstroke *stroke_b = NULL; - bGPDstroke *new_stroke = NULL; - - const int type = RNA_enum_get(op->ptr, "type"); - const bool leave_gaps = RNA_boolean_get(op->ptr, "leave_gaps"); - - /* sanity checks */ - if (ELEM(NULL, gpd)) - return OPERATOR_CANCELLED; - - if (activegpl->flag & GP_LAYER_LOCKED) - return OPERATOR_CANCELLED; - - BLI_assert(ELEM(type, GP_STROKE_JOIN, GP_STROKE_JOINCOPY)); - - - /* read all selected strokes */ - bool first = false; - CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers) - { - bGPDframe *gpf = gpl->actframe; - for (gps = gpf->strokes.first; gps; gps = gpsn) { - gpsn = gps->next; - if (gps->flag & GP_STROKE_SELECT) { - /* skip strokes that are invalid for current view */ - if (ED_gpencil_stroke_can_use(C, gps) == false) { - continue; - } - /* check if the color is editable */ - if (ED_gpencil_stroke_color_use(gpl, gps) == false) { - continue; - } - /* to join strokes, cyclic must be disabled */ - gps->flag &= ~GP_STROKE_CYCLIC; - /* saves first frame and stroke */ - if (!first) { - first = true; - gpf_a = gpf; - stroke_a = gps; - } - else { - stroke_b = gps; - /* create a new stroke if was not created before (only created if something to join) */ - if (new_stroke == NULL) { - new_stroke = MEM_dupallocN(stroke_a); - new_stroke->points = MEM_dupallocN(stroke_a->points); - new_stroke->triangles = NULL; - new_stroke->tot_triangles = 0; - new_stroke->flag |= GP_STROKE_RECALC_CACHES; - /* if new, set current color */ - if (type == GP_STROKE_JOINCOPY) { - new_stroke->palcolor = palcolor; - BLI_strncpy(new_stroke->colorname, palcolor->info, sizeof(new_stroke->colorname)); - new_stroke->flag |= GP_STROKE_RECALC_COLOR; - } - } - /* join new_stroke and stroke B. New stroke will contain all the previous data */ - gpencil_stroke_join_strokes(new_stroke, stroke_b, leave_gaps); - - /* if join only, delete old strokes */ - if (type == GP_STROKE_JOIN) { - if (stroke_a) { - BLI_insertlinkbefore(&gpf_a->strokes, stroke_a, new_stroke); - BLI_remlink(&gpf->strokes, stroke_a); - BKE_gpencil_free_stroke(stroke_a); - stroke_a = NULL; - } - if (stroke_b) { - BLI_remlink(&gpf->strokes, stroke_b); - BKE_gpencil_free_stroke(stroke_b); - stroke_b = NULL; - } - } - } - } - } - } - CTX_DATA_END; - /* add new stroke if was not added before */ - if (type == GP_STROKE_JOINCOPY) { - if (new_stroke) { - /* Add a new frame if needed */ - if (activegpl->actframe == NULL) - activegpl->actframe = BKE_gpencil_frame_addnew(activegpl, gpf_a->framenum); - - BLI_addtail(&activegpl->actframe->strokes, new_stroke); - } - } - - /* notifiers */ - WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); - - return OPERATOR_FINISHED; -} - -void GPENCIL_OT_stroke_join(wmOperatorType *ot) -{ - static EnumPropertyItem join_type[] = { - {GP_STROKE_JOIN, "JOIN", 0, "Join", ""}, - {GP_STROKE_JOINCOPY, "JOINCOPY", 0, "Join and Copy", ""}, - {0, NULL, 0, NULL, NULL} - }; - - /* identifiers */ - ot->name = "Join Strokes"; - ot->idname = "GPENCIL_OT_stroke_join"; - ot->description = "Join selected strokes (optionally as new stroke)"; - - /* api callbacks */ - ot->exec = gp_stroke_join_exec; - ot->poll = gp_active_layer_poll; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - ot->prop = RNA_def_enum(ot->srna, "type", join_type, GP_STROKE_JOIN, "Type", ""); - RNA_def_boolean(ot->srna, "leave_gaps", false, "Leave Gaps", "Leave gaps between joined strokes instead of linking them"); -} - -/* ******************* Stroke flip ************************** */ - -static int gp_stroke_flip_exec(bContext *C, wmOperator *UNUSED(op)) -{ - bGPdata *gpd = ED_gpencil_data_get_active(C); - - /* sanity checks */ - if (ELEM(NULL, gpd)) - return OPERATOR_CANCELLED; - - /* read all selected strokes */ - CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers) - { - bGPDframe *gpf = gpl->actframe; - for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { - if (gps->flag & GP_STROKE_SELECT) { - /* skip strokes that are invalid for current view */ - if (ED_gpencil_stroke_can_use(C, gps) == false) { - continue; - } - /* check if the color is editable */ - if (ED_gpencil_stroke_color_use(gpl, gps) == false) { - continue; - } - /* flip stroke */ - gpencil_flip_stroke(gps); - } - } - } - CTX_DATA_END; - - /* notifiers */ - WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); - - return OPERATOR_FINISHED; -} - -void GPENCIL_OT_stroke_flip(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Flip Stroke"; - ot->idname = "GPENCIL_OT_stroke_flip"; - ot->description = "Change direction of the points of the selected strokes"; - - /* api callbacks */ - ot->exec = gp_stroke_flip_exec; - ot->poll = gp_active_layer_poll; - - /* flags */ - ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; -} - /* ************************************************ */ /* Drawing Brushes Operators */ diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index e58178bf2a7..9f700e8716c 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -72,6 +72,7 @@ #include "ED_gpencil.h" #include "ED_object.h" +#include "ED_screen.h" #include "ED_view3d.h" #include "gpencil_intern.h" @@ -431,16 +432,18 @@ void GPENCIL_OT_copy(wmOperatorType *ot) static int gp_strokes_paste_poll(bContext *C) { - /* 1) Must have GP layer to paste to... + /* 1) Must have GP datablock to paste to + * - We don't need to have an active layer though, as that can easily get added + * - If the active layer is locked, we can't paste there, but that should prompt a warning instead * 2) Copy buffer must at least have something (though it may be the wrong sort...) */ - return (CTX_data_active_gpencil_layer(C) != NULL) && (!BLI_listbase_is_empty(&gp_strokes_copypastebuf)); + return (ED_gpencil_data_get_active(C) != NULL) && (!BLI_listbase_is_empty(&gp_strokes_copypastebuf)); } -enum { +typedef enum eGP_PasteMode { GP_COPY_ONLY = -1, GP_COPY_MERGE = 1 -}; +} eGP_PasteMode; static int gp_strokes_paste_exec(bContext *C, wmOperator *op) { @@ -448,9 +451,9 @@ static int gp_strokes_paste_exec(bContext *C, wmOperator *op) bGPdata *gpd = ED_gpencil_data_get_active(C); bGPDlayer *gpl = CTX_data_active_gpencil_layer(C); /* only use active for copy merge */ bGPDframe *gpf; - - int type = RNA_enum_get(op->ptr, "type"); - + + eGP_PasteMode type = RNA_enum_get(op->ptr, "type"); + /* check for various error conditions */ if (gpd == NULL) { BKE_report(op->reports, RPT_ERROR, "No Grease Pencil data"); @@ -507,39 +510,37 @@ static int gp_strokes_paste_exec(bContext *C, wmOperator *op) } CTX_DATA_END; - /* Ensure we have a frame to draw into - * NOTE: Since this is an op which creates strokes, - * we are obliged to add a new frame if one - * doesn't exist already - */ - - bGPDstroke *gps; - /* Copy each stroke into the layer */ - for (gps = gp_strokes_copypastebuf.first; gps; gps = gps->next) { - if (ED_gpencil_stroke_can_use(C, gps)) { - /* need to verify if layer exist nad frame */ - if (type != GP_COPY_MERGE) { - gpl = BLI_findstring(&gpd->layers, gps->tmp_layerinfo, offsetof(bGPDlayer, info)); - if (gpl == NULL) { - /* no layer - use active (only if layer deleted before paste) */ - gpl = CTX_data_active_gpencil_layer(C); - } - } - gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true); - if (gpf) { - bGPDstroke *new_stroke = MEM_dupallocN(gps); - new_stroke->tmp_layerinfo[0] = '\0'; - - new_stroke->points = MEM_dupallocN(gps->points); - - new_stroke->flag |= GP_STROKE_RECALC_CACHES; - new_stroke->triangles = NULL; - - new_stroke->next = new_stroke->prev = NULL; - BLI_addtail(&gpf->strokes, new_stroke); + for (bGPDstroke *gps = gp_strokes_copypastebuf.first; gps; gps = gps->next) { + if (ED_gpencil_stroke_can_use(C, gps)) { + /* Need to verify if layer exists */ + if (type != GP_COPY_MERGE) { + gpl = BLI_findstring(&gpd->layers, gps->tmp_layerinfo, offsetof(bGPDlayer, info)); + if (gpl == NULL) { + /* no layer - use active (only if layer deleted before paste) */ + gpl = CTX_data_active_gpencil_layer(C); } } + + /* Ensure we have a frame to draw into + * NOTE: Since this is an op which creates strokes, + * we are obliged to add a new frame if one + * doesn't exist already + */ + gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true); + if (gpf) { + bGPDstroke *new_stroke = MEM_dupallocN(gps); + new_stroke->tmp_layerinfo[0] = '\0'; + + new_stroke->points = MEM_dupallocN(gps->points); + + new_stroke->flag |= GP_STROKE_RECALC_CACHES; + new_stroke->triangles = NULL; + + new_stroke->next = new_stroke->prev = NULL; + BLI_addtail(&gpf->strokes, new_stroke); + } } + } /* updates */ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); @@ -554,7 +555,7 @@ void GPENCIL_OT_paste(wmOperatorType *ot) {GP_COPY_MERGE, "MERGE", 0, "Merge", ""}, {0, NULL, 0, NULL, NULL} }; - + /* identifiers */ ot->name = "Paste Strokes"; ot->idname = "GPENCIL_OT_paste"; @@ -566,7 +567,8 @@ void GPENCIL_OT_paste(wmOperatorType *ot) /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - + + /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", copy_type, 0, "Type", ""); } @@ -1188,40 +1190,35 @@ static int gp_snap_poll(bContext *C) static int gp_snap_to_grid(bContext *C, wmOperator *UNUSED(op)) { + bGPdata *gpd = ED_gpencil_data_get_active(C); RegionView3D *rv3d = CTX_wm_region_data(C); const float gridf = rv3d->gridview; - bGPdata *gpd = ED_gpencil_data_get_active(C); - float diff_mat[4][4]; - for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { /* only editable and visible layers are considered */ if (gpencil_layer_is_editable(gpl) && (gpl->actframe != NULL)) { - + bGPDframe *gpf = gpl->actframe; + float diff_mat[4][4]; + /* calculate difference matrix if parent object */ if (gpl->parent != NULL) { ED_gpencil_parent_location(gpl, diff_mat); } - - bGPDframe *gpf = gpl->actframe; - bGPDstroke *gps; - for (gps = gpf->strokes.first; gps; gps = gps->next) { + + for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { + bGPDspoint *pt; + int i; + /* skip strokes that are invalid for current view */ if (ED_gpencil_stroke_can_use(C, gps) == false) continue; /* check if the color is editable */ - if (ED_gpencil_stroke_color_use(gpl, gps) == false) { + if (ED_gpencil_stroke_color_use(gpl, gps) == false) continue; - } - - bGPDspoint *pt; - int i; - - // TOOD: if entire stroke is selected, offset entire stroke by same amount? - + + // TODO: if entire stroke is selected, offset entire stroke by same amount? for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) { - - /* only if point is selected.. */ + /* only if point is selected */ if (pt->flag & GP_SPOINT_SELECT) { if (gpl->parent == NULL) { pt->x = gridf * floorf(0.5f + pt->x / gridf); @@ -1232,19 +1229,17 @@ static int gp_snap_to_grid(bContext *C, wmOperator *UNUSED(op)) /* apply parent transformations */ float fpt[3]; mul_v3_m4v3(fpt, diff_mat, &pt->x); - + fpt[0] = gridf * floorf(0.5f + fpt[0] / gridf); fpt[1] = gridf * floorf(0.5f + fpt[1] / gridf); fpt[2] = gridf * floorf(0.5f + fpt[2] / gridf); - + /* return data */ copy_v3_v3(&pt->x, fpt); gp_apply_parent_point(gpl, pt); } - } } - } } } @@ -1272,49 +1267,46 @@ void GPENCIL_OT_snap_to_grid(wmOperatorType *ot) static int gp_snap_to_cursor(bContext *C, wmOperator *op) { + bGPdata *gpd = ED_gpencil_data_get_active(C); + Scene *scene = CTX_data_scene(C); View3D *v3d = CTX_wm_view3d(C); - + const bool use_offset = RNA_boolean_get(op->ptr, "use_offset"); const float *cursor_global = ED_view3d_cursor3d_get(scene, v3d); - - bGPdata *gpd = ED_gpencil_data_get_active(C); - float diff_mat[4][4]; - + for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { /* only editable and visible layers are considered */ if (gpencil_layer_is_editable(gpl) && (gpl->actframe != NULL)) { - + bGPDframe *gpf = gpl->actframe; + float diff_mat[4][4]; + /* calculate difference matrix if parent object */ if (gpl->parent != NULL) { ED_gpencil_parent_location(gpl, diff_mat); } - - bGPDframe *gpf = gpl->actframe; - bGPDstroke *gps; - for (gps = gpf->strokes.first; gps; gps = gps->next) { + + for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { + bGPDspoint *pt; + int i; + /* skip strokes that are invalid for current view */ if (ED_gpencil_stroke_can_use(C, gps) == false) continue; /* check if the color is editable */ - if (ED_gpencil_stroke_color_use(gpl, gps) == false) { + if (ED_gpencil_stroke_color_use(gpl, gps) == false) continue; - } - - bGPDspoint *pt; - int i; - /* only continue if this stroke is selected (editable doesn't guarantee this)... */ if ((gps->flag & GP_STROKE_SELECT) == 0) continue; - + if (use_offset) { float offset[3]; - + /* compute offset from first point of stroke to cursor */ /* TODO: Allow using midpoint instead? */ sub_v3_v3v3(offset, cursor_global, &gps->points->x); - + /* apply offset to all points in the stroke */ for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) { add_v3_v3(&pt->x, offset); @@ -1331,9 +1323,8 @@ static int gp_snap_to_cursor(bContext *C, wmOperator *op) } } } - - } + } } @@ -1364,6 +1355,8 @@ void GPENCIL_OT_snap_to_cursor(wmOperatorType *ot) static int gp_snap_cursor_to_sel(bContext *C, wmOperator *UNUSED(op)) { + bGPdata *gpd = ED_gpencil_data_get_active(C); + Scene *scene = CTX_data_scene(C); View3D *v3d = CTX_wm_view3d(C); @@ -1375,36 +1368,31 @@ static int gp_snap_cursor_to_sel(bContext *C, wmOperator *UNUSED(op)) INIT_MINMAX(min, max); /* calculate midpoints from selected points */ - bGPdata *gpd = ED_gpencil_data_get_active(C); - float diff_mat[4][4]; - for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { /* only editable and visible layers are considered */ if (gpencil_layer_is_editable(gpl) && (gpl->actframe != NULL)) { - + bGPDframe *gpf = gpl->actframe; + float diff_mat[4][4]; + /* calculate difference matrix if parent object */ if (gpl->parent != NULL) { ED_gpencil_parent_location(gpl, diff_mat); } - - bGPDframe *gpf = gpl->actframe; - bGPDstroke *gps; - for (gps = gpf->strokes.first; gps; gps = gps->next) { + + for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { + bGPDspoint *pt; + int i; + /* skip strokes that are invalid for current view */ if (ED_gpencil_stroke_can_use(C, gps) == false) continue; /* check if the color is editable */ - if (ED_gpencil_stroke_color_use(gpl, gps) == false) { + if (ED_gpencil_stroke_color_use(gpl, gps) == false) continue; - } - - bGPDspoint *pt; - int i; - /* only continue if this stroke is selected (editable doesn't guarantee this)... */ if ((gps->flag & GP_STROKE_SELECT) == 0) continue; - + for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) { if (pt->flag & GP_SPOINT_SELECT) { if (gpl->parent == NULL) { @@ -1415,14 +1403,14 @@ static int gp_snap_cursor_to_sel(bContext *C, wmOperator *UNUSED(op)) /* apply parent transformations */ float fpt[3]; mul_v3_m4v3(fpt, diff_mat, &pt->x); - + add_v3_v3(centroid, fpt); minmax_v3v3_v3(min, max, fpt); } count++; } } - + } } } @@ -1455,5 +1443,529 @@ void GPENCIL_OT_snap_cursor_to_selected(wmOperatorType *ot) ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } +/* ******************* Apply layer thickness change to strokes ************************** */ + +static int gp_stroke_apply_thickness_exec(bContext *C, wmOperator *UNUSED(op)) +{ + bGPdata *gpd = ED_gpencil_data_get_active(C); + bGPDlayer *gpl = BKE_gpencil_layer_getactive(gpd); + + /* sanity checks */ + if (ELEM(NULL, gpd, gpl, gpl->frames.first)) + return OPERATOR_CANCELLED; + + /* loop all strokes */ + for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { + for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { + /* Apply thickness */ + gps->thickness = gps->thickness + gpl->thickness; + } + } + /* clear value */ + gpl->thickness = 0.0f; + + /* notifiers */ + WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); + + return OPERATOR_FINISHED; +} + +void GPENCIL_OT_stroke_apply_thickness(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Apply Stroke Thickness"; + ot->idname = "GPENCIL_OT_stroke_apply_thickness"; + ot->description = "Apply the thickness change of the layer to its strokes"; + + /* api callbacks */ + ot->exec = gp_stroke_apply_thickness_exec; + ot->poll = gp_active_layer_poll; +} + +/* ******************* Close Strokes ************************** */ + +enum { + GP_STROKE_CYCLIC_CLOSE = 1, + GP_STROKE_CYCLIC_OPEN = 2, + GP_STROKE_CYCLIC_TOGGLE = 3 +}; + +static int gp_stroke_cyclical_set_exec(bContext *C, wmOperator *op) +{ + bGPdata *gpd = ED_gpencil_data_get_active(C); + const int type = RNA_enum_get(op->ptr, "type"); + + /* sanity checks */ + if (ELEM(NULL, gpd)) + return OPERATOR_CANCELLED; + + /* loop all selected strokes */ + CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers) + { + for (bGPDstroke *gps = gpl->actframe->strokes.last; gps; gps = gps->prev) { + bGPDpalettecolor *palcolor = gps->palcolor; + + /* skip strokes that are not selected or invalid for current view */ + if (((gps->flag & GP_STROKE_SELECT) == 0) || ED_gpencil_stroke_can_use(C, gps) == false) + continue; + /* skip hidden or locked colors */ + if (!palcolor || (palcolor->flag & PC_COLOR_HIDE) || (palcolor->flag & PC_COLOR_LOCKED)) + continue; + + switch (type) { + case GP_STROKE_CYCLIC_CLOSE: + /* Close all (enable) */ + gps->flag |= GP_STROKE_CYCLIC; + break; + case GP_STROKE_CYCLIC_OPEN: + /* Open all (disable) */ + gps->flag &= ~GP_STROKE_CYCLIC; + break; + case GP_STROKE_CYCLIC_TOGGLE: + /* Just toggle flag... */ + gps->flag ^= GP_STROKE_CYCLIC; + break; + default: + BLI_assert(0); + break; + } + } + } + CTX_DATA_END; + + /* notifiers */ + WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); + + return OPERATOR_FINISHED; +} + +/** + * Similar to #CURVE_OT_cyclic_toggle or #MASK_OT_cyclic_toggle, but with + * option to force opened/closed strokes instead of just toggle behavior. + */ +void GPENCIL_OT_stroke_cyclical_set(wmOperatorType *ot) +{ + static EnumPropertyItem cyclic_type[] = { + {GP_STROKE_CYCLIC_CLOSE, "CLOSE", 0, "Close all", ""}, + {GP_STROKE_CYCLIC_OPEN, "OPEN", 0, "Open all", ""}, + {GP_STROKE_CYCLIC_TOGGLE, "TOGGLE", 0, "Toggle", ""}, + {0, NULL, 0, NULL, NULL} + }; + + /* identifiers */ + ot->name = "Set Cyclical State"; + ot->idname = "GPENCIL_OT_stroke_cyclical_set"; + ot->description = "Close or open the selected stroke adding an edge from last to first point"; + + /* api callbacks */ + ot->exec = gp_stroke_cyclical_set_exec; + ot->poll = gp_active_layer_poll; + + /* flags */ + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; + + /* properties */ + ot->prop = RNA_def_enum(ot->srna, "type", cyclic_type, GP_STROKE_CYCLIC_TOGGLE, "Type", ""); +} + +/* ******************* Stroke join ************************** */ + +/* Helper: flip stroke */ +static void gpencil_flip_stroke(bGPDstroke *gps) +{ + int end = gps->totpoints - 1; + + for (int i = 0; i < gps->totpoints / 2; i++) { + bGPDspoint *point, *point2; + bGPDspoint pt; + + /* save first point */ + point = &gps->points[i]; + pt.x = point->x; + pt.y = point->y; + pt.z = point->z; + pt.flag = point->flag; + pt.pressure = point->pressure; + pt.strength = point->strength; + pt.time = point->time; + + /* replace first point with last point */ + point2 = &gps->points[end]; + point->x = point2->x; + point->y = point2->y; + point->z = point2->z; + point->flag = point2->flag; + point->pressure = point2->pressure; + point->strength = point2->strength; + point->time = point2->time; + + /* replace last point with first saved before */ + point = &gps->points[end]; + point->x = pt.x; + point->y = pt.y; + point->z = pt.z; + point->flag = pt.flag; + point->pressure = pt.pressure; + point->strength = pt.strength; + point->time = pt.time; + + end--; + } +} + +/* Helper: copy point between strokes */ +static void gpencil_stroke_copy_point(bGPDstroke *gps, bGPDspoint *point, float delta[3], + float pressure, float strength, float deltatime) +{ + bGPDspoint *newpoint; + + gps->points = MEM_reallocN(gps->points, sizeof(bGPDspoint) * (gps->totpoints + 1)); + gps->totpoints++; + + newpoint = &gps->points[gps->totpoints - 1]; + newpoint->x = point->x * delta[0]; + newpoint->y = point->y * delta[1]; + newpoint->z = point->z * delta[2]; + newpoint->flag = point->flag; + newpoint->pressure = pressure; + newpoint->strength = strength; + newpoint->time = point->time + deltatime; +} + +/* Helper: join two strokes using the shortest distance (reorder stroke if necessary ) */ +static void gpencil_stroke_join_strokes(bGPDstroke *gps_a, bGPDstroke *gps_b, const bool leave_gaps) +{ + bGPDspoint point; + bGPDspoint *pt; + int i; + float delta[3] = {1.0f, 1.0f, 1.0f}; + float deltatime = 0.0f; + + /* sanity checks */ + if (ELEM(NULL, gps_a, gps_b)) + return; + + if ((gps_a->totpoints == 0) || (gps_b->totpoints == 0)) + return; + + /* define start and end points of each stroke */ + float sa[3], sb[3], ea[3], eb[3]; + pt = &gps_a->points[0]; + copy_v3_v3(sa, &pt->x); + + pt = &gps_a->points[gps_a->totpoints - 1]; + copy_v3_v3(ea, &pt->x); + + pt = &gps_b->points[0]; + copy_v3_v3(sb, &pt->x); + + pt = &gps_b->points[gps_b->totpoints - 1]; + copy_v3_v3(eb, &pt->x); + + /* review if need flip stroke B */ + float ea_sb = len_squared_v3v3(ea, sb); + float ea_eb = len_squared_v3v3(ea, eb); + /* flip if distance to end point is shorter */ + if (ea_eb < ea_sb) { + gpencil_flip_stroke(gps_b); + } + + /* don't visibly link the first and last points? */ + if (leave_gaps) { + /* 1st: add one tail point to start invisible area */ + point = gps_a->points[gps_a->totpoints - 1]; + deltatime = point.time; + gpencil_stroke_copy_point(gps_a, &point, delta, 0.0f, 0.0f, 0.0f); + + /* 2nd: add one head point to finish invisible area */ + point = gps_b->points[0]; + gpencil_stroke_copy_point(gps_a, &point, delta, 0.0f, 0.0f, deltatime); + } + + /* 3rd: add all points */ + for (i = 0, pt = gps_b->points; i < gps_b->totpoints && pt; i++, pt++) { + /* check if still room in buffer */ + if (gps_a->totpoints <= GP_STROKE_BUFFER_MAX - 2) { + gpencil_stroke_copy_point(gps_a, pt, delta, pt->pressure, pt->strength, deltatime); + } + } +} + +static int gp_stroke_join_exec(bContext *C, wmOperator *op) +{ + bGPdata *gpd = ED_gpencil_data_get_active(C); + bGPDlayer *activegpl = BKE_gpencil_layer_getactive(gpd); + bGPDstroke *gps, *gpsn; + bGPDpalette *palette = BKE_gpencil_palette_getactive(gpd); + bGPDpalettecolor *palcolor = BKE_gpencil_palettecolor_getactive(palette); + + bGPDframe *gpf_a = NULL; + bGPDstroke *stroke_a = NULL; + bGPDstroke *stroke_b = NULL; + bGPDstroke *new_stroke = NULL; + + const int type = RNA_enum_get(op->ptr, "type"); + const bool leave_gaps = RNA_boolean_get(op->ptr, "leave_gaps"); + + /* sanity checks */ + if (ELEM(NULL, gpd)) + return OPERATOR_CANCELLED; + + if (activegpl->flag & GP_LAYER_LOCKED) + return OPERATOR_CANCELLED; + + BLI_assert(ELEM(type, GP_STROKE_JOIN, GP_STROKE_JOINCOPY)); + + + /* read all selected strokes */ + bool first = false; + CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers) + { + bGPDframe *gpf = gpl->actframe; + for (gps = gpf->strokes.first; gps; gps = gpsn) { + gpsn = gps->next; + if (gps->flag & GP_STROKE_SELECT) { + /* skip strokes that are invalid for current view */ + if (ED_gpencil_stroke_can_use(C, gps) == false) { + continue; + } + /* check if the color is editable */ + if (ED_gpencil_stroke_color_use(gpl, gps) == false) { + continue; + } + + /* to join strokes, cyclic must be disabled */ + gps->flag &= ~GP_STROKE_CYCLIC; + + /* saves first frame and stroke */ + if (!first) { + first = true; + gpf_a = gpf; + stroke_a = gps; + } + else { + stroke_b = gps; + + /* create a new stroke if was not created before (only created if something to join) */ + if (new_stroke == NULL) { + new_stroke = MEM_dupallocN(stroke_a); + new_stroke->points = MEM_dupallocN(stroke_a->points); + new_stroke->triangles = NULL; + new_stroke->tot_triangles = 0; + new_stroke->flag |= GP_STROKE_RECALC_CACHES; + + /* if new, set current color */ + if (type == GP_STROKE_JOINCOPY) { + new_stroke->palcolor = palcolor; + BLI_strncpy(new_stroke->colorname, palcolor->info, sizeof(new_stroke->colorname)); + new_stroke->flag |= GP_STROKE_RECALC_COLOR; + } + } + + /* join new_stroke and stroke B. New stroke will contain all the previous data */ + gpencil_stroke_join_strokes(new_stroke, stroke_b, leave_gaps); + + /* if join only, delete old strokes */ + if (type == GP_STROKE_JOIN) { + if (stroke_a) { + BLI_insertlinkbefore(&gpf_a->strokes, stroke_a, new_stroke); + BLI_remlink(&gpf->strokes, stroke_a); + BKE_gpencil_free_stroke(stroke_a); + stroke_a = NULL; + } + if (stroke_b) { + BLI_remlink(&gpf->strokes, stroke_b); + BKE_gpencil_free_stroke(stroke_b); + stroke_b = NULL; + } + } + } + } + } + } + CTX_DATA_END; + + /* add new stroke if was not added before */ + if (type == GP_STROKE_JOINCOPY) { + if (new_stroke) { + /* Add a new frame if needed */ + if (activegpl->actframe == NULL) + activegpl->actframe = BKE_gpencil_frame_addnew(activegpl, gpf_a->framenum); + + BLI_addtail(&activegpl->actframe->strokes, new_stroke); + } + } + + /* notifiers */ + WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); + + return OPERATOR_FINISHED; +} + +void GPENCIL_OT_stroke_join(wmOperatorType *ot) +{ + static EnumPropertyItem join_type[] = { + {GP_STROKE_JOIN, "JOIN", 0, "Join", ""}, + {GP_STROKE_JOINCOPY, "JOINCOPY", 0, "Join and Copy", ""}, + {0, NULL, 0, NULL, NULL} + }; + + /* identifiers */ + ot->name = "Join Strokes"; + ot->idname = "GPENCIL_OT_stroke_join"; + ot->description = "Join selected strokes (optionally as new stroke)"; + + /* api callbacks */ + ot->exec = gp_stroke_join_exec; + ot->poll = gp_active_layer_poll; + + /* flags */ + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; + + /* properties */ + ot->prop = RNA_def_enum(ot->srna, "type", join_type, GP_STROKE_JOIN, "Type", ""); + RNA_def_boolean(ot->srna, "leave_gaps", false, "Leave Gaps", "Leave gaps between joined strokes instead of linking them"); +} + +/* ******************* Stroke flip ************************** */ + +static int gp_stroke_flip_exec(bContext *C, wmOperator *UNUSED(op)) +{ + bGPdata *gpd = ED_gpencil_data_get_active(C); + + /* sanity checks */ + if (ELEM(NULL, gpd)) + return OPERATOR_CANCELLED; + + /* read all selected strokes */ + CTX_DATA_BEGIN(C, bGPDlayer *, gpl, editable_gpencil_layers) + { + bGPDframe *gpf = gpl->actframe; + if (gpf == NULL) + continue; + + for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { + if (gps->flag & GP_STROKE_SELECT) { + /* skip strokes that are invalid for current view */ + if (ED_gpencil_stroke_can_use(C, gps) == false) { + continue; + } + /* check if the color is editable */ + if (ED_gpencil_stroke_color_use(gpl, gps) == false) { + continue; + } + + /* flip stroke */ + gpencil_flip_stroke(gps); + } + } + } + CTX_DATA_END; + + /* notifiers */ + WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); + + return OPERATOR_FINISHED; +} + +void GPENCIL_OT_stroke_flip(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Flip Stroke"; + ot->idname = "GPENCIL_OT_stroke_flip"; + ot->description = "Change direction of the points of the selected strokes"; + + /* api callbacks */ + ot->exec = gp_stroke_flip_exec; + ot->poll = gp_active_layer_poll; + + /* flags */ + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; +} + +/* ***************** Reproject Strokes ********************** */ + +static int gp_strokes_reproject_poll(bContext *C) +{ + /* 2 Requirements: + * - 1) Editable GP data + * - 2) 3D View only (2D editors don't have projection issues) + */ + return (gp_stroke_edit_poll(C) && ED_operator_view3d_active(C)); +} + +static int gp_strokes_reproject_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Scene *scene = CTX_data_scene(C); + GP_SpaceConversion gsc = {NULL}; + + /* init space conversion stuff */ + gp_point_conversion_init(C, &gsc); + + /* Go through each editable + selected stroke, adjusting each of its points one by one... */ + GP_EDITABLE_STROKES_BEGIN(C, gpl, gps) + { + if (gps->flag & GP_STROKE_SELECT) { + bGPDspoint *pt; + int i; + float inverse_diff_mat[4][4]; + + /* Compute inverse matrix for unapplying parenting once instead of doing per-point */ + /* TODO: add this bit to the iteration macro? */ + if (gpl->parent) { + invert_m4_m4(inverse_diff_mat, diff_mat); + } + + /* Adjust each point */ + for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) { + float xy[2]; + + /* 3D to Screenspace */ + /* Note: We can't use gp_point_to_xy() here because that uses ints for the screenspace + * coordinates, resulting in lost precision, which in turn causes stairstepping + * artifacts in the final points. + */ + if (gpl->parent == NULL) { + gp_point_to_xy_fl(&gsc, gps, pt, &xy[0], &xy[1]); + } + else { + bGPDspoint pt2; + gp_point_to_parent_space(pt, diff_mat, &pt2); + gp_point_to_xy_fl(&gsc, gps, &pt2, &xy[0], &xy[1]); + } + + /* Project screenspace back to 3D space (from current perspective) + * so that all points have been treated the same way + */ + gp_point_xy_to_3d(&gsc, scene, xy, &pt->x); + + /* Unapply parent corrections */ + if (gpl->parent) { + mul_m4_v3(inverse_diff_mat, &pt->x); + } + } + } + } + GP_EDITABLE_STROKES_END; + + WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL); + return OPERATOR_FINISHED; +} + +void GPENCIL_OT_reproject(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Reproject Strokes"; + ot->idname = "GPENCIL_OT_reproject"; + ot->description = "Reproject the selected strokes from the current viewpoint to get all points on the same plane again " + "(e.g. to fix problems from accidental 3D cursor movement, or viewport changes)"; + + /* callbacks */ + ot->exec = gp_strokes_reproject_exec; + ot->poll = gp_strokes_reproject_poll; + + /* flags */ + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; +} /* ************************************************ */ diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h index f37fba4212d..4178d49d652 100644 --- a/source/blender/editors/gpencil/gpencil_intern.h +++ b/source/blender/editors/gpencil/gpencil_intern.h @@ -101,6 +101,18 @@ void gp_point_to_xy(GP_SpaceConversion *settings, struct bGPDstroke *gps, struct int *r_x, int *r_y); /** + * Convert a Grease Pencil coordinate (i.e. can be 2D or 3D) to screenspace (2D) + * + * Just like gp_point_to_xy(), except the resulting coordinates are floats not ints. + * Use this version to solve "stair-step" artifacts which may arise when roundtripping the calculations. + * + * \param[out] r_x The screen-space x-coordinate of the point + * \param[out] r_y The screen-space y-coordinate of the point + */ +void gp_point_to_xy_fl(GP_SpaceConversion *gsc, bGPDstroke *gps, bGPDspoint *pt, + float *r_x, float *r_y); + +/** * Convert point to parent space * * \param pt Original point @@ -183,7 +195,7 @@ void gp_subdivide_stroke(bGPDstroke *gps, const int new_totpoints); /** * Add randomness to stroke * \param gps Stroke data -* \param brsuh Brush data +* \param brush Brush data */ void gp_randomize_stroke(bGPDstroke *gps, bGPDbrush *brush); @@ -199,6 +211,7 @@ EnumPropertyItem *ED_gpencil_brushes_enum_itemf(bContext *C, PointerRNA *UNUSED( /* Enums of GP palettes */ EnumPropertyItem *ED_gpencil_palettes_enum_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free); + /* ***************************************************** */ /* Operator Defines */ @@ -214,6 +227,9 @@ typedef enum eGPencil_PaintModes { GP_PAINTMODE_DRAW_POLY } eGPencil_PaintModes; +/* maximum sizes of gp-session buffer */ +#define GP_STROKE_BUFFER_MAX 5000 + /* stroke editing ----- */ void GPENCIL_OT_editmode_toggle(struct wmOperatorType *ot); @@ -246,6 +262,7 @@ void GPENCIL_OT_snap_to_cursor(struct wmOperatorType *ot); void GPENCIL_OT_snap_cursor_to_selected(struct wmOperatorType *ot); void GPENCIL_OT_snap_cursor_to_center(struct wmOperatorType *ot); +void GPENCIL_OT_reproject(struct wmOperatorType *ot); /* stroke sculpting -- */ @@ -300,10 +317,10 @@ void GPENCIL_OT_palette_add(struct wmOperatorType *ot); void GPENCIL_OT_palette_remove(struct wmOperatorType *ot); void GPENCIL_OT_palette_change(struct wmOperatorType *ot); void GPENCIL_OT_palette_lock_layer(struct wmOperatorType *ot); + void GPENCIL_OT_palettecolor_add(struct wmOperatorType *ot); void GPENCIL_OT_palettecolor_remove(struct wmOperatorType *ot); void GPENCIL_OT_palettecolor_isolate(struct wmOperatorType *ot); - void GPENCIL_OT_palettecolor_hide(struct wmOperatorType *ot); void GPENCIL_OT_palettecolor_reveal(struct wmOperatorType *ot); void GPENCIL_OT_palettecolor_lock_all(struct wmOperatorType *ot); @@ -318,7 +335,7 @@ void gpencil_undo_init(struct bGPdata *gpd); void gpencil_undo_push(struct bGPdata *gpd); void gpencil_undo_finish(void); -/******************************************************* */ +/* ****************************************************** */ /* FILTERED ACTION DATA - TYPES ---> XXX DEPRECEATED OLD ANIM SYSTEM CODE! */ /* XXX - TODO: replace this with the modern bAnimListElem... */ @@ -340,7 +357,7 @@ typedef struct bActListElem { short ownertype; /* type of owner */ } bActListElem; -/******************************************************* */ +/* ****************************************************** */ /* FILTER ACTION DATA - METHODS/TYPES */ /* filtering flags - under what circumstances should a channel be added */ @@ -363,6 +380,9 @@ typedef enum ACTCONT_TYPES { ACTCONT_GPENCIL } ACTCONT_TYPES; +/* ****************************************************** */ +/* Stroke Iteration Utilities */ + /** * Iterate over all editable strokes in the current context, * stopping on each usable layer + stroke pair (i.e. gpl and gps) @@ -398,4 +418,6 @@ typedef enum ACTCONT_TYPES { CTX_DATA_END; \ } (void)0 +/* ****************************************************** */ + #endif /* __GPENCIL_INTERN_H__ */ diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c index 50f4e795d70..ae1c5554521 100644 --- a/source/blender/editors/gpencil/gpencil_ops.c +++ b/source/blender/editors/gpencil/gpencil_ops.c @@ -375,6 +375,8 @@ void ED_operatortypes_gpencil(void) WM_operatortype_append(GPENCIL_OT_snap_to_cursor); WM_operatortype_append(GPENCIL_OT_snap_cursor_to_selected); + WM_operatortype_append(GPENCIL_OT_reproject); + WM_operatortype_append(GPENCIL_OT_brush_paint); /* Editing (Buttons) ------------ */ diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index dacdc0cf777..cc45cbd82af 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -164,9 +164,6 @@ typedef struct tGPsdata { /* ------ */ -/* maximum sizes of gp-session buffer */ -#define GP_STROKE_BUFFER_MAX 5000 - /* Macros for accessing sensitivity thresholds... */ /* minimum number of pixels mouse should move before new point created */ #define MIN_MANHATTEN_PX (U.gp_manhattendist) @@ -2313,6 +2310,7 @@ static void gpencil_move_last_stroke_to_back(bContext *C) static int gpencil_draw_modal(bContext *C, wmOperator *op, const wmEvent *event) { tGPsdata *p = op->customdata; + ToolSettings *ts = CTX_data_tool_settings(C); int estate = OPERATOR_PASS_THROUGH; /* default exit state - pass through to support MMB view nav, etc. */ /* if (event->type == NDOF_MOTION) @@ -2366,9 +2364,11 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, const wmEvent *event) /* exit() ends the current stroke before cleaning up */ /* printf("\t\tGP - end of paint op + end of stroke\n"); */ /* if drawing polygon and enable on back, must move stroke */ - if ((p->scene->toolsettings->gpencil_flags & GP_TOOL_FLAG_PAINT_ONBACK) && (p->paintmode == GP_PAINTMODE_DRAW_POLY)) { - if (p->flags & GP_PAINTFLAG_STROKEADDED) { - gpencil_move_last_stroke_to_back(C); + if (ts) { + if ((ts->gpencil_flags & GP_TOOL_FLAG_PAINT_ONBACK) && (p->paintmode == GP_PAINTMODE_DRAW_POLY)) { + if (p->flags & GP_PAINTFLAG_STROKEADDED) { + gpencil_move_last_stroke_to_back(C); + } } } p->status = GP_STATUS_DONE; @@ -2428,9 +2428,11 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, const wmEvent *event) else { /* printf("\t\tGP - end of stroke + op\n"); */ /* if drawing polygon and enable on back, must move stroke */ - if ((p->scene->toolsettings->gpencil_flags & GP_TOOL_FLAG_PAINT_ONBACK) && (p->paintmode == GP_PAINTMODE_DRAW_POLY)) { - if (p->flags & GP_PAINTFLAG_STROKEADDED) { - gpencil_move_last_stroke_to_back(C); + if (ts) { + if ((ts->gpencil_flags & GP_TOOL_FLAG_PAINT_ONBACK) && (p->paintmode == GP_PAINTMODE_DRAW_POLY)) { + if (p->flags & GP_PAINTFLAG_STROKEADDED) { + gpencil_move_last_stroke_to_back(C); + } } } p->status = GP_STATUS_DONE; @@ -2514,9 +2516,11 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, const wmEvent *event) * region (as above) */ /* if drawing polygon and enable on back, must move stroke */ - if ((p->scene->toolsettings->gpencil_flags & GP_TOOL_FLAG_PAINT_ONBACK) && (p->paintmode == GP_PAINTMODE_DRAW_POLY)) { - if (p->flags & GP_PAINTFLAG_STROKEADDED) { - gpencil_move_last_stroke_to_back(C); + if (ts) { + if ((ts->gpencil_flags & GP_TOOL_FLAG_PAINT_ONBACK) && (p->paintmode == GP_PAINTMODE_DRAW_POLY)) { + if (p->flags & GP_PAINTFLAG_STROKEADDED) { + gpencil_move_last_stroke_to_back(C); + } } } p->status = GP_STATUS_DONE; diff --git a/source/blender/editors/gpencil/gpencil_select.c b/source/blender/editors/gpencil/gpencil_select.c index 4cb966c6378..45dbde80284 100644 --- a/source/blender/editors/gpencil/gpencil_select.c +++ b/source/blender/editors/gpencil/gpencil_select.c @@ -36,6 +36,7 @@ #include "MEM_guardedalloc.h" #include "BLI_blenlib.h" +#include "BLI_ghash.h" #include "BLI_lasso.h" #include "BLI_utildefines.h" #include "BLI_math_vector.h" @@ -253,6 +254,9 @@ typedef enum eGP_SelectGrouped { /* Select strokes in the same layer */ GP_SEL_SAME_LAYER = 0, + /* Select strokes with the same color */ + GP_SEL_SAME_COLOR = 1, + /* TODO: All with same prefix - Useful for isolating all layers for a particular character for instance */ /* TODO: All with same appearance - colour/opacity/volumetric/fills ? */ } eGP_SelectGrouped; @@ -302,6 +306,43 @@ static void gp_select_same_layer(bContext *C) CTX_DATA_END; } +/* Select all strokes with same colors as selected ones */ +static void gp_select_same_color(bContext *C) +{ + /* First, build set containing all the colors of selected strokes + * - We use the palette names, so that we can select all strokes with one + * (potentially missing) color, and remap them to something else + */ + GSet *selected_colors = BLI_gset_str_new("GP Selected Colors"); + + CTX_DATA_BEGIN(C, bGPDstroke *, gps, editable_gpencil_strokes) + { + if (gps->flag & GP_STROKE_SELECT) { + /* add instead of insert here, otherwise the uniqueness check gets skipped, + * and we get many duplicate entries... + */ + BLI_gset_add(selected_colors, gps->colorname); + } + } + CTX_DATA_END; + + /* Second, select any visible stroke that uses these colors */ + CTX_DATA_BEGIN(C, bGPDstroke *, gps, editable_gpencil_strokes) + { + if (BLI_gset_haskey(selected_colors, gps->colorname)) { + /* select this stroke */ + bGPDspoint *pt; + int i; + + for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) { + pt->flag |= GP_SPOINT_SELECT; + } + + gps->flag |= GP_STROKE_SELECT; + } + } + CTX_DATA_END; +} /* ----------------------------------- */ @@ -314,6 +355,9 @@ static int gpencil_select_grouped_exec(bContext *C, wmOperator *op) case GP_SEL_SAME_LAYER: gp_select_same_layer(C); break; + case GP_SEL_SAME_COLOR: + gp_select_same_color(C); + break; default: BLI_assert(!"unhandled select grouped gpencil mode"); @@ -329,6 +373,7 @@ void GPENCIL_OT_select_grouped(wmOperatorType *ot) { static EnumPropertyItem prop_select_grouped_types[] = { {GP_SEL_SAME_LAYER, "LAYER", 0, "Layer", "Shared layers"}, + {GP_SEL_SAME_COLOR, "COLOR", 0, "Color", "Shared colors"}, {0, NULL, 0, NULL, NULL} }; @@ -338,7 +383,7 @@ void GPENCIL_OT_select_grouped(wmOperatorType *ot) ot->description = "Select all strokes with similar characteristics"; /* callbacks */ - //ot->invoke = WM_menu_invoke; + ot->invoke = WM_menu_invoke; ot->exec = gpencil_select_grouped_exec; ot->poll = gpencil_select_poll; diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c index ed9a591dcbe..564ba639983 100644 --- a/source/blender/editors/gpencil/gpencil_utils.c +++ b/source/blender/editors/gpencil/gpencil_utils.c @@ -628,6 +628,63 @@ void gp_point_to_xy(GP_SpaceConversion *gsc, bGPDstroke *gps, bGPDspoint *pt, } } +/* Convert Grease Pencil points to screen-space values (as floats) + * WARNING: This assumes that the caller has already checked whether the stroke in question can be drawn + */ +void gp_point_to_xy_fl(GP_SpaceConversion *gsc, bGPDstroke *gps, bGPDspoint *pt, + float *r_x, float *r_y) +{ + ARegion *ar = gsc->ar; + View2D *v2d = gsc->v2d; + rctf *subrect = gsc->subrect; + float xyval[2]; + + /* sanity checks */ + BLI_assert(!(gps->flag & GP_STROKE_3DSPACE) || (gsc->sa->spacetype == SPACE_VIEW3D)); + BLI_assert(!(gps->flag & GP_STROKE_2DSPACE) || (gsc->sa->spacetype != SPACE_VIEW3D)); + + + if (gps->flag & GP_STROKE_3DSPACE) { + if (ED_view3d_project_float_global(ar, &pt->x, xyval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) { + *r_x = xyval[0]; + *r_y = xyval[1]; + } + else { + *r_x = 0.0f; + *r_y = 0.0f; + } + } + else if (gps->flag & GP_STROKE_2DSPACE) { + float vec[3] = {pt->x, pt->y, 0.0f}; + int t_x, t_y; + + mul_m4_v3(gsc->mat, vec); + UI_view2d_view_to_region_clip(v2d, vec[0], vec[1], &t_x, &t_y); + + if ((t_x == t_y) && (t_x == V2D_IS_CLIPPED)) { + /* XXX: Or should we just always use the values as-is? */ + *r_x = 0.0f; + *r_y = 0.0f; + } + else { + *r_x = (float)t_x; + *r_y = (float)t_y; + } + } + else { + if (subrect == NULL) { + /* normal 3D view (or view space) */ + *r_x = (pt->x / 100.0f * ar->winx); + *r_y = (pt->y / 100.0f * ar->winy); + } + else { + /* camera view, use subrect */ + *r_x = ((pt->x / 100.0f) * BLI_rctf_size_x(subrect)) + subrect->xmin; + *r_y = ((pt->y / 100.0f) * BLI_rctf_size_y(subrect)) + subrect->ymin; + } + } +} + /** * Project screenspace coordinates to 3D-space * @@ -883,10 +940,12 @@ void gp_randomize_stroke(bGPDstroke *gps, bGPDbrush *brush) float normal[3]; cross_v3_v3v3(normal, v1, v2); normalize_v3(normal); + /* get orthogonal vector to plane to rotate random effect */ float ortho[3]; cross_v3_v3v3(ortho, v1, normal); normalize_v3(ortho); + /* Read all points and apply shift vector (first and last point not modified) */ for (int i = 1; i < gps->totpoints - 1; ++i) { bGPDspoint *pt = &gps->points[i]; @@ -955,8 +1014,8 @@ bool ED_gpencil_stroke_minmax( } return changed; } -/* Dynamic Enums of GP Brushes */ +/* Dynamic Enums of GP Brushes */ EnumPropertyItem *ED_gpencil_brushes_enum_itemf( bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) @@ -990,8 +1049,8 @@ EnumPropertyItem *ED_gpencil_brushes_enum_itemf( return item; } -/* Dynamic Enums of GP Palettes */ +/* Dynamic Enums of GP Palettes */ EnumPropertyItem *ED_gpencil_palettes_enum_itemf( bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index 1f053c806b0..49e5845e3ca 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -393,6 +393,8 @@ struct uiLayout *UI_popup_menu_layout(uiPopupMenu *head); void UI_popup_menu_reports(struct bContext *C, struct ReportList *reports) ATTR_NONNULL(); int UI_popup_menu_invoke(struct bContext *C, const char *idname, struct ReportList *reports) ATTR_NONNULL(1, 2); +void UI_popup_menu_retval_set(const uiBlock *block, const int retval, const bool enable); + /* Pie menus */ typedef struct uiPieMenu uiPieMenu; diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index d05a80bed62..4972e16bf2e 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -9921,6 +9921,17 @@ static int ui_handle_menus_recursive( return retval; } +/** + * Allow setting menu return value from externals. E.g. WM might need to do this for exiting files correctly. + */ +void UI_popup_menu_retval_set(const uiBlock *block, const int retval, const bool enable) +{ + uiPopupBlockHandle *menu = block->handle; + if (menu) { + menu->menuretval = enable ? (menu->menuretval | retval) : (menu->menuretval & retval); + } +} + /* *************** UI event handlers **************** */ static int ui_region_handler(bContext *C, const wmEvent *event, void *UNUSED(userdata)) @@ -10163,7 +10174,11 @@ static void ui_popup_handler_remove(bContext *C, void *userdata) { uiPopupBlockHandle *menu = userdata; - if (menu->cancel_func) { + /* More correct would be to expect UI_RETURN_CANCEL here, but not wanting to + * cancel when removing handlers because of file exit is a rare exception. + * So instead of setting cancel flag for all menus before removing handlers, + * just explicitly flag menu with UI_RETURN_OK to avoid cancelling it. */ + if ((menu->menuretval & UI_RETURN_OK) == 0 && menu->cancel_func) { menu->cancel_func(C, menu->popup_arg); } diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index c621fcf493d..c507401b9a0 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1380,6 +1380,7 @@ static void ui_searchbox_region_draw_cb__operator(const bContext *UNUSED(C), ARe rect_pre.xmax = rect_post.xmin = rect.xmin + ((rect.xmax - rect.xmin) / 4); /* widget itself */ + /* NOTE: i18n messages extracting tool does the same, please keep it in sync. */ { wmOperatorType *ot = data->items.pointers[a]; @@ -1400,7 +1401,8 @@ static void ui_searchbox_region_draw_cb__operator(const bContext *UNUSED(C), ARe } rect_pre.xmax += 4; /* sneaky, avoid showing ugly margin */ - ui_draw_menu_item(&data->fstyle, &rect_pre, text_pre, data->items.icons[a], state, false); + ui_draw_menu_item(&data->fstyle, &rect_pre, CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, text_pre), + data->items.icons[a], state, false); ui_draw_menu_item(&data->fstyle, &rect_post, data->items.names[a], 0, state, data->use_sep); } diff --git a/source/blender/editors/mesh/editmesh_bevel.c b/source/blender/editors/mesh/editmesh_bevel.c index 302ca407add..a81add7a86e 100644 --- a/source/blender/editors/mesh/editmesh_bevel.c +++ b/source/blender/editors/mesh/editmesh_bevel.c @@ -145,6 +145,7 @@ static bool edbm_bevel_init(bContext *C, wmOperator *op, const bool is_modal) opdata->em = em; opdata->is_modal = is_modal; opdata->value_mode = OFFSET_VALUE; + opdata->segments = (float) RNA_int_get(op->ptr, "segments"); pixels_per_inch = U.dpi * U.pixelsize; for (i = 0; i < NUM_VALUE_KINDS; i++) { diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 999d5b278ee..7e31deba2c7 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -3121,8 +3121,10 @@ static void mesh_separate_material_assign_mat_nr(Main *bmain, Object *ob, const BKE_material_resize_id(bmain, obdata, 1, true); ob->mat[0] = ma_ob; + id_us_plus((ID *)ma_ob); ob->matbits[0] = matbit; (*matarar)[0] = ma_obdata; + id_us_plus((ID *)ma_obdata); } else { BKE_material_clear_id(bmain, obdata, true); diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 313181abc97..4482a071c91 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -997,7 +997,7 @@ static int group_instance_add_exec(bContext *C, wmOperator *op) Object *ob = ED_object_add_type(C, OB_EMPTY, group->id.name + 2, loc, rot, false, layer); ob->dup_group = group; ob->transflag |= OB_DUPLIGROUP; - id_lib_extern(&group->id); + id_us_plus(&group->id); /* works without this except if you try render right after, see: 22027 */ DAG_relations_tag_update(bmain); diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index e467dbd05eb..6b3284fe8b1 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -896,7 +896,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) base->object->dup_group = ob->dup_group; if (ob->dup_group) - id_lib_extern(&ob->dup_group->id); + id_us_plus(&ob->dup_group->id); } else if (event == 7) { /* mass */ base->object->mass = ob->mass; diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 1520b7c1aea..bc6a4dc3de2 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1608,7 +1608,7 @@ static int make_links_data_exec(bContext *C, wmOperator *op) case MAKE_LINKS_DUPLIGROUP: ob_dst->dup_group = ob_src->dup_group; if (ob_dst->dup_group) { - id_lib_extern(&ob_dst->dup_group->id); + id_us_plus(&ob_dst->dup_group->id); ob_dst->transflag |= OB_DUPLIGROUP; } break; diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index b4f3426677a..ddbf59b2cf7 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -526,7 +526,7 @@ static Scene *preview_prepare_scene(Main *bmain, Scene *scene, ID *id, int id_ty BKE_node_preview_init_tree(origwrld->nodetree, sp->sizex, sp->sizey, true); } } - + return sce; } @@ -863,8 +863,6 @@ static void shader_preview_free(void *customdata) /* get rid of copied world */ BLI_remlink(&pr_main->world, sp->worldcopy); - /* T32865 - we need to unlink the texture copies, unlike for materials */ - BKE_libblock_relink_ex(pr_main, sp->worldcopy, NULL, NULL, true); BKE_world_free(sp->worldcopy); properties = IDP_GetProperties((ID *)sp->worldcopy, false); @@ -881,7 +879,6 @@ static void shader_preview_free(void *customdata) /* get rid of copied lamp */ BLI_remlink(&pr_main->lamp, sp->lampcopy); - BKE_libblock_relink_ex(pr_main, sp->lampcopy, NULL, NULL, true); BKE_lamp_free(sp->lampcopy); properties = IDP_GetProperties((ID *)sp->lampcopy, false); diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index d53d87db228..05270dbfa09 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -88,7 +88,6 @@ typedef struct PaintStroke { /* Cached values */ ViewContext vc; - bglMats mats; Brush *brush; UnifiedPaintSettings *ups; @@ -675,8 +674,6 @@ PaintStroke *paint_stroke_new(bContext *C, float zoomx, zoomy; view3d_set_viewcontext(C, &stroke->vc); - if (stroke->vc.v3d) - view3d_get_transformation(stroke->vc.ar, stroke->vc.rv3d, stroke->vc.obact, &stroke->mats); stroke->get_location = get_location; stroke->test_start = test_start; diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 03f2e146b7d..ac3fc769ea1 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -348,10 +348,10 @@ static int sound_mixdown_exec(bContext *C, wmOperator *op) BLI_path_abs(filename, bmain->name); if (split) - result = AUD_mixdown_per_channel(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA) * specs.rate / FPS, + result = AUD_mixdown_per_channel(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA + 1) * specs.rate / FPS, accuracy, filename, specs, container, codec, bitrate); else - result = AUD_mixdown(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA) * specs.rate / FPS, + result = AUD_mixdown(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA + 1) * specs.rate / FPS, accuracy, filename, specs, container, codec, bitrate); if (result) { diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h index a55b18a2212..71e38f72a7a 100644 --- a/source/blender/editors/space_file/file_intern.h +++ b/source/blender/editors/space_file/file_intern.h @@ -128,7 +128,6 @@ void file_panels_register(struct ARegionType *art); /* file_utils.c */ void file_tile_boundbox(const ARegion *ar, FileLayout *layout, const int file, rcti *r_bounds); -bool file_is_dir(struct SpaceFile *sfile, const char *path); #endif /* __FILE_INTERN_H__ */ diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index c42ff120102..9f5e98d2431 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -1894,7 +1894,7 @@ void file_directory_enter_handle(bContext *C, void *UNUSED(arg_unused), void *UN file_expand_directory(C); /* special case, user may have pasted a filepath into the directory */ - if (!file_is_dir(sfile, sfile->params->dir)) { + if (!filelist_is_dir(sfile->files, sfile->params->dir)) { char tdir[FILE_MAX_LIBEXTRA]; char *group, *name; @@ -1920,7 +1920,7 @@ void file_directory_enter_handle(bContext *C, void *UNUSED(arg_unused), void *UN BLI_cleanup_dir(G.main->name, sfile->params->dir); - if (file_is_dir(sfile, sfile->params->dir)) { + if (filelist_is_dir(sfile->files, sfile->params->dir)) { /* if directory exists, enter it immediately */ ED_file_change_dir(C); @@ -1993,7 +1993,7 @@ void file_filename_enter_handle(bContext *C, void *UNUSED(arg_unused), void *arg BLI_join_dirfile(filepath, sizeof(sfile->params->dir), sfile->params->dir, sfile->params->file); /* if directory, open it and empty filename field */ - if (file_is_dir(sfile, filepath)) { + if (filelist_is_dir(sfile->files, filepath)) { BLI_cleanup_dir(G.main->name, filepath); BLI_strncpy(sfile->params->dir, filepath, sizeof(sfile->params->dir)); sfile->params->file[0] = '\0'; diff --git a/source/blender/editors/space_file/file_utils.c b/source/blender/editors/space_file/file_utils.c index f19e301064d..c1caf5ae8ac 100644 --- a/source/blender/editors/space_file/file_utils.c +++ b/source/blender/editors/space_file/file_utils.c @@ -48,17 +48,3 @@ void file_tile_boundbox(const ARegion *ar, FileLayout *layout, const int file, r BLI_rcti_init(r_bounds, xmin, xmin + layout->tile_w + layout->tile_border_x, ymax - layout->tile_h - layout->tile_border_y, ymax); } - -/* Cannot directly use BLI_is_dir in libloading context... */ -bool file_is_dir(struct SpaceFile *sfile, const char *path) -{ - if (sfile->params->type == FILE_LOADLIB) { - char tdir[FILE_MAX_LIBEXTRA]; - char *name; - if (BLO_library_path_explode(sfile->params->dir, tdir, NULL, &name) && BLI_is_file(tdir)) { - /* .blend file itself and group are considered as directories, not final datablock names. */ - return name ? false : true; - } - } - return BLI_is_dir(path); -} diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index b6e4991bf52..14719322bf7 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -309,8 +309,9 @@ typedef struct FileList { struct BlendHandle *libfiledata; - /* Set given path as root directory, may change given string in place to a valid value. */ - void (*checkdirf)(struct FileList *, char *); + /* Set given path as root directory, if last bool is true may change given string in place to a valid value. + * Returns True if valid dir. */ + bool (*checkdirf)(struct FileList *, char *, const bool); /* Fill filelist (to be called by read job). */ void (*read_jobf)(struct FileList *, const char *, short *, short *, float *, ThreadMutex *); @@ -942,24 +943,37 @@ int filelist_geticon(struct FileList *filelist, const int index, const bool is_m /* ********** Main ********** */ -static void filelist_checkdir_dir(struct FileList *UNUSED(filelist), char *r_dir) +static bool filelist_checkdir_dir(struct FileList *UNUSED(filelist), char *r_dir, const bool do_change) { - BLI_make_exist(r_dir); + if (do_change) { + BLI_make_exist(r_dir); + return true; + } + else { + return BLI_is_dir(r_dir); + } } -static void filelist_checkdir_lib(struct FileList *UNUSED(filelist), char *r_dir) +static bool filelist_checkdir_lib(struct FileList *UNUSED(filelist), char *r_dir, const bool do_change) { - char dir[FILE_MAX_LIBEXTRA]; - if (!BLO_library_path_explode(r_dir, dir, NULL, NULL)) { + char tdir[FILE_MAX_LIBEXTRA]; + char *name; + + const bool is_valid = (BLI_is_dir(r_dir) || + (BLO_library_path_explode(r_dir, tdir, NULL, &name) && BLI_is_file(tdir) && !name)); + + if (do_change && !is_valid) { /* if not a valid library, we need it to be a valid directory! */ BLI_make_exist(r_dir); + return true; } + return is_valid; } -static void filelist_checkdir_main(struct FileList *filelist, char *r_dir) +static bool filelist_checkdir_main(struct FileList *filelist, char *r_dir, const bool do_change) { /* TODO */ - filelist_checkdir_lib(filelist, r_dir); + return filelist_checkdir_lib(filelist, r_dir, do_change); } static void filelist_entry_clear(FileDirEntry *entry) @@ -1378,6 +1392,11 @@ const char *filelist_dir(struct FileList *filelist) return filelist->filelist.root; } +bool filelist_is_dir(struct FileList *filelist, const char *path) +{ + return filelist->checkdirf(filelist, (char *)path, false); +} + /** * May modify in place given r_dir, which is expected to be FILE_MAX_LIBEXTRA length. */ @@ -1386,7 +1405,7 @@ void filelist_setdir(struct FileList *filelist, char *r_dir) BLI_assert(strlen(r_dir) < FILE_MAX_LIBEXTRA); BLI_cleanup_dir(G.main->name, r_dir); - filelist->checkdirf(filelist, r_dir); + BLI_assert(filelist->checkdirf(filelist, r_dir, true)); if (!STREQ(filelist->filelist.root, r_dir)) { BLI_strncpy(filelist->filelist.root, r_dir, sizeof(filelist->filelist.root)); diff --git a/source/blender/editors/space_file/filelist.h b/source/blender/editors/space_file/filelist.h index d70faab1d6a..f4304681780 100644 --- a/source/blender/editors/space_file/filelist.h +++ b/source/blender/editors/space_file/filelist.h @@ -86,6 +86,7 @@ void filelist_clear_ex(struct FileList *filelist, const bool do_c void filelist_free(struct FileList *filelist); const char * filelist_dir(struct FileList *filelist); +bool filelist_is_dir(struct FileList *filelist, const char *path); void filelist_setdir(struct FileList *filelist, char *r_dir); int filelist_files_ensure(struct FileList *filelist); diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index d9293aa126a..5eb261890b2 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -592,7 +592,7 @@ void ED_file_change_dir(bContext *C) sfile->params->filter_search[0] = '\0'; sfile->params->active_file = -1; - if (!file_is_dir(sfile, sfile->params->dir)) { + if (!filelist_is_dir(sfile->files, sfile->params->dir)) { BLI_strncpy(sfile->params->dir, filelist_dir(sfile->files), sizeof(sfile->params->dir)); /* could return but just refresh the current dir */ } diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index f9d76da9f87..1f591b5fb35 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -1613,13 +1613,16 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, if (ima->source == IMA_SRC_GENERATED) { simopts->im_format.imtype = R_IMF_IMTYPE_PNG; simopts->im_format.compress = ibuf->foptions.quality; + simopts->im_format.planes = ibuf->planes; } else { BKE_imbuf_to_image_format(&simopts->im_format, ibuf); } - } - simopts->im_format.planes = ibuf->planes; + /* use the multiview image settings as the default */ + simopts->im_format.stereo3d_format = *ima->stereo3d_format; + simopts->im_format.views_format = ima->views_format; + } //simopts->subimtype = scene->r.subimtype; /* XXX - this is lame, we need to make these available too! */ @@ -1660,10 +1663,6 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima, } } - /* use the multiview image settings as the default */ - simopts->im_format.stereo3d_format = *ima->stereo3d_format; - simopts->im_format.views_format = ima->views_format; - /* color management */ BKE_color_managed_display_settings_copy(&simopts->im_format.display_settings, &scene->display_settings); BKE_color_managed_view_settings_copy(&simopts->im_format.view_settings, &scene->view_settings); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index d9c51e427c8..ab40c55b59d 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -1327,8 +1327,10 @@ void drawnodespace(const bContext *C, ARegion *ar) path = snode->treepath.last; /* update tree path name (drawn in the bottom left) */ - if (snode->id && UNLIKELY(!STREQ(path->node_name, snode->id->name + 2))) { - BLI_strncpy(path->node_name, snode->id->name + 2, sizeof(path->node_name)); + ID *name_id = (path->nodetree && path->nodetree != snode->nodetree) ? &path->nodetree->id : snode->id; + + if (name_id && UNLIKELY(!STREQ(path->node_name, name_id->name + 2))) { + BLI_strncpy(path->node_name, name_id->name + 2, sizeof(path->node_name)); } /* current View2D center, will be set temporarily for parent node trees */ diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 74a50497164..ecbfd5c7c85 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -1015,12 +1015,18 @@ static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d else { userData.me = NULL; - if ((ob->mode & OB_MODE_ALL_PAINT) == 0) { + /* if ((ob->mode & OB_MODE_ALL_PAINT) == 0) */ { /* Note: this isn't efficient and runs on every redraw, * its needed so material colors are used for vertex colors. * In the future we will likely remove 'texface' so, just avoid running this where possible, - * (when vertex paint or weight paint are used). */ + * (when vertex paint or weight paint are used). + * + * Note 2: We disable optimization for now since it causes T48788 + * and it is now too close to release to do something smarter. + * + * TODO(sergey): Find some real solution here. + */ update_tface_color_layer(dm, !(ob->mode & OB_MODE_TEXTURE_PAINT)); } diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c index 29c06388cf6..75ba8bc15d9 100644 --- a/source/blender/editors/space_view3d/drawvolume.c +++ b/source/blender/editors/space_view3d/drawvolume.c @@ -287,6 +287,108 @@ static int create_view_aligned_slices(VolumeSlicer *slicer, return num_points; } +static void bind_shader(SmokeDomainSettings *sds, GPUShader *shader, GPUTexture *tex_spec, + bool use_fire, const float min[3], + const float ob_sizei[3], const float invsize[3]) +{ + int invsize_location = GPU_shader_get_uniform(shader, "invsize"); + int ob_sizei_location = GPU_shader_get_uniform(shader, "ob_sizei"); + int min_location = GPU_shader_get_uniform(shader, "min_location"); + + int soot_location; + int stepsize_location; + int densityscale_location; + int spec_location, flame_location; + int shadow_location, actcol_location; + + if (use_fire) { + spec_location = GPU_shader_get_uniform(shader, "spectrum_texture"); + flame_location = GPU_shader_get_uniform(shader, "flame_texture"); + } + else { + shadow_location = GPU_shader_get_uniform(shader, "shadow_texture"); + actcol_location = GPU_shader_get_uniform(shader, "active_color"); + soot_location = GPU_shader_get_uniform(shader, "soot_texture"); + stepsize_location = GPU_shader_get_uniform(shader, "step_size"); + densityscale_location = GPU_shader_get_uniform(shader, "density_scale"); + } + + GPU_shader_bind(shader); + + if (use_fire) { + GPU_texture_bind(sds->tex_flame, 2); + GPU_shader_uniform_texture(shader, flame_location, sds->tex_flame); + + GPU_texture_bind(tex_spec, 3); + GPU_shader_uniform_texture(shader, spec_location, tex_spec); + } + else { + float density_scale = 10.0f; + + GPU_shader_uniform_vector(shader, stepsize_location, 1, 1, &sds->dx); + GPU_shader_uniform_vector(shader, densityscale_location, 1, 1, &density_scale); + + GPU_texture_bind(sds->tex, 0); + GPU_shader_uniform_texture(shader, soot_location, sds->tex); + + GPU_texture_bind(sds->tex_shadow, 1); + GPU_shader_uniform_texture(shader, shadow_location, sds->tex_shadow); + + float active_color[3] = { 0.9, 0.9, 0.9 }; + if ((sds->active_fields & SM_ACTIVE_COLORS) == 0) + mul_v3_v3(active_color, sds->active_color); + GPU_shader_uniform_vector(shader, actcol_location, 3, 1, active_color); + } + + GPU_shader_uniform_vector(shader, min_location, 3, 1, min); + GPU_shader_uniform_vector(shader, ob_sizei_location, 3, 1, ob_sizei); + GPU_shader_uniform_vector(shader, invsize_location, 3, 1, invsize); +} + +static void unbind_shader(SmokeDomainSettings *sds, GPUTexture *tex_spec, bool use_fire) +{ + GPU_shader_unbind(); + + GPU_texture_unbind(sds->tex); + + if (use_fire) { + GPU_texture_unbind(sds->tex_flame); + GPU_texture_unbind(tex_spec); + GPU_texture_free(tex_spec); + } + else { + GPU_texture_unbind(sds->tex_shadow); + } +} + +static void draw_buffer(SmokeDomainSettings *sds, GPUShader *shader, const VolumeSlicer *slicer, + const float ob_sizei[3], const float invsize[3], const int num_points, const bool do_fire) +{ + GPUTexture *tex_spec = (do_fire) ? create_flame_spectrum_texture() : NULL; + + GLuint vertex_buffer; + glGenBuffers(1, &vertex_buffer); + glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 3 * num_points, &slicer->verts[0][0], GL_STATIC_DRAW); + + bind_shader(sds, shader, tex_spec, do_fire, slicer->min, ob_sizei, invsize); + + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3, GL_FLOAT, 0, NULL); + + glDrawArrays(GL_TRIANGLES, 0, num_points); + + glDisableClientState(GL_VERTEX_ARRAY); + + unbind_shader(sds, tex_spec, do_fire); + + /* cleanup */ + + glBindBuffer(GL_ARRAY_BUFFER, 0); + + glDeleteBuffers(1, &vertex_buffer); +} + void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob, const float min[3], const float max[3], const float viewnormal[3]) @@ -298,14 +400,23 @@ void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob, const bool use_fire = (sds->active_fields & SM_ACTIVE_FIRE) && sds->tex_flame; - GPUShader *shader = GPU_shader_get_builtin_shader( - (use_fire) ? GPU_SHADER_SMOKE_FIRE : GPU_SHADER_SMOKE); + GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_SMOKE); if (!shader) { fprintf(stderr, "Unable to create GLSL smoke shader.\n"); return; } + GPUShader *fire_shader = NULL; + if (use_fire) { + fire_shader = GPU_shader_get_builtin_shader(GPU_SHADER_SMOKE_FIRE); + + if (!fire_shader) { + fprintf(stderr, "Unable to create GLSL fire shader.\n"); + return; + } + } + const float ob_sizei[3] = { 1.0f / fabsf(ob->size[0]), 1.0f / fabsf(ob->size[1]), @@ -319,50 +430,6 @@ void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob, TIMEIT_START(draw); #endif - /* setup smoke shader */ - - int soot_location = GPU_shader_get_uniform(shader, "soot_texture"); - int spec_location = GPU_shader_get_uniform(shader, "spectrum_texture"); - int shadow_location = GPU_shader_get_uniform(shader, "shadow_texture"); - int flame_location = GPU_shader_get_uniform(shader, "flame_texture"); - int actcol_location = GPU_shader_get_uniform(shader, "active_color"); - int stepsize_location = GPU_shader_get_uniform(shader, "step_size"); - int densityscale_location = GPU_shader_get_uniform(shader, "density_scale"); - int invsize_location = GPU_shader_get_uniform(shader, "invsize"); - int ob_sizei_location = GPU_shader_get_uniform(shader, "ob_sizei"); - int min_location = GPU_shader_get_uniform(shader, "min_location"); - - GPU_shader_bind(shader); - - GPU_texture_bind(sds->tex, 0); - GPU_shader_uniform_texture(shader, soot_location, sds->tex); - - GPU_texture_bind(sds->tex_shadow, 1); - GPU_shader_uniform_texture(shader, shadow_location, sds->tex_shadow); - - GPUTexture *tex_spec = NULL; - - if (use_fire) { - GPU_texture_bind(sds->tex_flame, 2); - GPU_shader_uniform_texture(shader, flame_location, sds->tex_flame); - - tex_spec = create_flame_spectrum_texture(); - GPU_texture_bind(tex_spec, 3); - GPU_shader_uniform_texture(shader, spec_location, tex_spec); - } - - float active_color[3] = { 0.9, 0.9, 0.9 }; - float density_scale = 10.0f; - if ((sds->active_fields & SM_ACTIVE_COLORS) == 0) - mul_v3_v3(active_color, sds->active_color); - - GPU_shader_uniform_vector(shader, actcol_location, 3, 1, active_color); - GPU_shader_uniform_vector(shader, stepsize_location, 1, 1, &sds->dx); - GPU_shader_uniform_vector(shader, densityscale_location, 1, 1, &density_scale); - GPU_shader_uniform_vector(shader, min_location, 3, 1, min); - GPU_shader_uniform_vector(shader, ob_sizei_location, 3, 1, ob_sizei); - GPU_shader_uniform_vector(shader, invsize_location, 3, 1, invsize); - /* setup slicing information */ const int max_slices = 256; @@ -386,43 +453,23 @@ void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob, glEnable(GL_DEPTH_TEST); glDepthMask(GL_FALSE); glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); - - GLuint vertex_buffer; - glGenBuffers(1, &vertex_buffer); - glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer); - glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 3 * num_points, &slicer.verts[0][0], GL_STATIC_DRAW); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, 0, NULL); - - glDrawArrays(GL_TRIANGLES, 0, num_points); + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + draw_buffer(sds, shader, &slicer, ob_sizei, invsize, num_points, false); - glDisableClientState(GL_VERTEX_ARRAY); + /* Draw fire separately (T47639). */ + if (use_fire) { + glBlendFunc(GL_ONE, GL_ONE); + draw_buffer(sds, fire_shader, &slicer, ob_sizei, invsize, num_points, true); + } #ifdef DEBUG_DRAW_TIME printf("Draw Time: %f\n", (float)TIMEIT_VALUE(draw)); TIMEIT_END(draw); #endif - /* cleanup */ - - glBindBuffer(GL_ARRAY_BUFFER, 0); - glDeleteBuffers(1, &vertex_buffer); - - GPU_texture_unbind(sds->tex); - GPU_texture_unbind(sds->tex_shadow); - - if (use_fire) { - GPU_texture_unbind(sds->tex_flame); - GPU_texture_unbind(tex_spec); - GPU_texture_free(tex_spec); - } - MEM_freeN(slicer.verts); - GPU_shader_unbind(); - glDepthMask(gl_depth_write); if (!gl_blend) { diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 2cf32ff3128..e3b32ebdbb2 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1131,9 +1131,11 @@ static void draw_selected_name(Scene *scene, Object *ob, rcti *rect) UI_ThemeColor(TH_TEXT_HI); } else { - /* no object */ - /* color is always white */ - UI_ThemeColor(TH_TEXT_HI); + /* no object */ + if (ED_gpencil_has_keyframe_v3d(scene, NULL, cfra)) + UI_ThemeColor(TH_TIME_GP_KEYFRAME); + else + UI_ThemeColor(TH_TEXT_HI); } if (markern) { diff --git a/source/blender/editors/space_view3d/view3d_ruler.c b/source/blender/editors/space_view3d/view3d_ruler.c index 67a40ae4180..3c13ab9d595 100644 --- a/source/blender/editors/space_view3d/view3d_ruler.c +++ b/source/blender/editors/space_view3d/view3d_ruler.c @@ -357,7 +357,7 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info) gps->flag = GP_STROKE_3DSPACE; gps->thickness = 3; /* assign color to stroke */ - strcpy(gps->colorname, palcolor->info); + BLI_strncpy(gps->colorname, palcolor->info, sizeof(gps->colorname)); gps->palcolor = palcolor; BLI_addtail(&gpf->strokes, gps); changed = true; diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 148db20b41d..f77e836461c 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1951,6 +1951,9 @@ static int do_armature_box_select(ViewContext *vc, rcti *rect, bool select, bool int index = buffer[(4 * a) + 3]; if (index != -1) { ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY)); + if ((index & 0xFFFF0000) == 0) { + continue; + } if ((select == false) || ((ebone->flag & BONE_UNSELECTABLE) == 0)) { if (index & BONESEL_TIP) { ebone->flag |= BONE_DONE; diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index 27643ff7c4c..40710046cc2 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -79,6 +79,7 @@ set(SRC shaders/gpu_shader_vsm_store_frag.glsl shaders/gpu_shader_vsm_store_vert.glsl shaders/gpu_shader_fx_depth_resolve.glsl + shaders/gpu_shader_fire_frag.glsl shaders/gpu_shader_smoke_frag.glsl shaders/gpu_shader_smoke_vert.glsl @@ -112,6 +113,7 @@ data_to_c_simple(shaders/gpu_shader_3D_smooth_color_vert.glsl SRC) data_to_c_simple(shaders/gpu_shader_3D_smooth_color_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_geometry.glsl SRC) +data_to_c_simple(shaders/gpu_shader_fire_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_smoke_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_smoke_vert.glsl SRC) data_to_c_simple(shaders/gpu_shader_material.glsl SRC) diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 14d4e8cbe68..f33f5157f56 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -869,7 +869,7 @@ static char *code_generate_geometry(ListBase *nodes, bool use_opensubdiv) if (input->attribtype == CD_MTFACE) { BLI_dynstr_appendf( ds, - "\tINTERP_FACE_VARYING_2(var%d, " + "\tINTERP_FACE_VARYING_ATT_2(var%d, " "int(texelFetch(FVarDataOffsetBuffer, fvar%d_offset).r), st);\n", input->attribid, input->attribid); diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c index e05ac3a5607..c95c427d32a 100644 --- a/source/blender/gpu/intern/gpu_shader.c +++ b/source/blender/gpu/intern/gpu_shader.c @@ -57,6 +57,7 @@ extern char datatoc_gpu_shader_3D_flat_color_vert_glsl[]; extern char datatoc_gpu_shader_3D_smooth_color_vert_glsl[]; extern char datatoc_gpu_shader_3D_smooth_color_frag_glsl[]; +extern char datatoc_gpu_shader_fire_frag_glsl[]; extern char datatoc_gpu_shader_smoke_vert_glsl[]; extern char datatoc_gpu_shader_smoke_frag_glsl[]; extern char datatoc_gpu_shader_vsm_store_vert_glsl[]; @@ -618,7 +619,7 @@ GPUShader *GPU_shader_get_builtin_shader(GPUBuiltinShader shader) if (!GG.shaders.smoke_fire) GG.shaders.smoke_fire = GPU_shader_create( datatoc_gpu_shader_smoke_vert_glsl, datatoc_gpu_shader_smoke_frag_glsl, - NULL, NULL, "#define USE_FIRE;\n", 0, 0, 0); + NULL, NULL, NULL, 0, 0, 0); retval = GG.shaders.smoke_fire; break; case GPU_SHADER_2D_UNIFORM_COLOR: diff --git a/source/blender/gpu/shaders/gpu_shader_fire_frag.glsl b/source/blender/gpu/shaders/gpu_shader_fire_frag.glsl new file mode 100644 index 00000000000..3819203bcd9 --- /dev/null +++ b/source/blender/gpu/shaders/gpu_shader_fire_frag.glsl @@ -0,0 +1,17 @@ + +varying vec3 coords; + +uniform sampler3D flame_texture; +uniform sampler1D spectrum_texture; + +void main() +{ + float flame = texture3D(flame_texture, coords).r; + vec4 emission = texture1D(spectrum_texture, flame); + + vec4 color; + color.rgb = emission.a * emission.rgb; + color.a = emission.a; + + gl_FragColor = color; +} diff --git a/source/blender/gpu/shaders/gpu_shader_geometry.glsl b/source/blender/gpu/shaders/gpu_shader_geometry.glsl index 6f063883e37..fe630dbeddb 100644 --- a/source/blender/gpu/shaders/gpu_shader_geometry.glsl +++ b/source/blender/gpu/shaders/gpu_shader_geometry.glsl @@ -31,6 +31,18 @@ uniform int osd_fvar_count; tessCoord.t); \ } +#ifdef USE_NEW_SHADING +# define INTERP_FACE_VARYING_ATT_2(result, fvarOffset, tessCoord) \ + { \ + vec2 tmp; \ + INTERP_FACE_VARYING_2(tmp, fvarOffset, tessCoord); \ + result = vec3(tmp, 0); \ + } +#else +# define INTERP_FACE_VARYING_ATT_2(result, fvarOffset, tessCoord) \ + INTERP_FACE_VARYING_2(result, fvarOffset, tessCoord) +#endif + uniform samplerBuffer FVarDataBuffer; uniform isamplerBuffer FVarDataOffsetBuffer; diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 845a78720ba..119bfb61fec 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -2185,11 +2185,11 @@ void shade_madd_clamped(vec4 col, vec4 col1, vec4 col2, out vec4 outcol) outcol = col + max(col1 * col2, vec4(0.0, 0.0, 0.0, 0.0)); } -void env_apply(vec4 col, vec4 hor, vec4 zen, vec4 f, mat4 vm, vec3 vn, out vec4 outcol) +void env_apply(vec4 col, vec3 hor, vec3 zen, vec4 f, mat4 vm, vec3 vn, out vec4 outcol) { vec3 vv = normalize(vm[2].xyz); float skyfac = 0.5 * (1.0 + dot(vn, -vv)); - outcol = col + f * mix(hor, zen, skyfac); + outcol = col + f * vec4(mix(hor, zen, skyfac), 0); } void shade_maddf(vec4 col, float f, vec4 col1, out vec4 outcol) diff --git a/source/blender/gpu/shaders/gpu_shader_smoke_frag.glsl b/source/blender/gpu/shaders/gpu_shader_smoke_frag.glsl index 4d1feb5c83e..fd790009e02 100644 --- a/source/blender/gpu/shaders/gpu_shader_smoke_frag.glsl +++ b/source/blender/gpu/shaders/gpu_shader_smoke_frag.glsl @@ -8,11 +8,6 @@ uniform float density_scale; uniform sampler3D soot_texture; uniform sampler3D shadow_texture; -#ifdef USE_FIRE -uniform sampler3D flame_texture; -uniform sampler1D spectrum_texture; -#endif - void main() { /* compute color and density from volume texture */ @@ -37,12 +32,5 @@ void main() /* premultiply alpha */ vec4 color = vec4(soot_alpha * soot_color, soot_alpha); -#ifdef USE_FIRE - /* fire */ - float flame = texture3D(flame_texture, coords).r; - vec4 emission = texture1D(spectrum_texture, flame); - color.rgb += (1 - color.a) * emission.a * emission.rgb; -#endif - gl_FragColor = color; } diff --git a/source/blender/makesdna/DNA_cachefile_types.h b/source/blender/makesdna/DNA_cachefile_types.h index 1cda0233aa8..dd47d63fc19 100644 --- a/source/blender/makesdna/DNA_cachefile_types.h +++ b/source/blender/makesdna/DNA_cachefile_types.h @@ -58,6 +58,7 @@ typedef struct CacheFile { struct AnimData *adt; struct AbcArchiveHandle *handle; + void *handle_mutex; /* Paths of the objects inside of the Alembic archive referenced by this * CacheFile. */ diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index d4edc8a1c20..d59dad5762b 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1702,9 +1702,11 @@ typedef struct Scene { #define R_STAMP_CAMERALENS 0x0800 #define R_STAMP_STRIPMETA 0x1000 #define R_STAMP_MEMORY 0x2000 +#define R_STAMP_HIDE_LABELS 0x4000 #define R_STAMP_ALL (R_STAMP_TIME|R_STAMP_FRAME|R_STAMP_DATE|R_STAMP_CAMERA|R_STAMP_SCENE| \ R_STAMP_NOTE|R_STAMP_MARKER|R_STAMP_FILENAME|R_STAMP_SEQSTRIP| \ - R_STAMP_RENDERTIME|R_STAMP_CAMERALENS|R_STAMP_MEMORY) + R_STAMP_RENDERTIME|R_STAMP_CAMERALENS|R_STAMP_MEMORY| \ + R_STAMP_HIDE_LABELS) /* alphamode */ #define R_ADDSKY 0 diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index fb4ff6f4856..f4fb30e0793 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -1273,7 +1273,7 @@ static void rna_def_curve_spline_bezpoints(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_property_srna(cprop, "SplineBezierPoints"); srna = RNA_def_struct(brna, "SplineBezierPoints", NULL); RNA_def_struct_sdna(srna, "Nurb"); - RNA_def_struct_ui_text(srna, "Spline Bezier Points", "Collection of spline bezirt points"); + RNA_def_struct_ui_text(srna, "Spline Bezier Points", "Collection of spline Bezier points"); func = RNA_def_function(srna, "add", "rna_Curve_spline_bezpoints_add"); RNA_def_function_ui_description(func, "Add a number of points to this spline"); diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 3ecaec75c77..7eaf8b65902 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -439,12 +439,23 @@ static void rna_GPencil_stroke_point_select_set(PointerRNA *ptr, const int value } } -static void rna_GPencil_stroke_point_add(bGPDstroke *stroke, int count) +static void rna_GPencil_stroke_point_add(bGPDstroke *stroke, int count, float pressure, float strength) { if (count > 0) { + /* create space at the end of the array for extra points */ stroke->points = MEM_recallocN_id(stroke->points, sizeof(bGPDspoint) * (stroke->totpoints + count), "gp_stroke_points"); + + /* init the pressure and strength values so that old scripts won't need to + * be modified to give these initial values... + */ + for (int i = 0; i < count; i++) { + bGPDspoint *pt = stroke->points + (stroke->totpoints + i); + pt->pressure = pressure; + pt->strength = strength; + } + stroke->totpoints += count; } } @@ -888,9 +899,7 @@ static void rna_def_gpencil_stroke_point(BlenderRNA *brna) static void rna_def_gpencil_stroke_points_api(BlenderRNA *brna, PropertyRNA *cprop) { StructRNA *srna; - FunctionRNA *func; - /* PropertyRNA *parm; */ RNA_def_property_srna(cprop, "GPencilStrokePoints"); srna = RNA_def_struct(brna, "GPencilStrokePoints", NULL); @@ -900,6 +909,8 @@ static void rna_def_gpencil_stroke_points_api(BlenderRNA *brna, PropertyRNA *cpr func = RNA_def_function(srna, "add", "rna_GPencil_stroke_point_add"); RNA_def_function_ui_description(func, "Add a new grease pencil stroke point"); RNA_def_int(func, "count", 1, 0, INT_MAX, "Number", "Number of points to add to the stroke", 0, INT_MAX); + RNA_def_float(func, "pressure", 1.0f, 0.0f, 1.0f, "Pressure", "Pressure for newly created points", 0.0f, 1.0f); + RNA_def_float(func, "strength", 1.0f, 0.0f, 1.0f, "Strength", "Color intensity (alpha factor) for newly created points", 0.0f, 1.0f); func = RNA_def_function(srna, "pop", "rna_GPencil_stroke_point_pop"); RNA_def_function_ui_description(func, "Remove a grease pencil stroke point"); diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index e4e3699f301..51709d3137c 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -546,7 +546,7 @@ static void rna_def_lamp_shadow(StructRNA *srna, int spot, int area) prop = RNA_def_property(srna, "shadow_method", PROP_ENUM, PROP_NONE); RNA_def_property_enum_bitflag_sdna(prop, NULL, "mode"); RNA_def_property_enum_items(prop, (spot) ? prop_spot_shadow_items : prop_shadow_items); - RNA_def_property_update(prop, 0, "rna_Lamp_update"); + RNA_def_property_update(prop, 0, "rna_Lamp_draw_update"); prop = RNA_def_property(srna, "shadow_buffer_size", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "bufsize"); diff --git a/source/blender/makesrna/intern/rna_linestyle.c b/source/blender/makesrna/intern/rna_linestyle.c index d8cc61bf906..9b28009d161 100644 --- a/source/blender/makesrna/intern/rna_linestyle.c +++ b/source/blender/makesrna/intern/rna_linestyle.c @@ -1499,14 +1499,15 @@ static void rna_def_freestyle_thickness_modifiers(BlenderRNA *brna, PropertyRNA RNA_def_property_srna(cprop, "LineStyleThicknessModifiers"); srna = RNA_def_struct(brna, "LineStyleThicknessModifiers", NULL); RNA_def_struct_sdna(srna, "FreestyleLineStyle"); - RNA_def_struct_ui_text(srna, "Thickness Modifiers", "Thickness modifiers for changing line thicknesss"); + RNA_def_struct_ui_text(srna, "Thickness Modifiers", "Thickness modifiers for changing line thickness"); func = RNA_def_function(srna, "new", "rna_LineStyle_thickness_modifier_add"); RNA_def_function_ui_description(func, "Add a thickness modifier to line style"); RNA_def_function_flag(func, FUNC_USE_REPORTS); parm = RNA_def_string(func, "name", "ThicknessModifier", 0, "", "New name for the thickness modifier (not unique)"); RNA_def_property_flag(parm, PROP_REQUIRED); - parm = RNA_def_enum(func, "type", rna_enum_linestyle_thickness_modifier_type_items, 0, "", "Thickness modifier type to add"); + parm = RNA_def_enum(func, "type", rna_enum_linestyle_thickness_modifier_type_items, 0, + "", "Thickness modifier type to add"); RNA_def_property_flag(parm, PROP_REQUIRED); parm = RNA_def_pointer(func, "modifier", "LineStyleThicknessModifier", "", "Newly added thickness modifier"); RNA_def_function_return(func, parm); @@ -1528,14 +1529,15 @@ static void rna_def_freestyle_geometry_modifiers(BlenderRNA *brna, PropertyRNA * RNA_def_property_srna(cprop, "LineStyleGeometryModifiers"); srna = RNA_def_struct(brna, "LineStyleGeometryModifiers", NULL); RNA_def_struct_sdna(srna, "FreestyleLineStyle"); - RNA_def_struct_ui_text(srna, "Geometry Modifiers", "Geometry modifiers for changing line geometrys"); + RNA_def_struct_ui_text(srna, "Geometry Modifiers", "Geometry modifiers for changing line geometries"); func = RNA_def_function(srna, "new", "rna_LineStyle_geometry_modifier_add"); RNA_def_function_ui_description(func, "Add a geometry modifier to line style"); RNA_def_function_flag(func, FUNC_USE_REPORTS); parm = RNA_def_string(func, "name", "GeometryModifier", 0, "", "New name for the geometry modifier (not unique)"); RNA_def_property_flag(parm, PROP_REQUIRED); - parm = RNA_def_enum(func, "type", rna_enum_linestyle_geometry_modifier_type_items, 0, "", "Geometry modifier type to add"); + parm = RNA_def_enum(func, "type", rna_enum_linestyle_geometry_modifier_type_items, 0, + "", "Geometry modifier type to add"); RNA_def_property_flag(parm, PROP_REQUIRED); parm = RNA_def_pointer(func, "modifier", "LineStyleGeometryModifier", "", "Newly added geometry modifier"); RNA_def_function_return(func, parm); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index e4f9f856db7..2a8cc073e22 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -1889,7 +1889,7 @@ void RNA_def_material(BlenderRNA *brna) prop = RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "index"); - RNA_def_property_ui_text(prop, "Pass Index", "Index number for the IndexMA render pass"); + RNA_def_property_ui_text(prop, "Pass Index", "Index number for the \"Material Index\" render pass"); RNA_def_property_update(prop, NC_OBJECT, "rna_Material_update"); /* flags */ diff --git a/source/blender/makesrna/intern/rna_movieclip.c b/source/blender/makesrna/intern/rna_movieclip.c index 19d78361019..15411f85ba3 100644 --- a/source/blender/makesrna/intern/rna_movieclip.c +++ b/source/blender/makesrna/intern/rna_movieclip.c @@ -347,6 +347,8 @@ static void rna_def_movieclip(BlenderRNA *brna) RNA_def_property_pointer_sdna(prop, NULL, "colorspace_settings"); RNA_def_property_struct_type(prop, "ColorManagedInputColorspaceSettings"); RNA_def_property_ui_text(prop, "Color Space Settings", "Input color space settings"); + + rna_def_animdata_common(srna); } void RNA_def_movieclip(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 72ecebdb7df..1e58b6421f2 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -5352,13 +5352,13 @@ static void def_cmp_double_edge_mask(StructRNA *srna) }; prop = RNA_def_property(srna, "inner_mode", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "custom2"); + RNA_def_property_enum_sdna(prop, NULL, "custom1"); RNA_def_property_enum_items(prop, InnerEdgeMode_items); RNA_def_property_ui_text(prop, "Inner Edge Mode", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "edge_mode", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "custom1"); + RNA_def_property_enum_sdna(prop, NULL, "custom2"); RNA_def_property_enum_items(prop, BufEdgeMode_items); RNA_def_property_ui_text(prop, "Buffer Edge Mode", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 127c6d4d95e..74e9df1889a 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2490,7 +2490,7 @@ static void rna_def_object(BlenderRNA *brna) /* render */ prop = RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED); RNA_def_property_int_sdna(prop, NULL, "index"); - RNA_def_property_ui_text(prop, "Pass Index", "Index number for the IndexOB render pass"); + RNA_def_property_ui_text(prop, "Pass Index", "Index number for the \"Object Index\" render pass"); RNA_def_property_update(prop, NC_OBJECT, "rna_Object_internal_update"); prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index be42f3c538f..dfe319dd87d 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2276,7 +2276,7 @@ static void rna_def_gpencil_brushes(BlenderRNA *brna, PropertyRNA *cprop) "rna_GPencilBrushes_index_get", "rna_GPencilBrushes_index_set", "rna_GPencilBrushes_index_range"); - RNA_def_property_ui_text(prop, "Active brush Index", "Index of active brush"); + RNA_def_property_ui_text(prop, "Active Brush Index", "Index of active brush"); } static void rna_def_transform_orientation(BlenderRNA *brna) @@ -6270,6 +6270,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Stamp Output", "Render the stamp info text in the rendered image"); RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); + prop = RNA_def_property(srna, "use_stamp_labels", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "stamp", R_STAMP_HIDE_LABELS); + RNA_def_property_ui_text(prop, "Stamp Labels", "Draw stamp labels (\"Camera\" in front of camera name, etc.)"); + RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); + prop = RNA_def_property(srna, "use_stamp_strip_meta", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "stamp", R_STAMP_STRIPMETA); RNA_def_property_ui_text(prop, "Strip Metadata", "Use metadata from the strips in the sequencer"); diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index cbfebe5efc4..2340345c1c6 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -1768,17 +1768,17 @@ static void rna_def_trackingStabilization(BlenderRNA *brna) prop = RNA_def_property(srna, "target_rotation", PROP_FLOAT, PROP_ANGLE); RNA_def_property_float_sdna(prop, NULL, "target_rot"); RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); - RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 3); + RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 10.0f, 3); RNA_def_property_ui_text(prop, "Expected Rotation", "Rotation present on original shot, will be compensated (e.g. for deliberate tilting)"); RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, NULL); /* target scale */ - prop = RNA_def_property(srna, "target_zoom", PROP_FLOAT, PROP_FACTOR); + prop = RNA_def_property(srna, "target_scale", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, NULL, "scale"); - RNA_def_property_range(prop, FLT_EPSILON, 100.0f); - RNA_def_property_ui_range(prop, 0.1f, 10.0f, 1, 3); /* increment in steps of 0.01. Show 3 digit after point */ - RNA_def_property_ui_text(prop, "Expected Zoom", + RNA_def_property_range(prop, FLT_EPSILON, FLT_MAX); + RNA_def_property_ui_range(prop, 0.01f, 10.0f, 0.001f, 3); /* increment in steps of 0.001. Show 3 digit after point */ + RNA_def_property_ui_text(prop, "Expected Scale", "Explicitly scale resulting frame to compensate zoom of original shot"); RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_tracking_flushUpdate"); @@ -2094,7 +2094,7 @@ static void rna_def_trackingObjects(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_property_srna(cprop, "MovieTrackingObjects"); srna = RNA_def_struct(brna, "MovieTrackingObjects", NULL); RNA_def_struct_sdna(srna, "MovieTracking"); - RNA_def_struct_ui_text(srna, "Movie Objects", "Collection of movie trackingobjects"); + RNA_def_struct_ui_text(srna, "Movie Objects", "Collection of movie tracking objects"); func = RNA_def_function(srna, "new", "rna_trackingObject_new"); RNA_def_function_ui_description(func, "Add tracking object to this movie clip"); diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index f97f194033c..90081a93188 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -1935,15 +1935,15 @@ static void rna_def_wm_keyconfigs(BlenderRNA *brna, PropertyRNA *cprop) prop = RNA_def_property(srna, "addon", PROP_POINTER, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "addonconf"); RNA_def_property_struct_type(prop, "KeyConfig"); - RNA_def_property_ui_text(prop, "Addon Key Configuration", - "Key configuration that can be extended by addons, and is added to the active " + RNA_def_property_ui_text(prop, "Add-on Key Configuration", + "Key configuration that can be extended by add-ons, and is added to the active " "configuration when handling events"); prop = RNA_def_property(srna, "user", PROP_POINTER, PROP_NEVER_NULL); RNA_def_property_pointer_sdna(prop, NULL, "userconf"); RNA_def_property_struct_type(prop, "KeyConfig"); RNA_def_property_ui_text(prop, "User Key Configuration", - "Final key configuration that combines keymaps from the active and addon configurations, " + "Final key configuration that combines keymaps from the active and add-on configurations, " "and can be edited by the user"); RNA_api_keyconfigs(srna); diff --git a/source/blender/nodes/shader/nodes/node_shader_material.c b/source/blender/nodes/shader/nodes/node_shader_material.c index 8b21b1ff33b..6850cdbf6ea 100644 --- a/source/blender/nodes/shader/nodes/node_shader_material.c +++ b/source/blender/nodes/shader/nodes/node_shader_material.c @@ -223,12 +223,27 @@ static void node_shader_init_material(bNodeTree *UNUSED(ntree), bNode *node) /* XXX this is also done as a local static function in gpu_codegen.c, * but we need this to hack around the crappy material node. */ -static GPUNodeLink *gpu_get_input_link(GPUNodeStack *in) +static GPUNodeLink *gpu_get_input_link(GPUMaterial *mat, GPUNodeStack *in) { - if (in->link) + if (in->link) { return in->link; - else - return GPU_uniform(in->vec); + } + else { + GPUNodeLink *result = NULL; + + /* note GPU_uniform() is only intended to be used as a parameter to + * GPU_link(), returning it directly results in leaks or double frees */ + if (in->type == GPU_FLOAT) + GPU_link(mat, "set_value", GPU_uniform(in->vec), &result); + else if (in->type == GPU_VEC3) + GPU_link(mat, "set_rgb", GPU_uniform(in->vec), &result); + else if (in->type == GPU_VEC4) + GPU_link(mat, "set_rgba", GPU_uniform(in->vec), &result); + else + BLI_assert(0); + + return result; + } } static int gpu_shader_material(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out) @@ -251,18 +266,18 @@ static int gpu_shader_material(GPUMaterial *mat, bNode *node, bNodeExecData *UNU /* write values */ if (hasinput[MAT_IN_COLOR]) - shi.rgb = gpu_get_input_link(&in[MAT_IN_COLOR]); + shi.rgb = gpu_get_input_link(mat, &in[MAT_IN_COLOR]); if (hasinput[MAT_IN_SPEC]) - shi.specrgb = gpu_get_input_link(&in[MAT_IN_SPEC]); + shi.specrgb = gpu_get_input_link(mat, &in[MAT_IN_SPEC]); if (hasinput[MAT_IN_REFL]) - shi.refl = gpu_get_input_link(&in[MAT_IN_REFL]); + shi.refl = gpu_get_input_link(mat, &in[MAT_IN_REFL]); /* retrieve normal */ if (hasinput[MAT_IN_NORMAL]) { GPUNodeLink *tmp; - shi.vn = gpu_get_input_link(&in[MAT_IN_NORMAL]); + shi.vn = gpu_get_input_link(mat, &in[MAT_IN_NORMAL]); if (GPU_material_use_world_space_shading(mat)) { GPU_link(mat, "vec_math_negate", shi.vn, &shi.vn); GPU_link(mat, "direction_transform_m4v3", shi.vn, GPU_builtin(GPU_VIEW_MATRIX), &shi.vn); @@ -276,15 +291,15 @@ static int gpu_shader_material(GPUMaterial *mat, bNode *node, bNodeExecData *UNU if (node->type == SH_NODE_MATERIAL_EXT) { if (hasinput[MAT_IN_MIR]) - shi.mir = gpu_get_input_link(&in[MAT_IN_MIR]); + shi.mir = gpu_get_input_link(mat, &in[MAT_IN_MIR]); if (hasinput[MAT_IN_AMB]) - shi.amb = gpu_get_input_link(&in[MAT_IN_AMB]); + shi.amb = gpu_get_input_link(mat, &in[MAT_IN_AMB]); if (hasinput[MAT_IN_EMIT]) - shi.emit = gpu_get_input_link(&in[MAT_IN_EMIT]); + shi.emit = gpu_get_input_link(mat, &in[MAT_IN_EMIT]); if (hasinput[MAT_IN_SPECTRA]) - shi.spectra = gpu_get_input_link(&in[MAT_IN_SPECTRA]); + shi.spectra = gpu_get_input_link(mat, &in[MAT_IN_SPECTRA]); if (hasinput[MAT_IN_ALPHA]) - shi.alpha = gpu_get_input_link(&in[MAT_IN_ALPHA]); + shi.alpha = gpu_get_input_link(mat, &in[MAT_IN_ALPHA]); } GPU_shaderesult_set(&shi, &shr); /* clears shr */ diff --git a/source/blender/python/intern/bpy_library_write.c b/source/blender/python/intern/bpy_library_write.c index f582cebb260..bf91253141a 100644 --- a/source/blender/python/intern/bpy_library_write.c +++ b/source/blender/python/intern/bpy_library_write.c @@ -50,7 +50,7 @@ PyDoc_STRVAR(bpy_lib_write_doc, -".. method:: write(filepath, datablocks, relative_remap=False, fake_user=False)\n" +".. method:: write(filepath, datablocks, relative_remap=False, fake_user=False, compress=False)\n" "\n" " Write data-blocks into a blend file.\n" "\n" diff --git a/source/blender/render/intern/raytrace/rayobject.cpp b/source/blender/render/intern/raytrace/rayobject.cpp index 2104315dc00..c16ef5500df 100644 --- a/source/blender/render/intern/raytrace/rayobject.cpp +++ b/source/blender/render/intern/raytrace/rayobject.cpp @@ -138,16 +138,81 @@ MALWAYS_INLINE int vlr_check_bake(Isect *is, ObjectInstanceRen *obi, VlakRen *UN /* Ray Triangle/Quad Intersection */ -MALWAYS_INLINE int isec_tri_quad(float start[3], const struct IsectRayPrecalc *isect_precalc, RayFace *face, float r_uv[2], float *lambda) +static bool isect_ray_tri_watertight_no_sign_check_v3( + const float ray_origin[3], const struct IsectRayPrecalc *isect_precalc, + const float v0[3], const float v1[3], const float v2[3], + float *r_lambda, float r_uv[2]) +{ + const int kx = isect_precalc->kx; + const int ky = isect_precalc->ky; + const int kz = isect_precalc->kz; + const float sx = isect_precalc->sx; + const float sy = isect_precalc->sy; + const float sz = isect_precalc->sz; + + /* Calculate vertices relative to ray origin. */ + const float a[3] = {v0[0] - ray_origin[0], v0[1] - ray_origin[1], v0[2] - ray_origin[2]}; + const float b[3] = {v1[0] - ray_origin[0], v1[1] - ray_origin[1], v1[2] - ray_origin[2]}; + const float c[3] = {v2[0] - ray_origin[0], v2[1] - ray_origin[1], v2[2] - ray_origin[2]}; + + const float a_kx = a[kx], a_ky = a[ky], a_kz = a[kz]; + const float b_kx = b[kx], b_ky = b[ky], b_kz = b[kz]; + const float c_kx = c[kx], c_ky = c[ky], c_kz = c[kz]; + + /* Perform shear and scale of vertices. */ + const float ax = a_kx - sx * a_kz; + const float ay = a_ky - sy * a_kz; + const float bx = b_kx - sx * b_kz; + const float by = b_ky - sy * b_kz; + const float cx = c_kx - sx * c_kz; + const float cy = c_ky - sy * c_kz; + + /* Calculate scaled barycentric coordinates. */ + const float u = cx * by - cy * bx; + const float v = ax * cy - ay * cx; + const float w = bx * ay - by * ax; + float det; + + if ((u < 0.0f || v < 0.0f || w < 0.0f) && + (u > 0.0f || v > 0.0f || w > 0.0f)) + { + return false; + } + + /* Calculate determinant. */ + det = u + v + w; + if (UNLIKELY(det == 0.0f)) { + return false; + } + else { + /* Calculate scaled z-coordinates of vertices and use them to calculate + * the hit distance. + */ + const float t = (u * a_kz + v * b_kz + w * c_kz) * sz; + /* Normalize u, v and t. */ + const float inv_det = 1.0f / det; + if (r_uv) { + r_uv[0] = u * inv_det; + r_uv[1] = v * inv_det; + } + *r_lambda = t * inv_det; + return true; + } +} + +MALWAYS_INLINE int isec_tri_quad(const float start[3], + const struct IsectRayPrecalc *isect_precalc, + const RayFace *face, + float r_uv[2], float *r_lambda) { float uv[2], l; if (isect_ray_tri_watertight_v3(start, isect_precalc, face->v1, face->v2, face->v3, &l, uv)) { /* check if intersection is within ray length */ - if (l > -RE_RAYTRACE_EPSILON && l < *lambda) { + if (l > -RE_RAYTRACE_EPSILON && l < *r_lambda) { r_uv[0] = -uv[0]; r_uv[1] = -uv[1]; - *lambda = l; + *r_lambda = l; return 1; } } @@ -156,10 +221,10 @@ MALWAYS_INLINE int isec_tri_quad(float start[3], const struct IsectRayPrecalc *i if (RE_rayface_isQuad(face)) { if (isect_ray_tri_watertight_v3(start, isect_precalc, face->v1, face->v3, face->v4, &l, uv)) { /* check if intersection is within ray length */ - if (l > -RE_RAYTRACE_EPSILON && l < *lambda) { + if (l > -RE_RAYTRACE_EPSILON && l < *r_lambda) { r_uv[0] = -uv[0]; r_uv[1] = -uv[1]; - *lambda = l; + *r_lambda = l; return 2; } } @@ -170,24 +235,25 @@ MALWAYS_INLINE int isec_tri_quad(float start[3], const struct IsectRayPrecalc *i /* Simpler yes/no Ray Triangle/Quad Intersection */ -MALWAYS_INLINE int isec_tri_quad_neighbour(float start[3], float dir[3], RayFace *face) +MALWAYS_INLINE int isec_tri_quad_neighbour(const float start[3], + const float dir[3], + const RayFace *face) { float r[3]; struct IsectRayPrecalc isect_precalc; float uv[2], l; - negate_v3_v3(r, dir); /* note, different than above function */ isect_ray_tri_watertight_v3_precalc(&isect_precalc, r); - if (isect_ray_tri_watertight_v3(start, &isect_precalc, face->v1, face->v2, face->v3, &l, uv)) { + if (isect_ray_tri_watertight_no_sign_check_v3(start, &isect_precalc, face->v1, face->v2, face->v3, &l, uv)) { return 1; } /* intersect second triangle in quad */ if (RE_rayface_isQuad(face)) { - if (isect_ray_tri_watertight_v3(start, &isect_precalc, face->v1, face->v3, face->v4, &l, uv)) { + if (isect_ray_tri_watertight_no_sign_check_v3(start, &isect_precalc, face->v1, face->v3, face->v4, &l, uv)) { return 2; } } diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 363267bb363..badc438b826 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -3058,6 +3058,13 @@ bool RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList * } #endif + if (RE_seq_render_active(scene, &scene->r)) { + if (scene->r.mode & R_BORDER) { + BKE_report(reports, RPT_ERROR, "Border rendering is not supported by sequencer"); + return false; + } + } + /* layer flag tests */ if (!render_scene_has_layers_to_render(scene)) { BKE_report(reports, RPT_ERROR, "All render layers are disabled"); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index fcdab746d57..0c137221856 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1369,12 +1369,13 @@ typedef struct wmOpPopUp { /* Only invoked by OK button in popups created with wm_block_dialog_create() */ static void dialog_exec_cb(bContext *C, void *arg1, void *arg2) { - wmWindowManager *wm = CTX_wm_manager(C); - wmWindow *win = CTX_wm_window(C); - wmOpPopUp *data = arg1; uiBlock *block = arg2; + /* Explicitly set UI_RETURN_OK flag, otherwise the menu might be cancelled + * in case WM_operator_call_ex exits/reloads the current file (T49199). */ + UI_popup_menu_retval_set(block, UI_RETURN_OK, true); + WM_operator_call_ex(C, data->op, true); /* let execute handle freeing it */ @@ -1384,8 +1385,18 @@ static void dialog_exec_cb(bContext *C, void *arg1, void *arg2) /* in this case, wm_operator_ui_popup_cancel wont run */ MEM_freeN(data); + /* get context data *after* WM_operator_call_ex which might have closed the current file and changed context */ + wmWindowManager *wm = CTX_wm_manager(C); + wmWindow *win = CTX_wm_window(C); + /* check window before 'block->handle' incase the - * popup execution closed the window and freed the block. see T44688. */ + * popup execution closed the window and freed the block. see T44688. + */ + /* Post 2.78 TODO: Check if this fix and others related to T44688 are still + * needed or can be improved now that requesting context data has been corrected + * (see above). We're close to release so not a good time for experiments. + * -- Julian + */ if (BLI_findindex(&wm->windows, win) != -1) { UI_popup_block_close(C, win, block); } diff --git a/source/blenderplayer/CMakeLists.txt b/source/blenderplayer/CMakeLists.txt index 2748de0e7dd..58bebc66a3e 100644 --- a/source/blenderplayer/CMakeLists.txt +++ b/source/blenderplayer/CMakeLists.txt @@ -58,7 +58,7 @@ if(WIN32 AND NOT UNIX) blenderplayer ${EXETYPE} bad_level_call_stubs/stubs.c ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.rc) - + WINDOWS_SIGN_TARGET(blenderplayer) install(TARGETS blenderplayer COMPONENT Blenderplayer DESTINATION ".") diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 7acea43d1f5..fc02dfda9d1 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -263,6 +263,7 @@ if(WITH_PYTHON_MODULE) else() add_executable(blender ${EXETYPE} ${SRC}) + WINDOWS_SIGN_TARGET(blender) endif() if(WITH_BUILDINFO) diff --git a/source/creator/creator.c b/source/creator/creator.c index ccb3e02e0a9..076be40ce94 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -54,6 +54,7 @@ #include "BKE_appdir.h" #include "BKE_blender.h" #include "BKE_brush.h" +#include "BKE_cachefile.h" #include "BKE_context.h" #include "BKE_depsgraph.h" /* for DAG_init */ #include "BKE_font.h" @@ -356,6 +357,7 @@ int main( BKE_blender_globals_init(); /* blender.c */ IMB_init(); + BKE_cachefiles_init(); BKE_images_init(); BKE_modifier_init(); DAG_init(); diff --git a/source/gameengine/GamePlayer/ghost/CMakeLists.txt b/source/gameengine/GamePlayer/ghost/CMakeLists.txt index 6c09af33f9e..577e25d6198 100644 --- a/source/gameengine/GamePlayer/ghost/CMakeLists.txt +++ b/source/gameengine/GamePlayer/ghost/CMakeLists.txt @@ -81,6 +81,10 @@ if(WIN32) blender_include_dirs(../../../../intern/utfconv) endif() +if(WITH_INPUT_NDOF) + add_definitions(-DWITH_INPUT_NDOF) +endif(WITH_INPUT_NDOF) + if(WITH_CODEC_FFMPEG) add_definitions(-DWITH_FFMPEG) endif() diff --git a/source/tools b/source/tools -Subproject 373945d0978b6601c55c9d5879e0f488b18515c +Subproject 896c5f78952adb2d091d28c65086d46992dabda |