Adding upstream version 1.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
10
.clang-tidy
Normal file
|
@ -0,0 +1,10 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
Checks: '-*, modernize-deprecated-headers, modernize-loop-convert, modernize-use-override, modernize-redundant-void-arg, modernize-use-emplace, modernize-use-noexcept, modernize-use-bool-literals, modernize-pass-by-value, modernize-use-equals-delete'
|
||||
#, modernize-use-equals-default (gave false results)
|
||||
#, readability-*, bugprone-*'
|
||||
WarningsAsErrors: ''
|
||||
HeaderFilterRegex: '.*/src/[^3].*'
|
||||
FormatStyle: 'file'
|
||||
CheckOptions:
|
||||
- key: modernize-loop-convert.UseCxx20ReverseRanges
|
||||
value: false
|
13
.gitmessage
Normal file
|
@ -0,0 +1,13 @@
|
|||
Put your meaningful title here, 50 characters max
|
||||
|
||||
Your meaningful description follows after a blank line.
|
||||
Please follow the "seven rules of a great Git commit message":
|
||||
https://chris.beams.io/posts/git-commit/
|
||||
|
||||
Activate this git commit message template like this:
|
||||
git config commit.template .gitmessage
|
||||
|
||||
If you fix a bug with this commit, then mention it with the full URL and a
|
||||
GitLab recognized keyword, if applicable. Like this:
|
||||
|
||||
Fixes https://gitlab.com/inkscape/inkscape/-/issues/1234
|
12
.gitmodules
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
[submodule "share/extensions"]
|
||||
path = share/extensions
|
||||
url = https://gitlab.com/inkscape/extensions.git
|
||||
[submodule "src/3rdparty/2geom"]
|
||||
path = src/3rdparty/2geom
|
||||
url = https://gitlab.com/inkscape/lib2geom.git
|
||||
[submodule "share/themes"]
|
||||
path = share/themes
|
||||
url = https://gitlab.com/inkscape/themes.git
|
||||
[submodule "src/3rdparty/libcroco"]
|
||||
path = src/3rdparty/libcroco
|
||||
url = https://gitlab.com/inkscape/libcroco.git
|
191
AUTHORS
Normal file
|
@ -0,0 +1,191 @@
|
|||
Maximilian Albert
|
||||
Joshua A. Andler
|
||||
Tavmjong Bah
|
||||
Pierre Barbry-Blot
|
||||
Jean-François Barraud
|
||||
Campbell Barton
|
||||
Bill Baxter
|
||||
John Beard
|
||||
John Bintz
|
||||
Arpad Biro
|
||||
Nicholas Bishop
|
||||
Joshua L. Blocher
|
||||
Hanno Böck
|
||||
Tomasz Boczkowski
|
||||
Adrian Boguszewski
|
||||
Henrik Bohre
|
||||
Boldewyn
|
||||
Daniel Boles
|
||||
Daniel Borgmann
|
||||
Bastien Bouclet
|
||||
Hans Breuer
|
||||
Gustav Broberg
|
||||
Christopher Brown
|
||||
Marcus Brubaker
|
||||
Luca Bruno
|
||||
Brynn
|
||||
Nicu Buculei
|
||||
Bulia Byak
|
||||
Pierre Caclin
|
||||
Ian Caldwell
|
||||
Gail Carmichael
|
||||
Ed Catmur
|
||||
Chema Celorio
|
||||
Jabiertxo Arraiza Cenoz
|
||||
Johan Ceuppens
|
||||
Zbigniew Chyla
|
||||
Alexander Clausen
|
||||
John Cliff
|
||||
Kees Cook
|
||||
Ben Cromwell
|
||||
Jon Cruz
|
||||
Aurélie De-Cooman
|
||||
Kris De Gussem
|
||||
Milosz Derezynski
|
||||
Daniel Díaz
|
||||
Bruno Dilly
|
||||
Larry Doolittle
|
||||
Nicolas Dufour
|
||||
Tim Dwyer
|
||||
Maxim V. Dziumanenko
|
||||
Moritz Eberl
|
||||
Johan Engelen
|
||||
Miklos Erdelyi
|
||||
Ulf Erikson
|
||||
Noé Falzon
|
||||
Sebastian Faubel
|
||||
Frank Felfe
|
||||
Andrew Fitzsimon
|
||||
Edward Flick
|
||||
Marcin Floryan
|
||||
Fred
|
||||
Ben Fowler
|
||||
Cedric Gemy
|
||||
Steren Giannini
|
||||
Olivier Gondouin
|
||||
Ted Gould
|
||||
Toine de Greef
|
||||
Michael Grosberg
|
||||
Bryce Harrington
|
||||
Dale Harvey
|
||||
Aurélio Adnauer Heckert
|
||||
René de Hesselle
|
||||
Carl Hetherington
|
||||
Jos Hirth
|
||||
Hannes Hochreiner
|
||||
Thomas Holder
|
||||
Joel Holdsworth
|
||||
Christoffer Holmstedt
|
||||
Alan Horkan
|
||||
Karl Ove Hufthammer
|
||||
Richard Hughes
|
||||
Nathan Hurst
|
||||
inductiveload
|
||||
Thomas Ingham
|
||||
Jean-Olivier Irisson
|
||||
Bob Jamison
|
||||
Ted Janeczko
|
||||
Marc Jeanmougin
|
||||
jEsuSdA
|
||||
Lauris Kaplinski
|
||||
Lynn Kerby
|
||||
Niko Kiirala
|
||||
James Kilfiger
|
||||
Nikita Kitaev
|
||||
Jason Kivlighn
|
||||
Adrian Knoth
|
||||
Krzysztof Kosiński
|
||||
Petr Kovar
|
||||
Michael Kowalski
|
||||
Benoît Lavorata
|
||||
Alex Leone
|
||||
Julien Leray
|
||||
Raph Levien
|
||||
Diederik van Lierop
|
||||
Nicklas Lindgren
|
||||
Vitaly Lipatov
|
||||
Ivan Louette
|
||||
Fernando Lucchesi Bastos Jurema
|
||||
Pierre-Antoine Marc
|
||||
Aurel-Aimé Marmion
|
||||
Colin Marquardt
|
||||
Craig Marshall
|
||||
Ivan Masár
|
||||
Dmitry G. Mastrukov
|
||||
David Mathog
|
||||
Matiphas
|
||||
Patrick McDermott
|
||||
Michael Meeks
|
||||
Federico Mena
|
||||
MenTaLguY
|
||||
Aubanel Monnier
|
||||
Vincent Montagne
|
||||
Tim Mooney
|
||||
Derek P. Moore
|
||||
Chris Morgan
|
||||
Peter Moulder
|
||||
Jörg Müller
|
||||
Yukihiro Nakai
|
||||
Victor Navez
|
||||
Jonathan Neuhauser
|
||||
Christian Neumair
|
||||
Nick
|
||||
Andreas Nilsson
|
||||
Mitsuru Oka
|
||||
Vinícius dos Santos Oliveira
|
||||
Martin Owens
|
||||
PBS
|
||||
Alvin Penner
|
||||
Matthew Petroff
|
||||
Jon Phillips
|
||||
Zdenko Podobny
|
||||
Alexandre Prokoudine
|
||||
Jean-René Reinhard
|
||||
Alexey Remizov
|
||||
Frederic Rodrigo
|
||||
Hugo Rodrigues
|
||||
Jean Franco Amoni Rodríguez
|
||||
Juarez Rudsatz
|
||||
Xavier Conde Rueda
|
||||
Felipe Corrêa da Silva Sanches
|
||||
Christian Schaller
|
||||
Marco Scholten
|
||||
Tom von Schwerdtner
|
||||
Markus Schwienbacher
|
||||
Danilo Šegan
|
||||
Abhishek Sharma
|
||||
Tim Sheridan
|
||||
Shivaken
|
||||
Rafał Siejakowski
|
||||
Michael Sloan
|
||||
John Smith
|
||||
Sandra Snan
|
||||
Boštjan Špetič
|
||||
Aaron Spike
|
||||
Kaushik Sridharan
|
||||
Ralf Stephan
|
||||
Dariusz Stojek
|
||||
Patrick Storz
|
||||
Martin Sucha
|
||||
Sushant A.A.
|
||||
~suv
|
||||
Pat Suwalski
|
||||
Adib Taraben
|
||||
Parcly Taxel
|
||||
Hugh Tebby
|
||||
Jonas Termeau
|
||||
David Turner
|
||||
Andre Twupack
|
||||
Aleksandar Urošević
|
||||
Alex Valavanis
|
||||
Joakim Verona
|
||||
Lucas Vieites
|
||||
Daniel Wagenaar
|
||||
Liam P. White
|
||||
Sebastian Wüst
|
||||
Michael Wybrow
|
||||
Gellule Xg
|
||||
Daniel Yacob
|
||||
Masatake Yamato
|
||||
David Yip
|
||||
Wen-Wei Kao
|
305
CMakeLists.txt
Normal file
|
@ -0,0 +1,305 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
cmake_minimum_required(VERSION 3.1.0)
|
||||
|
||||
cmake_policy(SET CMP0003 NEW) # don't be prolific with library paths
|
||||
cmake_policy(SET CMP0005 NEW) # proper define quoting
|
||||
cmake_policy(SET CMP0009 NEW) # don't follow symbolic links when using GLOB
|
||||
|
||||
if(POLICY CMP0075)
|
||||
cmake_policy(SET CMP0075 NEW) # link check-executable to CMAKE_REQUIRED_LIBRARIES (CMake 3.12.1)
|
||||
endif(POLICY CMP0075)
|
||||
|
||||
message("------------------------------")
|
||||
message("Building Makefile for Inkscape")
|
||||
message("------------------------------")
|
||||
message("Source Dir: ${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
message("Binary Dir: ${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# CMake Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
# set(CMAKE_CXX_EXTENSIONS OFF) # enforces -std=c++20 instead of -std=gnu++20
|
||||
# TODO: build currently fails with it as we actually depend on GNU compiler extensions...
|
||||
# mostly use of the non-Standard M_PI et al. TODO: C++20: Use the <numbers> header.
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeScripts/Modules")
|
||||
|
||||
# avoid having empty buildtype
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
include(CMakeScripts/HelperFunctions.cmake)
|
||||
include(CMakeScripts/ConfigEnv.cmake)
|
||||
|
||||
project(inkscape)
|
||||
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME inkscape) # needs to be before any install() commands
|
||||
|
||||
include(GNUInstallDirs) # for the CMAKE_INSTALL_LIBDIR variable
|
||||
include(CMakeScripts/ConfigPaths.cmake)
|
||||
include(CMakeDependentOption)
|
||||
|
||||
set(PROJECT_NAME inkscape)
|
||||
|
||||
# see https://gitlab.com/inkscape/inkscape/-/issues/551 for versioning suffixes
|
||||
set(INKSCAPE_VERSION_MAJOR 1)
|
||||
set(INKSCAPE_VERSION_MINOR 4)
|
||||
set(INKSCAPE_VERSION_PATCH 0)
|
||||
set(INKSCAPE_VERSION_SUFFIX "")
|
||||
|
||||
set(INKSCAPE_VERSION ${INKSCAPE_VERSION_MAJOR}.${INKSCAPE_VERSION_MINOR})
|
||||
if(INKSCAPE_VERSION_PATCH)
|
||||
set(INKSCAPE_VERSION ${INKSCAPE_VERSION}.${INKSCAPE_VERSION_PATCH})
|
||||
endif()
|
||||
if(INKSCAPE_VERSION_SUFFIX)
|
||||
set(INKSCAPE_VERSION ${INKSCAPE_VERSION}${INKSCAPE_VERSION_SUFFIX})
|
||||
endif()
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||
|
||||
file(RELATIVE_PATH
|
||||
INKSCAPE_INSTALL_LIBDIR_RELATIVE_TO_BINDIR
|
||||
"${CMAKE_INSTALL_FULL_BINDIR}"
|
||||
"${CMAKE_INSTALL_FULL_LIBDIR}/inkscape")
|
||||
|
||||
if(APPLE)
|
||||
SET(CMAKE_MACOSX_RPATH TRUE)
|
||||
SET(CMAKE_INSTALL_RPATH "@loader_path/${INKSCAPE_INSTALL_LIBDIR_RELATIVE_TO_BINDIR}")
|
||||
else()
|
||||
SET(CMAKE_INSTALL_RPATH "$ORIGIN/${INKSCAPE_INSTALL_LIBDIR_RELATIVE_TO_BINDIR}")
|
||||
endif()
|
||||
|
||||
# this can be removed if/when cmake 3.1 is made the minimum required version
|
||||
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
|
||||
|
||||
# console output is slow as hell on Windows and as a result status messages of the "install" target slow down
|
||||
# the whole build process considerably (especially since we also copy a lot of files from the devlibs)
|
||||
# TODO: Is this worth to be configurable / also applicable to other platforms?
|
||||
if(WIN32 AND NOT CMAKE_INSTALL_MESSAGE)
|
||||
set(CMAKE_INSTALL_MESSAGE "LAZY")
|
||||
endif()
|
||||
|
||||
# Define a very strict set of build flags that will prevent any use of deprecated symbols.
|
||||
# This will almost certainly cause compilation failure and is intended only for developer use.
|
||||
set(CMAKE_CXX_FLAGS_STRICT "${CMAKE_CXX_FLAGS_DEBUG} -Werror=deprecated-declarations -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DGDKMM_DISABLE_DEPRECATED -DGLIBMM_DISABLE_DEPRECATED"
|
||||
CACHE STRING
|
||||
"Flags used by C++ compiler during Strict builds"
|
||||
FORCE)
|
||||
set(CMAKE_C_FLAGS_STRICT "${CMAKE_C_FLAGS_DEBUG} -Werror=deprecated-declarations -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTKMM_DISABLE_DEPRECATED -DGDKMM_DISABLE_DEPRECATED"
|
||||
CACHE STRING
|
||||
"Flags used by C compiler during Strict builds"
|
||||
FORCE)
|
||||
mark_as_advanced(
|
||||
CMAKE_CXX_FLAGS_STRICT
|
||||
CMAKE_C_FLAGS_STRICT)
|
||||
|
||||
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING
|
||||
"Choose the type of build, options are: None(CMAKE_CXXFLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel Strict."
|
||||
FORCE)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Redirect output files
|
||||
# -----------------------------------------------------------------------------
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR} CACHE PATH "Output directory for runtime binaries")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} CACHE PATH "Output directory for shared libraries")
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} CACHE PATH "Output directory for static libraries")
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Options
|
||||
# -----------------------------------------------------------------------------
|
||||
option(WITH_GNU_READLINE "Compile with GNU Readline support (shell mode)" ON)
|
||||
option(ENABLE_LCMS "Compile with LCMS support" ON)
|
||||
option(WITH_SVG2 "Compile with support for new SVG2 features" ON)
|
||||
option(WITH_LPETOOL "Compile with LPE Tool" OFF)
|
||||
option(LPE_ENABLE_TEST_EFFECTS "Compile with test experimental LPEs enabled" OFF)
|
||||
option(WITH_OPENMP "Compile with OpenMP support" ON)
|
||||
option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling
|
||||
option(BUILD_SHARED_LIBS "Compile libraries as shared and not static" ON)
|
||||
|
||||
option(ENABLE_POPPLER "Compile with support of libpoppler" ON)
|
||||
option(ENABLE_POPPLER_CAIRO "Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)" ON)
|
||||
option(WITH_IMAGE_MAGICK "Compile with support of ImageMagick for raster extensions and image import resolution (requires ImageMagick 6; set to OFF if you prefer GraphicsMagick)" ON)
|
||||
option(WITH_GRAPHICS_MAGICK "Compile with support of GraphicsMagick for raster extensions and image import resolution" ON)
|
||||
option(WITH_LIBCDR "Compile with support of libcdr for CorelDRAW Diagrams" ON)
|
||||
option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON)
|
||||
option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON)
|
||||
option(WITH_GSPELL "Compile with support of gspell" ON)
|
||||
option(WITH_GSOURCEVIEW "Compile with support of gsourceview (text syntax coloring)" ON)
|
||||
option(WITH_NLS "Compile with Native Language Support (using gettext)" ON)
|
||||
option(WITH_JEMALLOC "Compile with JEMALLOC support" OFF)
|
||||
option(WITH_ASAN "Compile with Clang's AddressSanitizer (for debugging purposes)" OFF)
|
||||
option(WITH_INTERNAL_2GEOM "Prefer internal copy of lib2geom" OFF)
|
||||
cmake_dependent_option(WITH_X11 "Compile with X11 support" ON "UNIX; NOT APPLE" OFF)
|
||||
|
||||
option(WITH_FUZZ "Compile for fuzzing purpose (use 'make fuzz' only)" OFF)
|
||||
mark_as_advanced(WITH_FUZZ)
|
||||
option(WITH_MANPAGE_COMPRESSION "gzips manpages if gzip is available" ON)
|
||||
mark_as_advanced(WITH_MANPAGE_COMPRESSION)
|
||||
|
||||
option(ENABLE_BINRELOC "Enable relocatable binaries" OFF)
|
||||
|
||||
|
||||
include(CMakeScripts/DefineDependsandFlags.cmake) # Includes, Compiler Flags, and Link Libraries
|
||||
include(CMakeScripts/HelperMacros.cmake) # Misc Utility Macros
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# BAD HACKS, NEED TO INVESTIGATE MAKING THESE LESS BAD
|
||||
if(BUILD_SHARED_LIBS AND NOT WIN32)
|
||||
add_definitions(-fPIC)
|
||||
endif()
|
||||
#
|
||||
# end badness
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Subdirectories
|
||||
# -----------------------------------------------------------------------------
|
||||
add_subdirectory(src)
|
||||
|
||||
if(ENABLE_NLS)
|
||||
add_subdirectory(po)
|
||||
endif(ENABLE_NLS)
|
||||
|
||||
if(NOT WIN32)
|
||||
include(CMakeScripts/Pod2man.cmake)
|
||||
add_subdirectory(man)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Check License Headers
|
||||
# -----------------------------------------------------------------------------
|
||||
add_custom_target(check-license-headers WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ./buildtools/check_license_headers.py)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Test Harness
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
if(BUILD_TESTING OR NOT DEFINED BUILD_TESTING)
|
||||
find_package(GTest)
|
||||
if(GTEST_FOUND)
|
||||
set(DART_TESTING_TIMEOUT 180 CACHE STRING "Test timeout") # if running for > 180 s something must be wrong)
|
||||
include(CTest)
|
||||
add_subdirectory(testfiles EXCLUDE_FROM_ALL)
|
||||
else()
|
||||
set(BUILD_TESTING OFF)
|
||||
message(WARNING "No gtest found! Disabling testing...\n"
|
||||
"Consider installing it via package manager (install 'libgtest-dev' or equivalent).")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Clean Targets
|
||||
# -----------------------------------------------------------------------------
|
||||
add_custom_target(clean-cmake-files
|
||||
COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_SOURCE_DIR}/CMakeScripts/CleanAll.cmake"
|
||||
)
|
||||
|
||||
add_custom_target(clean-all
|
||||
COMMAND ${CMAKE_BUILD_TOOL} clean
|
||||
COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_SOURCE_DIR}/CMakeScripts/CleanAll.cmake"
|
||||
)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Install Target
|
||||
# -----------------------------------------------------------------------------
|
||||
add_subdirectory(share)
|
||||
|
||||
if(WIN32)
|
||||
include(CMakeScripts/InstallMSYS2.cmake)
|
||||
endif()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Uninstall Target
|
||||
# -----------------------------------------------------------------------------
|
||||
if(WIN32)
|
||||
add_custom_target(uninstall
|
||||
"${CMAKE_COMMAND}" -E remove_directory "${CMAKE_INSTALL_PREFIX}")
|
||||
else()
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/CMakeScripts/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
@ONLY)
|
||||
add_custom_target(uninstall
|
||||
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
||||
endif()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Dist Targets
|
||||
# -----------------------------------------------------------------------------
|
||||
include(CMakeScripts/Dist.cmake)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Packaging (CPack)
|
||||
# -----------------------------------------------------------------------------
|
||||
include(CMakeScripts/ConfigCPack.cmake)
|
||||
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Information Summary
|
||||
# ----------------------------------------------------------------------
|
||||
message("------------------------------------------------------------------------")
|
||||
message("Configuration Summary")
|
||||
message("------------------------------------------------------------------------")
|
||||
# project info
|
||||
message("PROJECT_NAME: ${PROJECT_NAME}")
|
||||
message("INKSCAPE_VERSION: ${INKSCAPE_VERSION}")
|
||||
message("INKSCAPE_DIST_PREFIX: ${INKSCAPE_DIST_PREFIX}")
|
||||
message("")
|
||||
|
||||
# cmake info
|
||||
message("CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")
|
||||
message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
|
||||
message("CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}")
|
||||
message("PACKAGE_LOCALE_DIR ${PACKAGE_LOCALE_DIR}")
|
||||
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
|
||||
message("CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}")
|
||||
message("CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
message("CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
|
||||
message("CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
|
||||
message("CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
||||
message("")
|
||||
|
||||
if(WIN32)
|
||||
message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
|
||||
message("CMAKE_FIND_LIBRARY_PREFIXES: ${CMAKE_FIND_LIBRARY_PREFIXES}")
|
||||
message("CMAKE_FIND_LIBRARY_SUFFIXES: ${CMAKE_FIND_LIBRARY_SUFFIXES}")
|
||||
message("")
|
||||
endif()
|
||||
|
||||
# dependency info
|
||||
message("ENABLE_LCMS: ${ENABLE_LCMS}")
|
||||
message("ENABLE_POPPLER: ${ENABLE_POPPLER}")
|
||||
message("ENABLE_POPPLER_CAIRO: ${ENABLE_POPPLER_CAIRO}")
|
||||
message("WITH_GNU_READLINE: ${WITH_GNU_READLINE}")
|
||||
message("WITH_GSPELL: ${WITH_GSPELL}")
|
||||
message("WITH_GSOURCEVIEW: ${WITH_GSOURCEVIEW}")
|
||||
message("WITH_IMAGE_MAGICK: ${WITH_IMAGE_MAGICK}")
|
||||
message("WITH_GRAPHICS_MAGICK: ${WITH_GRAPHICS_MAGICK}")
|
||||
message("WITH_LIBCDR: ${WITH_LIBCDR}")
|
||||
message("WITH_LIBVISIO: ${WITH_LIBVISIO}")
|
||||
message("WITH_LIBWPG: ${WITH_LIBWPG}")
|
||||
message("WITH_NLS: ${WITH_NLS}")
|
||||
message("WITH_OPENMP: ${WITH_OPENMP}")
|
||||
message("WITH_JEMALLOC: ${WITH_JEMALLOC}")
|
||||
message("WITH_ASAN: ${WITH_ASAN}")
|
||||
message("WITH_INTERNAL_2GEOM: ${WITH_INTERNAL_2GEOM}")
|
||||
message("WITH_X11: ${WITH_X11}")
|
||||
|
||||
message("WITH_PROFILING: ${WITH_PROFILING}")
|
||||
message("BUILD_TESTING: ${BUILD_TESTING}")
|
||||
|
||||
if(WIN32)
|
||||
message("")
|
||||
message("HAVE_MINGW64: ${HAVE_MINGW64}")
|
||||
message("MINGW_PATH: ${MINGW_PATH}")
|
||||
message("MINGW_ARCH: ${MINGW_ARCH}")
|
||||
endif()
|
||||
|
||||
message("------------------------------------------------------------------------")
|
22
CMakeScripts/COPYING-CMAKE-SCRIPTS
Normal file
|
@ -0,0 +1,22 @@
|
|||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
21
CMakeScripts/CPack.cmake
Normal file
|
@ -0,0 +1,21 @@
|
|||
# This file reconfigures variables at CPack time.
|
||||
#
|
||||
# It is called by
|
||||
# https://cmake.org/cmake/help/latest/module/CPack.html#variable:CPACK_PROJECT_CONFIG_FILE
|
||||
#
|
||||
|
||||
#used to get cmake-time variables at cpack-time
|
||||
set(INKSCAPE_VERSION_SUFFIX @INKSCAPE_VERSION_SUFFIX@)
|
||||
set(CMAKE_SOURCE_DIR @CMAKE_SOURCE_DIR@)
|
||||
|
||||
if(CPACK_GENERATOR STREQUAL "NSIS")
|
||||
# NSIS doesn't always like forward slashes
|
||||
file(TO_NATIVE_PATH "${CPACK_NSIS_MUI_HEADERIMAGE}" CPACK_NSIS_MUI_HEADERIMAGE_NATIVE)
|
||||
set(CPACK_NSIS_MUI_HEADERIMAGE "${CPACK_NSIS_MUI_HEADERIMAGE_NATIVE}")
|
||||
file(TO_NATIVE_PATH "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP}" CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP_NATIVE)
|
||||
set(CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP_NATIVE}")
|
||||
|
||||
elseif(CPACK_GENERATOR STREQUAL "WIX")
|
||||
# for wix version values need to look like 'x.x.x.x' where x is an integer from 0 to 65534.
|
||||
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
|
||||
endif()
|
17
CMakeScripts/CleanAll.cmake
Normal file
|
@ -0,0 +1,17 @@
|
|||
set(_generated
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeCache.txt
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/po/cmake_install.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Makefile
|
||||
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles
|
||||
)
|
||||
|
||||
message("${_generated}")
|
||||
|
||||
foreach(file ${_generated})
|
||||
if(EXISTS ${file})
|
||||
message("Removing ${file}")
|
||||
file(REMOVE_RECURSE ${file})
|
||||
endif()
|
||||
endforeach(file)
|
231
CMakeScripts/ConfigCPack.cmake
Normal file
|
@ -0,0 +1,231 @@
|
|||
############################
|
||||
# CPack configuration file #
|
||||
############################
|
||||
|
||||
|
||||
## General ##
|
||||
|
||||
set(CPACK_PACKAGE_NAME "Inkscape")
|
||||
set(CPACK_PACKAGE_VENDOR "Inkscape")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${INKSCAPE_VERSION_MAJOR}) # TODO: Can be set via project(), see CMAKE_PROJECT_VERSION_PATCH
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${INKSCAPE_VERSION_MINOR})
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${INKSCAPE_VERSION_PATCH})
|
||||
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}${INKSCAPE_VERSION_SUFFIX}")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") # TODO: Where is this used? Do we need a better source?
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Open-source vector graphics editor")
|
||||
set(CPACK_PACKAGE_HOMEPAGE_URL "https://inkscape.org")
|
||||
set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/branding/inkscape.svg") # TODO: Can any generator make use of this?
|
||||
set(CPACK_PACKAGE_CONTACT "Inkscape developers <inkscape-devel@lists.inkscape.org>")
|
||||
|
||||
set(CPACK_PACKAGE_FILE_NAME ${INKSCAPE_DIST_PREFIX})
|
||||
set(CPACK_PACKAGE_CHECKSUM "SHA256")
|
||||
|
||||
set(CPACK_PACKAGE_EXECUTABLES "inkscape;Inkscape;inkview;Inkview")
|
||||
set(CPACK_CREATE_DESKTOP_LINKS "inkscape")
|
||||
|
||||
if(WIN32)
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "Inkscape")
|
||||
set(CPACK_STRIP_FILES FALSE)
|
||||
else()
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "inkscape")
|
||||
set(CPACK_STRIP_FILES TRUE)
|
||||
endif()
|
||||
|
||||
# This creates a screen in the windows installers asking users to "Agree" to the GPL which is incorrect.
|
||||
# set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSES/GPL-3.0.txt")
|
||||
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
|
||||
# set( CPACK_RESOURCE_FILE_WELCOME "${CMAKE_SOURCE_DIR}/README.md") # TODO: can we use this?
|
||||
|
||||
set(CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION TRUE)
|
||||
|
||||
# specific config for source packaging (note this is used by the 'dist' target)
|
||||
set(CPACK_SOURCE_GENERATOR "TXZ")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME ${INKSCAPE_DIST_PREFIX})
|
||||
set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/build/;/obj*/;cscope.*;.gitlab*;.coveragerc;*.md;")
|
||||
|
||||
|
||||
|
||||
|
||||
# this allows to override above configuration per cpack generator at CPack-time
|
||||
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CMakeScripts/CPack.cmake")
|
||||
configure_file("${CMAKE_SOURCE_DIR}/CMakeScripts/CPack.cmake" "${CMAKE_BINARY_DIR}/CMakeScripts/CPack.cmake" @ONLY)
|
||||
|
||||
|
||||
|
||||
|
||||
## Generator-specific configuration ##
|
||||
|
||||
# NSIS (Windows .exe installer)
|
||||
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/branding/inkscape.ico")
|
||||
set(CPACK_NSIS_MUI_HEADERIMAGE "${CMAKE_SOURCE_DIR}/packaging/nsis/header.bmp")
|
||||
set(CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP "${CMAKE_SOURCE_DIR}/packaging/nsis/welcomefinish.bmp")
|
||||
set(CPACK_NSIS_IGNORE_LICENSE_PAGE 1)
|
||||
set(CPACK_NSIS_INSTALLED_ICON_NAME "bin/inkscape.exe")
|
||||
set(CPACK_NSIS_HELP_LINK "${CPACK_PACKAGE_HOMEPAGE_URL}")
|
||||
set(CPACK_NSIS_URL_INFO_ABOUT "${CPACK_PACKAGE_HOMEPAGE_URL}")
|
||||
set(CPACK_NSIS_MENU_LINKS "${CPACK_PACKAGE_HOMEPAGE_URL}" "Inkscape Homepage")
|
||||
set(CPACK_NSIS_COMPRESSOR "/SOLID lzma") # zlib|bzip2|lzma
|
||||
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON")
|
||||
set(CPACK_NSIS_MODIFY_PATH "ON") # while the name does not suggest it, this also provides the possibility to add desktop icons
|
||||
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "inkscape") # TODO: this results in instance with administrative privileges!
|
||||
set(CPACK_NSIS_MANIFEST_DPI_AWARE ON) # Make the text not blurry in installer
|
||||
|
||||
set(CPACK_NSIS_COMPRESSOR "${CPACK_NSIS_COMPRESSOR}\n SetCompressorDictSize 64") # hack (improve compression)
|
||||
set(CPACK_NSIS_COMPRESSOR "${CPACK_NSIS_COMPRESSOR}\n BrandingText '${CPACK_PACKAGE_DESCRIPTION_SUMMARY}'") # hack (overwrite BrandingText)
|
||||
set(CPACK_NSIS_COMPRESSOR "${CPACK_NSIS_COMPRESSOR}\n !define MUI_COMPONENTSPAGE_SMALLDESC") # hack (better components page layout)
|
||||
|
||||
file(TO_NATIVE_PATH "${CMAKE_SOURCE_DIR}/packaging/nsis/fileassoc.nsh" native_path)
|
||||
string(REPLACE "\\" "\\\\" native_path "${native_path}")
|
||||
set(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "!include '${native_path}'")
|
||||
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "\
|
||||
WriteRegStr SHCTX 'SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\App Paths\\\\inkscape.exe' '' '$INSTDIR\\\\bin\\\\inkscape.exe'\n\
|
||||
WriteRegStr SHCTX 'SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\App Paths\\\\inkscape.exe' 'Path' '$INSTDIR\\\\bin'\n\
|
||||
!insertmacro APP_ASSOCIATE 'svg' 'Inkscape.SVG' 'Scalable Vector Graphics' '$INSTDIR\\\\bin\\\\inkscape.exe,0' 'Open with Inkscape' '$INSTDIR\\\\bin\\\\inkscape.exe \\\"%1\\\"'\n\
|
||||
!insertmacro APP_ASSOCIATE 'svgz' 'Inkscape.SVGZ' 'Compressed Scalable Vector Graphics' '$INSTDIR\\\\bin\\\\inkscape.exe,0' 'Open with Inkscape' '$INSTDIR\\\\bin\\\\inkscape.exe \\\"%1\\\"'\n\
|
||||
!insertmacro UPDATEFILEASSOC")
|
||||
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "\
|
||||
DeleteRegKey SHCTX 'SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\App Paths\\\\inkscape.exe'\n\
|
||||
!insertmacro APP_UNASSOCIATE 'svg' 'Inkscape.SVG'\n\
|
||||
!insertmacro APP_UNASSOCIATE 'svgz' 'Inkscape.SVGZ'\n\
|
||||
!insertmacro UPDATEFILEASSOC")
|
||||
|
||||
# WIX (Windows .msi installer)
|
||||
set(CPACK_WIX_UPGRADE_GUID "4d5fedaa-84a0-48be-bd2a-08246398361a")
|
||||
set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/share/branding/inkscape.ico")
|
||||
set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/packaging/wix/Bitmaps/banner.bmp")
|
||||
set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/packaging/wix/Bitmaps/dialog.bmp")
|
||||
set(CPACK_WIX_UI_REF "WixUI_FeatureTree_NoLicense")
|
||||
# install scope should ideally be 'perMachine', but can't be due to https://gitlab.kitware.com/cmake/cmake/-/issues/26029 :-(
|
||||
# This blocks fixing https://gitlab.com/inkscape/inkscape/-/issues/1617 and https://gitlab.com/inkscape/inkscape/-/issues/1618 .
|
||||
set(CPACK_WIX_INSTALL_SCOPE NONE)
|
||||
set(CPACK_WIX_PROPERTY_ARPHELPLINK "${CPACK_PACKAGE_HOMEPAGE_URL}")
|
||||
set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "${CPACK_PACKAGE_HOMEPAGE_URL}")
|
||||
set(CPACK_WIX_PROPERTY_ARPURLUPDATEINFO "${CPACK_PACKAGE_HOMEPAGE_URL}/release")
|
||||
set(CPACK_WIX_ROOT_FEATURE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}")
|
||||
set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-dcl:high") # set high compression
|
||||
|
||||
set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/packaging/wix/app_registration.xml"
|
||||
"${CMAKE_SOURCE_DIR}/packaging/wix/feature_attributes.xml")
|
||||
set(CPACK_WIX_EXTRA_SOURCES "${CMAKE_SOURCE_DIR}/packaging/wix/featuretree_nolicense.wxs")
|
||||
|
||||
# DEB (Linux .deb bundle)
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "graphics")
|
||||
set(CPACK_DEBIAN_INKSCAPE_PACKAGE_SUGGESTS "dia, pstoedit, scribus")
|
||||
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "inkscape") # all package depend on inkscape
|
||||
set(CPACK_DEBIAN_INKSCAPE_PACKAGE_DEPENDS "lib2geom${2GEOM_VERSION}")
|
||||
set(CPACK_DEBIAN_INKSCAPE_PACKAGE_RECOMMENDS "aspell, imagemagick, libwmf-bin, inkscape-extensions, inkscape-translations, inkscape-themes")
|
||||
|
||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||
set(CPACK_COMPONENTS_GROUPING IGNORE)
|
||||
|
||||
set(CPACK_DEBIAN_INKSCAPE-EXTENSIONS_PACKAGE_DEPENDS "python3-numpy, python3-lxml, python3-scour, python3-packaging, python3-cssselect, python3-webencodings, python3-tinycss2, python3-bs4, python3-requests")
|
||||
set(CPACK_DEBIAN_INKSCAPE-EXTENSIONS_PACKAGE_RECOMMENDS "inkscape-extension-manager")
|
||||
set(CPACK_DEBIAN_INKSCAPE-EXTENSION-MANAGER_PACKAGE_DEPENDS "inkscape-extensions, python3-filecache")
|
||||
set(CPACK_DEBIAN_LIB2GEOM-DEV_PACKAGE_RECOMMENDS "lib2geom${2GEOM_VERSION}")
|
||||
set(CPACK_DEBIAN_LIB2GEOM1.3.0_PACKAGE_NAME "lib2geom${2GEOM_VERSION}")
|
||||
set(CPACK_DEBIAN_LIB2GEOM-DEV_PACKAGE_NAME "lib2geom-dev")
|
||||
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
|
||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||
set(CPACK_ADD_LDCONFIG_CALL ON)
|
||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
## load cpack module (do this *after* all the CPACK_* variables have been set)
|
||||
include(CPack)
|
||||
|
||||
|
||||
|
||||
|
||||
## Component definition
|
||||
# - variable names are UPPER CASE, even if component names are lower case
|
||||
# - components/groups are ordered alphabetically by component/group name; groups always come first
|
||||
# - empty (e.g. OS-specific) components are discarded automatically
|
||||
|
||||
cpack_add_install_type(full DISPLAY_NAME Full)
|
||||
cpack_add_install_type(compact DISPLAY_NAME Compact) # no translations, dictionaries, examples, etc.
|
||||
cpack_add_install_type(minimal DISPLAY_NAME Minimal) # minimal "working" set-up, excluding everything non-essential
|
||||
|
||||
cpack_add_component_group(
|
||||
group_1_program_files
|
||||
DISPLAY_NAME "Program Files"
|
||||
EXPANDED)
|
||||
cpack_add_component(inkscape
|
||||
DISPLAY_NAME "Inkscape SVG Editor"
|
||||
DESCRIPTION "Inkscape core files and dependencies"
|
||||
GROUP "group_1_program_files"
|
||||
REQUIRED)
|
||||
cpack_add_component(python
|
||||
DISPLAY_NAME "Python"
|
||||
DESCRIPTION "Python interpreter (required to run Inkscape extensions)"
|
||||
GROUP "group_1_program_files"
|
||||
INSTALL_TYPES full compact)
|
||||
|
||||
cpack_add_component_group(
|
||||
group_2_inkscape_data
|
||||
DISPLAY_NAME "Inkscape Data"
|
||||
EXPANDED)
|
||||
cpack_add_component(extensions
|
||||
DISPLAY_NAME "Extensions"
|
||||
DESCRIPTION "Inkscape extensions (including many import and export plugins)"
|
||||
GROUP "group_2_inkscape_data"
|
||||
INSTALL_TYPES full compact)
|
||||
cpack_add_component(extension_manager
|
||||
DISPLAY_NAME "Extension Manager"
|
||||
DESCRIPTION "Extension manager allows user to install extensions from the inkscape website"
|
||||
DEPENDS "extensions"
|
||||
GROUP "group_2_inkscape_data"
|
||||
INSTALL_TYPES full compact)
|
||||
cpack_add_component(themes
|
||||
DISPLAY_NAME "Themes"
|
||||
DESCRIPTION "Inkscape themes (look and feel including icons)"
|
||||
GROUP "group_2_inkscape_data"
|
||||
INSTALL_TYPES full compact)
|
||||
cpack_add_component(examples
|
||||
DISPLAY_NAME "Examples"
|
||||
DESCRIPTION "Example files created in Inkscape"
|
||||
GROUP "group_2_inkscape_data"
|
||||
INSTALL_TYPES full)
|
||||
cpack_add_component(tutorials
|
||||
DISPLAY_NAME "Tutorials"
|
||||
DESCRIPTION "Tutorials teaching Inkscape usage"
|
||||
GROUP "group_2_inkscape_data"
|
||||
INSTALL_TYPES full)
|
||||
|
||||
cpack_add_component(dictionaries
|
||||
DISPLAY_NAME "Dictionaries"
|
||||
DESCRIPTION "Dictionaries for some common languages for spell checking in Inkscape"
|
||||
INSTALL_TYPES full)
|
||||
|
||||
cpack_add_component_group(
|
||||
group_3_translations
|
||||
DISPLAY_NAME "Translations"
|
||||
DESCRIPTION "Translations and localized content for Inkscape")
|
||||
get_inkscape_languages()
|
||||
list(LENGTH INKSCAPE_LANGUAGE_CODES length)
|
||||
math(EXPR length "${length} - 1")
|
||||
if(WIN32)
|
||||
foreach(index RANGE ${length})
|
||||
list(GET INKSCAPE_LANGUAGE_CODES ${index} language_code)
|
||||
list(GET INKSCAPE_LANGUAGE_NAMES ${index} language_name)
|
||||
string(MAKE_C_IDENTIFIER "${language_code}" language_code_escaped)
|
||||
cpack_add_component(translations.${language_code_escaped}
|
||||
DISPLAY_NAME "${language_name}"
|
||||
GROUP "group_3_translations"
|
||||
INSTALL_TYPES full)
|
||||
endforeach()
|
||||
else()
|
||||
cpack_add_component(translations
|
||||
DISPLAY_NAME "Translations"
|
||||
GROUP "group_3_translations"
|
||||
INSTALL_TYPES full)
|
||||
endif()
|
||||
|
||||
if(WITH_INTERNAL_2GEOM)
|
||||
cpack_add_component(lib2geom_dev
|
||||
DISPLAY_NAME "lib2geom-dev"
|
||||
DESCRIPTION "Geometry library - dev files")
|
||||
cpack_add_component(lib2geom${2GEOM_VERSION}
|
||||
DISPLAY_NAME "lib2geom"
|
||||
DESCRIPTION "Geometry library"
|
||||
HIDDEN REQUIRED)
|
||||
endif()
|
26
CMakeScripts/ConfigChecks.cmake
Normal file
|
@ -0,0 +1,26 @@
|
|||
include(${CMAKE_CURRENT_LIST_DIR}/ConfigPaths.cmake)
|
||||
|
||||
# Set all HAVE_XXX variables, to correctly set all defines in config.h
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckIncludeFileCXX)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckStructHasMember)
|
||||
include(CheckCXXSymbolExists)
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${INKSCAPE_LIBS})
|
||||
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${INKSCAPE_INCS_SYS})
|
||||
|
||||
CHECK_INCLUDE_FILES(ieeefp.h HAVE_IEEEFP_H)
|
||||
CHECK_FUNCTION_EXISTS(mallinfo HAVE_MALLINFO)
|
||||
CHECK_FUNCTION_EXISTS(mallinfo2 HAVE_MALLINFO2)
|
||||
CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H)
|
||||
CHECK_STRUCT_HAS_MEMBER("struct mallinfo" fordblks malloc.h HAVE_STRUCT_MALLINFO_FORDBLKS )
|
||||
CHECK_STRUCT_HAS_MEMBER("struct mallinfo" fsmblks malloc.h HAVE_STRUCT_MALLINFO_FSMBLKS )
|
||||
CHECK_STRUCT_HAS_MEMBER("struct mallinfo" hblkhd malloc.h HAVE_STRUCT_MALLINFO_HBLKHD )
|
||||
CHECK_STRUCT_HAS_MEMBER("struct mallinfo" uordblks malloc.h HAVE_STRUCT_MALLINFO_UORDBLKS )
|
||||
CHECK_STRUCT_HAS_MEMBER("struct mallinfo" usmblks malloc.h HAVE_STRUCT_MALLINFO_USMBLKS )
|
||||
CHECK_CXX_SYMBOL_EXISTS(sincos math.h HAVE_SINCOS) # 2geom define
|
||||
|
||||
# Create the configuration files config.h in the binary root dir
|
||||
configure_file(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/include/config.h)
|
||||
add_definitions(-DHAVE_CONFIG_H)
|
38
CMakeScripts/ConfigEnv.cmake
Normal file
|
@ -0,0 +1,38 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# Set platform defaults (originally copied from darktable)
|
||||
# -----------------------------------------------------------------------------
|
||||
if(WIN32)
|
||||
message("-- Windows build detected, setting default features")
|
||||
|
||||
include(CMakeScripts/ConfigEnvMinGW.cmake)
|
||||
|
||||
# Setup Windows resource files compiler.
|
||||
set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe")
|
||||
set(CMAKE_RC_COMPILER_INIT windres)
|
||||
enable_language(RC)
|
||||
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -i <SOURCE> -o <OBJECT>")
|
||||
|
||||
# These options are required for having i18n support on Windows.
|
||||
option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON)
|
||||
|
||||
# Does not compile on Windows with these options.
|
||||
option(ENABLE_BINRELOC "Compile with binary relocation support" OFF)
|
||||
option(WITH_JEMALLOC "Compile with JEMALLOC support" OFF)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
message("-- Mac OS X build detected, setting default features")
|
||||
|
||||
# prefer macports and/or user-installed libraries over system ones
|
||||
#LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local)
|
||||
set(CMAKE_FIND_FRAMEWORK "LAST")
|
||||
|
||||
# test and display relevant env variables
|
||||
if(DEFINED ENV{CMAKE_PREFIX_PATH})
|
||||
message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}")
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{GTKMM_BASEPATH})
|
||||
message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}")
|
||||
endif()
|
||||
endif()
|
98
CMakeScripts/ConfigEnvMinGW.cmake
Normal file
|
@ -0,0 +1,98 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# Set the paths in this file if you want to build Inkscape from a shell other than the
|
||||
# Windows built-in command line (i.e. MSYS) or IDEs such as CodeLite. These variables
|
||||
# will be used as default if no environment variables are set.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# MinGW Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
message(STATUS "Configuring MinGW environment:")
|
||||
|
||||
if("$ENV{MINGW_CHOST}" STREQUAL "")
|
||||
message(WARNING " Could not detect MinGW build environment. We recommend building with MSYS2. Proceed at your own risk!")
|
||||
else()
|
||||
message(STATUS " Detected MinGW environment provided by MSYS2")
|
||||
set(MINGW_PATH $ENV{MINGW_PREFIX})
|
||||
endif()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# MINGW CHECKS
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Try to determine the MinGW processor architecture.
|
||||
if("$ENV{MINGW_CHOST}" STREQUAL "i686-w64-mingw32")
|
||||
set(HAVE_MINGW64 OFF)
|
||||
set(MINGW_ARCH i686-w64-mingw32)
|
||||
elseif("$ENV{MINGW_CHOST}" STREQUAL "x86_64-w64-mingw32")
|
||||
set(HAVE_MINGW64 ON)
|
||||
set(MINGW_ARCH x86_64-w64-mingw32)
|
||||
elseif("$ENV{MINGW_CHOST}" STREQUAL "aarch64-w64-mingw32")
|
||||
set(HAVE_MINGW64 ON)
|
||||
set(MINGW_ARCH aarch64-w64-mingw32)
|
||||
else()
|
||||
message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?")
|
||||
endif()
|
||||
|
||||
set(MINGW_BIN "${MINGW_PATH}/bin")
|
||||
|
||||
if(NOT EXISTS ${MINGW_BIN})
|
||||
message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}")
|
||||
endif()
|
||||
|
||||
# Eliminate error messages when not having mingw in the environment path variable.
|
||||
list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN})
|
||||
|
||||
set(MINGW_LIB "${MINGW_PATH}/lib")
|
||||
|
||||
if(NOT EXISTS ${MINGW_LIB})
|
||||
message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}")
|
||||
endif()
|
||||
|
||||
# Add MinGW libraries to linker path.
|
||||
link_directories(${MINGW_LIB})
|
||||
|
||||
set(MINGW_INCLUDE "${MINGW_PATH}/include")
|
||||
|
||||
if(NOT EXISTS ${MINGW_INCLUDE})
|
||||
message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}")
|
||||
endif()
|
||||
|
||||
# Add MinGW headers to compiler include path.
|
||||
include_directories(SYSTEM ${MINGW_INCLUDE})
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# MSYS CHECKS
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Somehow the MSYS variable does not work as documented..
|
||||
if("${CMAKE_GENERATOR}" STREQUAL "MSYS Makefiles")
|
||||
set(HAVE_MSYS ON)
|
||||
else()
|
||||
set(HAVE_MSYS OFF)
|
||||
endif()
|
||||
|
||||
# Set the path to the 'ar' utility for the MSYS shell as it fails to detect it properly.
|
||||
if(HAVE_MSYS)
|
||||
message(STATUS "Configuring MSYS environment:")
|
||||
|
||||
if(NOT EXISTS ${CMAKE_AR})
|
||||
set(MINGW_AR ${MINGW_BIN}/ar.exe)
|
||||
|
||||
if(EXISTS ${MINGW_AR})
|
||||
set(CMAKE_AR ${MINGW_AR} CACHE FILEPATH "Archive Utility")
|
||||
else()
|
||||
message(FATAL_ERROR "ar.exe not found.")
|
||||
endif()
|
||||
|
||||
message(STATUS " Setting path to ar.exe: ${CMAKE_AR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# LIBRARY AND LINKER SETTINGS
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Tweak CMake into using Unix-style library names.
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll")
|
23
CMakeScripts/ConfigPaths.cmake
Normal file
|
@ -0,0 +1,23 @@
|
|||
message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
if(WIN32)
|
||||
if(${CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT})
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/inkscape"
|
||||
CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
|
||||
endif()
|
||||
|
||||
set(INKSCAPE_DATADIR "") # can be set via the environment variable INKSCAPE_DATADIR at runtime
|
||||
else()
|
||||
if(NOT INKSCAPE_DATADIR)
|
||||
set(INKSCAPE_DATADIR "${CMAKE_INSTALL_PREFIX}/share")
|
||||
endif(NOT INKSCAPE_DATADIR)
|
||||
endif()
|
||||
|
||||
if(NOT PACKAGE_LOCALE_DIR)
|
||||
set(PACKAGE_LOCALE_DIR "share/locale") # packagers might overwrite this
|
||||
endif(NOT PACKAGE_LOCALE_DIR)
|
||||
|
||||
if(NOT SHARE_INSTALL)
|
||||
set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.")
|
||||
endif(NOT SHARE_INSTALL)
|
||||
set(INKSCAPE_SHARE_INSTALL "${SHARE_INSTALL}/inkscape")
|
474
CMakeScripts/DefineDependsandFlags.cmake
Normal file
|
@ -0,0 +1,474 @@
|
|||
set(INKSCAPE_LIBS "")
|
||||
set(INKSCAPE_INCS "")
|
||||
set(INKSCAPE_INCS_SYS "")
|
||||
set(INKSCAPE_CXX_FLAGS "")
|
||||
set(INKSCAPE_CXX_FLAGS_DEBUG "")
|
||||
|
||||
list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR}
|
||||
${PROJECT_SOURCE_DIR}/src
|
||||
|
||||
# generated includes
|
||||
${CMAKE_BINARY_DIR}/include
|
||||
)
|
||||
|
||||
# NDEBUG implies G_DISABLE_ASSERT
|
||||
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER)
|
||||
if(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER} MATCHES "-DNDEBUG")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-DG_DISABLE_ASSERT")
|
||||
endif()
|
||||
|
||||
# AddressSanitizer
|
||||
# Clang's AddressSanitizer can detect more memory errors and is more powerful
|
||||
# than compiling with _FORTIFY_SOURCE but has a performance impact (approx. 2x
|
||||
# slower), so it's not suitable for release builds.
|
||||
if(WITH_ASAN)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-fsanitize=address -fno-omit-frame-pointer")
|
||||
list(APPEND INKSCAPE_LIBS "-fsanitize=address")
|
||||
else()
|
||||
# Undefine first, to suppress 'warning: "_FORTIFY_SOURCE" redefined'
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-U_FORTIFY_SOURCE")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-D_FORTIFY_SOURCE=2")
|
||||
endif()
|
||||
|
||||
# Disable deprecated Gtk and friends
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-DGLIBMM_DISABLE_DEPRECATED")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-DGTKMM_DISABLE_DEPRECATED")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-DGDKMM_DISABLE_DEPRECATED")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-DGTK_DISABLE_DEPRECATED")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-DGDK_DISABLE_DEPRECATED")
|
||||
|
||||
# Errors for common mistakes
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-fstack-protector-strong")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Werror=format") # e.g.: printf("%s", std::string("foo"))
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Werror=format-security") # e.g.: printf(variable);
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Werror=ignored-qualifiers") # e.g.: const int foo();
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Werror=return-type") # non-void functions that don't return a value
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Wno-switch") # See !849 for discussion
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Wmisleading-indentation")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-Og") # -Og for _FORTIFY_SOURCE. One could add -Weffc++ here to see approx. 6000 warnings
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-Wcomment")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-Wunused-function")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-Wunused-variable")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-D_GLIBCXX_ASSERTIONS")
|
||||
if (CMAKE_COMPILER_IS_GNUCC)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-Wstrict-null-sentinel") # For NULL instead of nullptr
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-fexceptions -grecord-gcc-switches -fasynchronous-unwind-tables")
|
||||
if(CXX_COMPILER_VERSION VERSION_GREATER 8.0)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS_DEBUG "-fstack-clash-protection -fcf-protection")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Define the flags for profiling if desired:
|
||||
if(WITH_PROFILING)
|
||||
set(BUILD_SHARED_LIBS off)
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
|
||||
endif()
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
std::atomic<uint64_t> x (0);
|
||||
int main() {
|
||||
uint64_t i = x.load(std::memory_order_relaxed);
|
||||
return 0;
|
||||
}
|
||||
"
|
||||
LIBATOMIC_NOT_NEEDED)
|
||||
IF (NOT LIBATOMIC_NOT_NEEDED)
|
||||
message(STATUS " Adding -latomic to the libs.")
|
||||
list(APPEND INKSCAPE_LIBS "-latomic")
|
||||
ENDIF()
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Helper macros
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# Turns linker arguments like "-framework Foo" into "-Wl,-framework,Foo" to
|
||||
# make them safe for appending to INKSCAPE_LIBS
|
||||
macro(sanitize_ldflags_for_libs ldflags_var)
|
||||
# matches dash-argument followed by non-dash-argument
|
||||
string(REGEX REPLACE "(^|;)(-[^;]*);([^-])" "\\1-Wl,\\2,\\3" ${ldflags_var} "${${ldflags_var}}")
|
||||
endmacro()
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Files we include
|
||||
# ----------------------------------------------------------------------------
|
||||
if(WIN32)
|
||||
# Set the link and include directories
|
||||
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
||||
|
||||
list(APPEND INKSCAPE_LIBS "-lmscms")
|
||||
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-mms-bitfields")
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-mwindows")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-mthreads")
|
||||
endif()
|
||||
|
||||
list(APPEND INKSCAPE_LIBS "-lwinpthread")
|
||||
|
||||
if(HAVE_MINGW64)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-m64")
|
||||
else()
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-m32")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(INKSCAPE_DEP REQUIRED
|
||||
harfbuzz
|
||||
pangocairo>=1.44
|
||||
pangoft2
|
||||
fontconfig
|
||||
gsl
|
||||
gmodule-2.0
|
||||
#double-conversion
|
||||
bdw-gc #boehm-demers-weiser gc
|
||||
lcms2)
|
||||
|
||||
# remove this line and uncomment the doiuble-conversion above when double-conversion.pc file gets shipped on all platforms we support
|
||||
find_package(DoubleConversion REQUIRED) # lib2geom dependency
|
||||
|
||||
sanitize_ldflags_for_libs(INKSCAPE_DEP_LDFLAGS)
|
||||
list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LDFLAGS})
|
||||
list(APPEND INKSCAPE_INCS_SYS ${INKSCAPE_DEP_INCLUDE_DIRS})
|
||||
|
||||
add_definitions(${INKSCAPE_DEP_CFLAGS_OTHER})
|
||||
|
||||
if(WITH_JEMALLOC)
|
||||
find_package(JeMalloc)
|
||||
if (JEMALLOC_FOUND)
|
||||
list(APPEND INKSCAPE_LIBS ${JEMALLOC_LIBRARIES})
|
||||
else()
|
||||
set(WITH_JEMALLOC OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(Iconv REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${Iconv_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${Iconv_LIBRARIES})
|
||||
|
||||
find_package(Intl REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES})
|
||||
add_definitions(${Intl_DEFINITIONS})
|
||||
|
||||
# Check for system-wide version of 2geom and fallback to internal copy if not found
|
||||
if(NOT WITH_INTERNAL_2GEOM)
|
||||
pkg_check_modules(2Geom QUIET IMPORTED_TARGET GLOBAL 2geom>=1.4.0)
|
||||
if(2Geom_FOUND)
|
||||
add_library(2Geom::2geom ALIAS PkgConfig::2Geom)
|
||||
else()
|
||||
set(WITH_INTERNAL_2GEOM ON CACHE BOOL "Prefer internal copy of lib2geom" FORCE)
|
||||
message(STATUS "lib2geom not found, using internal copy in src/3rdparty/2geom")
|
||||
endif()
|
||||
endif()
|
||||
if(WITH_INTERNAL_2GEOM)
|
||||
set(2Geom_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/3rdparty/2geom/include)
|
||||
endif()
|
||||
|
||||
|
||||
if(ENABLE_POPPLER)
|
||||
find_package(PopplerCairo)
|
||||
if(POPPLER_FOUND)
|
||||
set(HAVE_POPPLER ON)
|
||||
if(ENABLE_POPPLER_CAIRO)
|
||||
if(POPPLER_CAIRO_FOUND AND POPPLER_GLIB_FOUND)
|
||||
set(HAVE_POPPLER_CAIRO ON)
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
set(ENABLE_POPPLER_CAIRO OFF)
|
||||
endif()
|
||||
else()
|
||||
set(HAVE_POPPLER OFF)
|
||||
set(ENABLE_POPPLER_CAIRO OFF)
|
||||
endif()
|
||||
|
||||
list(APPEND INKSCAPE_INCS_SYS ${POPPLER_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${POPPLER_LIBRARIES})
|
||||
add_definitions(${POPPLER_DEFINITIONS})
|
||||
|
||||
if(WITH_LIBWPG)
|
||||
pkg_check_modules(LIBWPG libwpg-0.3 librevenge-0.0 librevenge-stream-0.0)
|
||||
if(LIBWPG_FOUND)
|
||||
sanitize_ldflags_for_libs(LIBWPG_LDFLAGS)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${LIBWPG_LDFLAGS})
|
||||
add_definitions(${LIBWPG_DEFINITIONS})
|
||||
else()
|
||||
set(WITH_LIBWPG OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_LIBVISIO)
|
||||
pkg_check_modules(LIBVISIO libvisio-0.1 librevenge-0.0 librevenge-stream-0.0)
|
||||
if(LIBVISIO_FOUND)
|
||||
sanitize_ldflags_for_libs(LIBVISIO_LDFLAGS)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${LIBVISIO_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${LIBVISIO_LDFLAGS})
|
||||
add_definitions(${LIBVISIO_DEFINITIONS})
|
||||
else()
|
||||
set(WITH_LIBVISIO OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_LIBCDR)
|
||||
pkg_check_modules(LIBCDR libcdr-0.1 librevenge-0.0 librevenge-stream-0.0)
|
||||
if(LIBCDR_FOUND)
|
||||
sanitize_ldflags_for_libs(LIBCDR_LDFLAGS)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${LIBCDR_LDFLAGS})
|
||||
add_definitions(${LIBCDR_DEFINITIONS})
|
||||
else()
|
||||
set(WITH_LIBCDR OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
FIND_PACKAGE(JPEG)
|
||||
IF(JPEG_FOUND)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR})
|
||||
list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES})
|
||||
set(HAVE_JPEG ON)
|
||||
ENDIF()
|
||||
|
||||
find_package(PNG REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR})
|
||||
list(APPEND INKSCAPE_LIBS ${PNG_LIBRARY})
|
||||
|
||||
find_package(Potrace REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${POTRACE_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${POTRACE_LIBRARIES})
|
||||
|
||||
if(WITH_SVG2)
|
||||
add_definitions(-DWITH_MESH -DWITH_CSSBLEND -DWITH_SVG2)
|
||||
else()
|
||||
add_definitions(-UWITH_MESH -UWITH_CSSBLEND -UWITH_SVG2)
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# CMake's builtin
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# Include dependencies:
|
||||
|
||||
pkg_check_modules(
|
||||
GTK3
|
||||
REQUIRED
|
||||
glibmm-2.4>=2.58
|
||||
gtkmm-3.0>=3.24
|
||||
gdkmm-3.0>=3.24
|
||||
gtk+-3.0>=3.24
|
||||
gdk-3.0>=3.24
|
||||
)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER})
|
||||
list(APPEND INKSCAPE_INCS_SYS ${GTK3_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${GTK3_LIBRARIES})
|
||||
link_directories(${GTK3_LIBRARY_DIRS})
|
||||
|
||||
if(WITH_GSPELL)
|
||||
pkg_check_modules(GSPELL gspell-1)
|
||||
if("${GSPELL_FOUND}")
|
||||
message(STATUS "Using gspell")
|
||||
list(APPEND INKSCAPE_INCS_SYS ${GSPELL_INCLUDE_DIRS})
|
||||
sanitize_ldflags_for_libs(GSPELL_LDFLAGS)
|
||||
list(APPEND INKSCAPE_LIBS ${GSPELL_LDFLAGS})
|
||||
else()
|
||||
set(WITH_GSPELL OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GSOURCEVIEW)
|
||||
pkg_check_modules(GSOURCEVIEW gtksourceview-4)
|
||||
if("${GSOURCEVIEW_FOUND}")
|
||||
message(STATUS "Using gtksourceview-4")
|
||||
list(APPEND INKSCAPE_INCS_SYS ${GSOURCEVIEW_INCLUDE_DIRS})
|
||||
sanitize_ldflags_for_libs(GSOURCEVIEW_LDFLAGS)
|
||||
list(APPEND INKSCAPE_LIBS ${GSOURCEVIEW_LDFLAGS})
|
||||
else()
|
||||
set(WITH_GSOURCEVIEW OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# stacktrace print on crash
|
||||
if(WIN32)
|
||||
find_package(Boost 1.19.0 REQUIRED COMPONENTS filesystem stacktrace_windbg)
|
||||
list(APPEND INKSCAPE_LIBS "-lole32")
|
||||
list(APPEND INKSCAPE_LIBS "-ldbgeng")
|
||||
add_definitions("-DBOOST_STACKTRACE_USE_WINDBG")
|
||||
elseif(APPLE)
|
||||
find_package(Boost 1.19.0 REQUIRED COMPONENTS filesystem stacktrace_basic)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-D_GNU_SOURCE")
|
||||
else()
|
||||
find_package(Boost 1.19.0 REQUIRED COMPONENTS filesystem)
|
||||
# The package stacktrace_backtrace may not be available on all distros.
|
||||
find_package(Boost 1.19.0 COMPONENTS stacktrace_backtrace)
|
||||
if (BOOST_FOUND)
|
||||
list(APPEND INKSCAPE_LIBS "-lbacktrace")
|
||||
add_definitions("-DBOOST_STACKTRACE_USE_BACKTRACE")
|
||||
else() # fall back to stacktrace_basic
|
||||
find_package(Boost 1.19.0 REQUIRED COMPONENTS stacktrace_basic)
|
||||
list(APPEND INKSCAPE_CXX_FLAGS "-D_GNU_SOURCE")
|
||||
endif()
|
||||
endif()
|
||||
# enable explicit debug symbols
|
||||
set(CMAKE_ENABLE_EXPORTS ON)
|
||||
|
||||
|
||||
|
||||
if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9)
|
||||
list(APPEND INKSCAPE_LIBS "-lstdc++fs")
|
||||
endif()
|
||||
|
||||
list(APPEND INKSCAPE_INCS_SYS ${Boost_INCLUDE_DIRS})
|
||||
# list(APPEND INKSCAPE_LIBS ${Boost_LIBRARIES})
|
||||
|
||||
#find_package(OpenSSL)
|
||||
#list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR})
|
||||
#list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES})
|
||||
|
||||
find_package(LibXslt REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${LIBXSLT_INCLUDE_DIR})
|
||||
list(APPEND INKSCAPE_LIBS ${LIBXSLT_LIBRARIES})
|
||||
add_definitions(${LIBXSLT_DEFINITIONS})
|
||||
|
||||
find_package(LibXml2 REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${LIBXML2_INCLUDE_DIR})
|
||||
list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES})
|
||||
add_definitions(${LIBXML2_DEFINITIONS})
|
||||
|
||||
if(WITH_OPENMP)
|
||||
find_package(OpenMP)
|
||||
if(OPENMP_FOUND)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
list(APPEND INKSCAPE_CXX_FLAGS ${OpenMP_CXX_FLAGS})
|
||||
if(APPLE OR (MINGW AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
|
||||
list(APPEND INKSCAPE_LIBS "-lomp")
|
||||
endif()
|
||||
mark_as_advanced(OpenMP_C_FLAGS)
|
||||
mark_as_advanced(OpenMP_CXX_FLAGS)
|
||||
# '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp'
|
||||
# uncomment explicit linking below if still needed:
|
||||
set(HAVE_OPENMP ON)
|
||||
#list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME
|
||||
else()
|
||||
set(HAVE_OPENMP OFF)
|
||||
set(WITH_OPENMP OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES})
|
||||
|
||||
if(WITH_GNU_READLINE)
|
||||
pkg_check_modules(Readline readline)
|
||||
if(Readline_FOUND)
|
||||
message(STATUS "Found GNU Readline: ${Readline_LIBRARY}")
|
||||
list(APPEND INKSCAPE_INCS_SYS ${Readline_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${Readline_LDFLAGS})
|
||||
else()
|
||||
message(STATUS "Did not find GNU Readline")
|
||||
set(WITH_GNU_READLINE OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_MAGICK)
|
||||
# we want "<" but pkg_check_modules only offers "<=" for some reason; let's hope nobody actually has 7.0.0
|
||||
pkg_check_modules(MAGICK ImageMagick++<=7)
|
||||
if(MAGICK_FOUND)
|
||||
set(WITH_GRAPHICS_MAGICK OFF) # prefer ImageMagick for now and disable GraphicsMagick if found
|
||||
else()
|
||||
set(WITH_IMAGE_MAGICK OFF)
|
||||
endif()
|
||||
endif()
|
||||
if(WITH_GRAPHICS_MAGICK)
|
||||
pkg_check_modules(MAGICK GraphicsMagick++)
|
||||
if(NOT MAGICK_FOUND)
|
||||
set(WITH_GRAPHICS_MAGICK OFF)
|
||||
endif()
|
||||
endif()
|
||||
if(MAGICK_FOUND)
|
||||
sanitize_ldflags_for_libs(MAGICK_LDFLAGS)
|
||||
list(APPEND INKSCAPE_LIBS ${MAGICK_LDFLAGS})
|
||||
add_definitions(${MAGICK_CFLAGS_OTHER})
|
||||
list(APPEND INKSCAPE_INCS_SYS ${MAGICK_INCLUDE_DIRS})
|
||||
|
||||
set(WITH_MAGICK ON) # enable 'Extensions > Raster'
|
||||
endif()
|
||||
|
||||
set(ENABLE_NLS OFF)
|
||||
if(WITH_NLS)
|
||||
find_package(Gettext)
|
||||
if(GETTEXT_FOUND)
|
||||
message(STATUS "Found gettext + msgfmt to convert language files. Translation enabled")
|
||||
set(ENABLE_NLS ON)
|
||||
else(GETTEXT_FOUND)
|
||||
message(STATUS "Cannot find gettext + msgfmt to convert language file. Translation won't be enabled")
|
||||
set(WITH_NLS OFF)
|
||||
endif(GETTEXT_FOUND)
|
||||
find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
|
||||
if(GETTEXT_XGETTEXT_EXECUTABLE)
|
||||
message(STATUS "Found xgettext. inkscape.pot will be re-created if missing.")
|
||||
else()
|
||||
message(STATUS "Did not find xgettext. inkscape.pot can't be re-created.")
|
||||
endif()
|
||||
endif(WITH_NLS)
|
||||
|
||||
pkg_check_modules(SIGC++ REQUIRED sigc++-2.0 )
|
||||
sanitize_ldflags_for_libs(SIGC++_LDFLAGS)
|
||||
list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS})
|
||||
list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER} "-DSIGCXX_DISABLE_DEPRECATED")
|
||||
|
||||
pkg_check_modules(EPOXY REQUIRED epoxy )
|
||||
sanitize_ldflags_for_libs(EPOXY_LDFLAGS)
|
||||
list(APPEND INKSCAPE_LIBS ${EPOXY_LDFLAGS})
|
||||
list(APPEND INKSCAPE_CXX_FLAGS ${EPOXY_CFLAGS_OTHER})
|
||||
|
||||
if(WITH_X11)
|
||||
find_package(X11 REQUIRED)
|
||||
list(APPEND INKSCAPE_INCS_SYS ${X11_INCLUDE_DIRS})
|
||||
list(APPEND INKSCAPE_LIBS ${X11_LIBRARIES})
|
||||
add_definitions(-DHAVE_X11)
|
||||
|
||||
pkg_get_variable(GTK3_TARGETS gtk+-3.0 targets)
|
||||
if(NOT("${GTK3_TARGETS}" MATCHES "x11"))
|
||||
message(FATAL_ERROR "GTK+3 doesn't targets X11, this is required for WITH_X11")
|
||||
endif()
|
||||
endif(WITH_X11)
|
||||
|
||||
# end Dependencies
|
||||
|
||||
|
||||
|
||||
# Set include directories and CXX flags
|
||||
# (INKSCAPE_LIBS are set as target_link_libraries for inkscape_base in src/CMakeLists.txt)
|
||||
|
||||
foreach(flag ${INKSCAPE_CXX_FLAGS})
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
|
||||
endforeach()
|
||||
foreach(flag ${INKSCAPE_CXX_FLAGS_DEBUG})
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${flag}")
|
||||
endforeach()
|
||||
|
||||
# Add color output to ninja
|
||||
if ("${CMAKE_GENERATOR}" MATCHES "Ninja")
|
||||
add_compile_options (-fdiagnostics-color)
|
||||
endif ()
|
||||
|
||||
list(REMOVE_DUPLICATES INKSCAPE_LIBS)
|
||||
list(REMOVE_DUPLICATES INKSCAPE_INCS_SYS)
|
||||
|
||||
include_directories(${INKSCAPE_INCS})
|
||||
include_directories(SYSTEM ${INKSCAPE_INCS_SYS})
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) # TODO: Check if this needs to be "hidden" here
|
||||
|
||||
unset(INKSCAPE_INCS)
|
||||
unset(INKSCAPE_INCS_SYS)
|
||||
unset(INKSCAPE_CXX_FLAGS)
|
||||
unset(INKSCAPE_CXX_FLAGS_DEBUG)
|
82
CMakeScripts/Dist.cmake
Normal file
|
@ -0,0 +1,82 @@
|
|||
# dist targets for various platforms
|
||||
|
||||
|
||||
# get INKSCAPE_REVISION of the source
|
||||
set(INKSCAPE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
include(CMakeScripts/inkscape-version.cmake)
|
||||
|
||||
# set distribution prefix (used as filename for distributable packages)
|
||||
set(INKSCAPE_DIST_PREFIX "${PROJECT_NAME}-${INKSCAPE_VERSION}")
|
||||
if(INKSCAPE_REVISION_DATE AND INKSCAPE_REVISION_HASH)
|
||||
set(INKSCAPE_DIST_PREFIX ${INKSCAPE_DIST_PREFIX}_${INKSCAPE_REVISION_DATE}_${INKSCAPE_REVISION_HASH})
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 'dist' - generate source release tarball
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
message("INKSCAPE_DIST_PREFIX: ${INKSCAPE_DIST_PREFIX}")
|
||||
add_custom_target(dist
|
||||
COMMAND sed -i "s/unknown/${INKSCAPE_REVISION}/" ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake
|
||||
COMMAND cmake --build ${CMAKE_BINARY_DIR} --target package_source
|
||||
COMMAND git checkout ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
VERBATIM)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 'dist-win' - Windows Targets
|
||||
# -----------------------------------------------------------------------------
|
||||
if(WIN32)
|
||||
if(HAVE_MINGW64)
|
||||
set(bitness "x64")
|
||||
else()
|
||||
set(bitness "x86")
|
||||
endif()
|
||||
set(INKSCAPE_DIST_PREFIX ${INKSCAPE_DIST_PREFIX}-${bitness})
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 'dist-win-7z' - generate binary 7z archive for Windows
|
||||
# -----------------------------------------------------------------------------
|
||||
find_program(7z 7z PATHS "C:/Program Files/7-Zip"
|
||||
"C:/Program Files (x86)/7-Zip")
|
||||
if(NOT 7z)
|
||||
set(7z echo "Could not find '7z'. Please add it to your search path." && exit 1 &&)
|
||||
endif()
|
||||
|
||||
# default target with very good but slow compression (needs approx. 10 GB RAM)
|
||||
add_custom_target(dist-win-7z
|
||||
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
|
||||
COMMAND ${7z} a -mx9 -md512m -mfb256
|
||||
"${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
|
||||
"${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
# fast target with moderate compression
|
||||
add_custom_target(dist-win-7z-fast
|
||||
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
|
||||
COMMAND ${7z} a
|
||||
"${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.7z"
|
||||
"${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
add_dependencies(dist-win-7z install/strip)
|
||||
add_dependencies(dist-win-7z-fast install/strip)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 'dist-win-exe' - generate .exe installer (NSIS) for Windows
|
||||
# -----------------------------------------------------------------------------
|
||||
add_custom_target(dist-win-exe COMMAND ${CMAKE_CPACK_COMMAND} -G NSIS)
|
||||
add_dependencies(dist-win-exe install/strip) # TODO: we'd only need to depend on the "all" target
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 'dist-win-msi' - generate .exe installer (NSIS) for Windows
|
||||
# -----------------------------------------------------------------------------
|
||||
add_custom_target(dist-win-msi COMMAND ${CMAKE_CPACK_COMMAND} -G WIX)
|
||||
add_dependencies(dist-win-msi install/strip) # TODO: we'd only need to depend on the "all" target
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 'dist-win-all' - generate all 'dist' targets for Windows
|
||||
# -----------------------------------------------------------------------------
|
||||
add_custom_target(dist-win-all DEPENDS dist-win-7z dist-win-exe dist-win-msi)
|
||||
endif()
|
244
CMakeScripts/HelperFunctions.cmake
Normal file
|
@ -0,0 +1,244 @@
|
|||
# pkg_check_variable() - a function to retrieve pkg-config variables in CMake
|
||||
#
|
||||
# source: http://bloerg.net/2015/03/06/pkg-config-variables-in-cmake.html
|
||||
function(pkg_check_variable _pkg _name)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
string(TOUPPER ${_pkg} _pkg_upper)
|
||||
string(TOUPPER ${_name} _name_upper)
|
||||
string(REPLACE "-" "_" _pkg_upper ${_pkg_upper})
|
||||
string(REPLACE "-" "_" _name_upper ${_name_upper})
|
||||
set(_output_name "${_pkg_upper}_${_name_upper}")
|
||||
|
||||
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg}
|
||||
OUTPUT_VARIABLE _pkg_result
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable ${_name} of ${_pkg}")
|
||||
endfunction()
|
||||
|
||||
# Join a cmake list of strings with a given glue character/string
|
||||
# E.g. join(MY_RESULT, ",", "1; 2; 3;") returns "1, 2, 3"
|
||||
function(join OUTPUT GLUE)
|
||||
set(_TMP_RESULT "")
|
||||
set(_GLUE "") # effective glue is empty at the beginning
|
||||
foreach(arg ${ARGN})
|
||||
# Skip empty lines
|
||||
if(NOT arg STREQUAL "\n")
|
||||
set(_TMP_RESULT "${_TMP_RESULT}${_GLUE}${arg}")
|
||||
set(_GLUE "${GLUE}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(${OUTPUT} "${_TMP_RESULT}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
|
||||
|
||||
# Checks if the last call to execute_process() was successful and throws an error otherwise.
|
||||
# ${result} and ${stderr} should hold the value of RESULT_VARIABLE and ERROR_VARIABLE respectively
|
||||
# ${command} can be empty or the command that was executed during the last call of execute_process()
|
||||
function(check_error result stderr command)
|
||||
string(STRIP "${result}" result)
|
||||
string(STRIP "${stderr}" stderr)
|
||||
string(STRIP "${command}" command)
|
||||
|
||||
if ("${command}" STREQUAL "")
|
||||
set(command "Process")
|
||||
else()
|
||||
set(command "'${command}'")
|
||||
endif()
|
||||
|
||||
if("${result}" STREQUAL 0)
|
||||
if(NOT "${stderr}" STREQUAL "")
|
||||
MESSAGE(WARNING "${command} returned successfully but the following was output to stderr: ${stderr}")
|
||||
endif()
|
||||
else()
|
||||
if("${stderr}" STREQUAL "")
|
||||
MESSAGE(FATAL_ERROR "${command} failed with error code: ${result}")
|
||||
else()
|
||||
MESSAGE(FATAL_ERROR "${command} failed with error code: ${result} (stderr: ${stderr})")
|
||||
endif()
|
||||
endif()
|
||||
endfunction(check_error)
|
||||
|
||||
|
||||
|
||||
# Get the list of files installed by pacman for package ${package_name} and return it as ${file_list}.
|
||||
# Paths are relative to the root directory of the MinGW installations (the directory returned by function "get_mingw_root()")
|
||||
function(list_files_pacman package_name file_list)
|
||||
set(MINGW_PACKAGE_PREFIX $ENV{MINGW_PACKAGE_PREFIX}) # e.g. "mingw-w64-x86_64"
|
||||
get_filename_component(MINGW_PREFIX $ENV{MINGW_PREFIX} NAME) # e.g. "mingw64"
|
||||
|
||||
# use pacman to list all files/folders installed by the package
|
||||
execute_process(
|
||||
COMMAND pacman -Ql ${MINGW_PACKAGE_PREFIX}-${package_name}
|
||||
OUTPUT_FILE list_files_pacman_temp.txt
|
||||
RESULT_VARIABLE res
|
||||
ERROR_VARIABLE err
|
||||
)
|
||||
check_error("${res}" "${err}" "pacman -Ql ${MINGW_PACKAGE_PREFIX}-${package_name}")
|
||||
|
||||
# clean up output
|
||||
execute_process(
|
||||
COMMAND grep -v '/$' # get rid of folders
|
||||
COMMAND sed -e 's/^${MINGW_PACKAGE_PREFIX}-${package_name} //' # remove package name
|
||||
COMMAND sed -e 's/^\\/${MINGW_PREFIX}\\///' # remove root path
|
||||
COMMAND tr '\n' '\;' # finally replace newlines with semicolon
|
||||
INPUT_FILE list_files_pacman_temp.txt
|
||||
OUTPUT_VARIABLE out
|
||||
RESULT_VARIABLE res
|
||||
ERROR_VARIABLE err
|
||||
)
|
||||
check_error("${res}" "${err}" "Parsing result of 'pacman -Ql ${MINGW_PACKAGE_PREFIX}-${package_name}'")
|
||||
|
||||
SET(${file_list} ${out} PARENT_SCOPE)
|
||||
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/list_files_pacman_temp.txt)
|
||||
endfunction(list_files_pacman)
|
||||
|
||||
|
||||
|
||||
# Get the list of files installed by pip for package ${package_name} and return it as ${file_list}.
|
||||
# Paths are relative to the python distributions "site-packages" folder, i.e. "${root}/lib/python2.7/site-packages"
|
||||
function(list_files_pip package_name file_list)
|
||||
# use pip to show package information including full list of files installed by the package
|
||||
execute_process(
|
||||
COMMAND pip3 show -f ${package_name}
|
||||
OUTPUT_FILE list_files_pip_temp.txt
|
||||
RESULT_VARIABLE res
|
||||
ERROR_VARIABLE err
|
||||
)
|
||||
check_error("${res}" "${err}" "pip3 show -f ${package_name}")
|
||||
|
||||
# clean up output
|
||||
execute_process(
|
||||
COMMAND sed -e '1,/Files:/d' # strip everything but the files list
|
||||
COMMAND tr -d ' ' # strip spaces
|
||||
COMMAND tr '\n' '\;' # finally replace newlines with semicolon
|
||||
INPUT_FILE list_files_pip_temp.txt
|
||||
OUTPUT_VARIABLE out
|
||||
RESULT_VARIABLE res
|
||||
ERROR_VARIABLE err
|
||||
)
|
||||
check_error("${res}" "${err}" "Parsing result of 'pip3 show -f ${package_name}'")
|
||||
|
||||
SET(${file_list} ${out} PARENT_SCOPE)
|
||||
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/list_files_pip_temp.txt)
|
||||
endfunction(list_files_pip)
|
||||
|
||||
|
||||
|
||||
# Install a list of files maintaining directory structure
|
||||
#
|
||||
# Options:
|
||||
# FILES - the list of files (absolute or relative paths)
|
||||
# ROOT - the root to search the files in (if file paths are relative)
|
||||
# DESTINATION - the destination where to install files to
|
||||
# COMPONENT - cpack component
|
||||
# INCLUDE - a (list of) regular expression(s) specifying which files to include
|
||||
# (omit or leave empty to include all files)
|
||||
# EXCLUDE - a (list of) regular expression(s) specifying which files to exclude
|
||||
# (takes precedence over include rules)
|
||||
function(install_list)
|
||||
# parse arguments
|
||||
set(oneValueArgs ROOT DESTINATION COMPONENT)
|
||||
set(multiValueArgs FILES INCLUDE EXCLUDE)
|
||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
#MESSAGE("ARG_FILES: ${ARG_FILES}" )
|
||||
#MESSAGE("ARG_ROOT: ${ARG_ROOT}" )
|
||||
#MESSAGE("ARG_DESTINATION: ${ARG_DESTINATION}" )
|
||||
#MESSAGE("ARG_INCLUDE: ${ARG_INCLUDE}" )
|
||||
#MESSAGE("ARG_EXCLUDE: ${ARG_EXCLUDE}" )
|
||||
#MESSAGE("ARG_UNPARSED_ARGUMENTS: ${ARG_UNPARSED_ARGUMENTS}" )
|
||||
|
||||
# install the files
|
||||
foreach(file ${ARG_FILES})
|
||||
#MESSAGE("file: " ${file})
|
||||
|
||||
# check includes and excludes (excludes take precedence)
|
||||
set(include_file 0)
|
||||
if("${ARG_INCLUDE}" STREQUAL "") # start with the assumption to include all files by default
|
||||
set(include_file 1)
|
||||
endif()
|
||||
foreach(include ${ARG_INCLUDE})
|
||||
if("${file}" MATCHES "${include}")
|
||||
set(include_file 1)
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(exclude ${ARG_EXCLUDE})
|
||||
if("${file}" MATCHES "${exclude}")
|
||||
set(include_file 0)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# install if file should be included
|
||||
if(${include_file})
|
||||
get_filename_component(directory ${file} DIRECTORY)
|
||||
install(
|
||||
FILES "${ARG_ROOT}/${file}"
|
||||
DESTINATION "${ARG_DESTINATION}${directory}"
|
||||
COMPONENT "${ARG_COMPONENT}"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction(install_list)
|
||||
|
||||
|
||||
|
||||
# Parses "inkscape-preferences.cpp" to get the current list of interface translations
|
||||
#
|
||||
# Results are cached in the variables
|
||||
# - INKSCAPE_LANGUAGE_CODES
|
||||
# - INKSCAPE_LANGUAGE_NAMES
|
||||
function(get_inkscape_languages)
|
||||
if(NOT DEFINED INKSCAPE_LANGUAGE_CODES)
|
||||
file(READ "${CMAKE_SOURCE_DIR}/src/ui/dialog/inkscape-preferences.cpp" file_content)
|
||||
|
||||
string(REGEX MATCH "Glib::ustring languages\\[\\] = \\{([^\\}]+)\\};" languages "${file_content}")
|
||||
string(REGEX REPLACE "Glib::ustring languages\\[\\] = \\{([^\\}]+)\\};" "\\1" languages "${languages}")
|
||||
string(REGEX MATCHALL [[_\(\"([^\\"]+)\"\)]] languages "${languages}")
|
||||
string(REGEX REPLACE [[_\(\"([^\\"]+)\"\)]] "\\1" languages "${languages}")
|
||||
|
||||
string(REGEX MATCH "Glib::ustring langValues\\[\\] = \\{([^\\}]+)\\};" langValues "${file_content}")
|
||||
string(REGEX REPLACE "Glib::ustring langValues\\[\\] = \\{([^\\}]+)\\};" "\\1" langValues "${langValues}")
|
||||
string(REGEX MATCHALL [[\"([^\\"]*)\"]] langValues "${langValues}")
|
||||
string(REGEX REPLACE [[\"([^\\"]*)\"]] "\\1" langValues "${langValues}")
|
||||
|
||||
list(REMOVE_AT languages 0)
|
||||
list(REMOVE_AT langValues 0)
|
||||
|
||||
set(INKSCAPE_LANGUAGE_CODES "${langValues}" CACHE INTERNAL "")
|
||||
set(INKSCAPE_LANGUAGE_NAMES "${languages}" CACHE INTERNAL "")
|
||||
endif()
|
||||
endfunction(get_inkscape_languages)
|
||||
|
||||
|
||||
|
||||
# Filters out translated content from the list of files, then makes sure it is
|
||||
# installed as part of the matching cpack translations component
|
||||
#
|
||||
# Filter is based on filename.${language_code}.ext naming scheme
|
||||
function(filter_and_install_translated_content file_list destination)
|
||||
set(remaining_files ${${file_list}})
|
||||
|
||||
get_inkscape_languages()
|
||||
foreach(language_code ${INKSCAPE_LANGUAGE_CODES})
|
||||
set(translated_files ${remaining_files})
|
||||
set(regex "\\.${language_code}\\.[a-z]+$")
|
||||
list(FILTER translated_files INCLUDE REGEX "${regex}")
|
||||
list(FILTER remaining_files EXCLUDE REGEX "${regex}")
|
||||
|
||||
string(MAKE_C_IDENTIFIER "${language_code}" language_code_escaped)
|
||||
if(translated_files)
|
||||
if(WIN32)
|
||||
set(COMP translations.${language_code_escaped})
|
||||
else()
|
||||
set(COMP translations)
|
||||
endif()
|
||||
install(FILES ${translated_files}
|
||||
DESTINATION ${destination}
|
||||
COMPONENT ${COMP})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(${file_list} ${remaining_files} PARENT_SCOPE)
|
||||
endfunction(filter_and_install_translated_content)
|
130
CMakeScripts/HelperMacros.cmake
Normal file
|
@ -0,0 +1,130 @@
|
|||
# A macro to replace slashes and spaces in a string with underscores
|
||||
macro(SANITIZE_PATH _string_var)
|
||||
string(REGEX REPLACE "[\\/ ]+" "_" ${_string_var} ${${_string_var}})
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(inkscape_source_group
|
||||
sources)
|
||||
|
||||
# Group by location on disk
|
||||
source_group("Source Files" FILES CMakeLists.txt)
|
||||
|
||||
foreach(_SRC ${sources})
|
||||
get_filename_component(_SRC_EXT ${_SRC} EXT)
|
||||
if((${_SRC_EXT} MATCHES ".h") OR (${_SRC_EXT} MATCHES ".hpp"))
|
||||
source_group("Header Files" FILES ${_SRC})
|
||||
else()
|
||||
source_group("Source Files" FILES ${_SRC})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
unset(_SRC)
|
||||
unset(_SRC_EXT)
|
||||
endmacro()
|
||||
|
||||
|
||||
# only MSVC uses SOURCE_GROUP
|
||||
macro(add_inkscape_lib
|
||||
name
|
||||
sources)
|
||||
|
||||
add_library(${name} STATIC ${sources})
|
||||
|
||||
# works fine without having the includes
|
||||
# listed is helpful for IDE's (QtCreator/MSVC)
|
||||
inkscape_source_group("${sources}")
|
||||
endmacro()
|
||||
|
||||
|
||||
# A macro to append to the global source property
|
||||
set_property(GLOBAL PROPERTY inkscape_global_SRC "")
|
||||
|
||||
macro (add_inkscape_source
|
||||
sources)
|
||||
|
||||
foreach(_SRC ${ARGV})
|
||||
get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
|
||||
set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
|
||||
endforeach()
|
||||
unset(_SRC)
|
||||
unset(_ABS_SRC)
|
||||
endmacro()
|
||||
|
||||
# A macro to append to the global source property
|
||||
macro (add_inkscape_library
|
||||
sources)
|
||||
|
||||
foreach(_SRC ${ARGV})
|
||||
get_filename_component(_ABS_SRC ${_SRC} ABSOLUTE)
|
||||
set_property(GLOBAL APPEND PROPERTY inkscape_global_SRC ${_ABS_SRC})
|
||||
endforeach()
|
||||
unset(_SRC)
|
||||
unset(_ABS_SRC)
|
||||
endmacro()
|
||||
|
||||
macro(INKSCAPE_PKG_CONFIG_FIND PREFIX MODNAME VERSION PATH_NAME PATH_SUFFIXE LIB_NAME)
|
||||
if(VERSION)
|
||||
pkg_check_modules(_${PREFIX} ${MODNAME}${VERSION})
|
||||
else(VERSION)
|
||||
pkg_check_modules(_${PREFIX} ${MODNAME})
|
||||
endif(VERSION)
|
||||
|
||||
find_path(${PREFIX}_INCLUDE_DIR
|
||||
NAMES
|
||||
${PATH_NAME}
|
||||
PATHS
|
||||
${_${PREFIX}_INCLUDEDIR}
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
/opt/local/include
|
||||
/sw/include
|
||||
$ENV{DEVLIBS_PATH}//include//
|
||||
PATH_SUFFIXES
|
||||
${PATH_SUFFIXE}
|
||||
)
|
||||
|
||||
find_library(${PREFIX}_LIBRARY
|
||||
NAMES
|
||||
${LIB_NAME}
|
||||
PATHS
|
||||
${_${PREFIX}_LIBDIR}
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
/opt/local/lib
|
||||
/sw/lib
|
||||
)
|
||||
|
||||
if (${PREFIX}_LIBRARY)
|
||||
set(${PREFIX}_FOUND TRUE)
|
||||
set(${PREFIX}_VERSION ${_${PREFIX}_VERSION})
|
||||
endif (${PREFIX}_LIBRARY)
|
||||
|
||||
set(${PREFIX}_INCLUDE_DIRS
|
||||
${${PREFIX}_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
if (${PREFIX}_FOUND)
|
||||
set(${PREFIX}_LIBRARIES
|
||||
${${PREFIX}_LIBRARIES}
|
||||
${${PREFIX}_LIBRARY}
|
||||
)
|
||||
endif (${PREFIX}_FOUND)
|
||||
|
||||
if (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES)
|
||||
set(${PREFIX}_FOUND TRUE)
|
||||
endif (${PREFIX}_INCLUDE_DIRS AND ${PREFIX}_LIBRARIES)
|
||||
|
||||
if (${PREFIX}_FOUND)
|
||||
if (NOT ${PREFIX}_FIND_QUIETLY)
|
||||
message(STATUS "Found ${MODNAME}: ${${PREFIX}_LIBRARIES}")
|
||||
endif (NOT ${PREFIX}_FIND_QUIETLY)
|
||||
else (${PREFIX}_FOUND)
|
||||
if (${PREFIX}_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could not find ${MODNAME}")
|
||||
endif (${PREFIX}_FIND_REQUIRED)
|
||||
endif (${PREFIX}_FOUND)
|
||||
|
||||
# show the <PREFIX>_INCLUDE_DIRS and <PREFIX>_LIBRARIES variables only in the advanced view
|
||||
mark_as_advanced(${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARIES)
|
||||
endmacro()
|
408
CMakeScripts/InstallMSYS2.cmake
Normal file
|
@ -0,0 +1,408 @@
|
|||
if(WIN32)
|
||||
install(FILES
|
||||
NEWS.md
|
||||
README.md
|
||||
DESTINATION .)
|
||||
|
||||
# mingw-w64 dlls
|
||||
# (use msys2checkdeps.py to list required libraries / check for missing or unused libraries)
|
||||
file(GLOB MINGW_LIBS
|
||||
${MINGW_BIN}/LIBEAY32.dll
|
||||
${MINGW_BIN}/SSLEAY32.dll
|
||||
${MINGW_BIN}/imagequant.dll
|
||||
${MINGW_BIN}/lib2geom.dll
|
||||
${MINGW_BIN}/libLerc.dll
|
||||
${MINGW_BIN}/libaom.dll
|
||||
${MINGW_BIN}/libaspell-[0-9]*.dll
|
||||
${MINGW_BIN}/libatk-1.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libatkmm-1.6-[0-9]*.dll
|
||||
${MINGW_BIN}/libboost_filesystem-mt.dll
|
||||
${MINGW_BIN}/libbrotlicommon.dll
|
||||
${MINGW_BIN}/libbrotlidec.dll
|
||||
${MINGW_BIN}/libbz2-[0-9]*.dll
|
||||
${MINGW_BIN}/libcairo-[0-9]*.dll
|
||||
${MINGW_BIN}/libcairo-gobject-[0-9]*.dll
|
||||
${MINGW_BIN}/libcairomm-1.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libcdr-0.[0-9]*.dll
|
||||
${MINGW_BIN}/libcrypto-1_[0-9]*.dll
|
||||
${MINGW_BIN}/libcrypto-3*.dll
|
||||
${MINGW_BIN}/libcurl-[0-9]*.dll
|
||||
${MINGW_BIN}/libdatrie-[0-9]*.dll
|
||||
${MINGW_BIN}/libdav1d.dll
|
||||
${MINGW_BIN}/libde265-[0-9]*.dll
|
||||
${MINGW_BIN}/libdeflate.dll
|
||||
${MINGW_BIN}/libdouble-conversion.dll
|
||||
${MINGW_BIN}/libenchant-[0-9]*.dll
|
||||
${MINGW_BIN}/libepoxy-[0-9]*.dll
|
||||
${MINGW_BIN}/libexpat-[0-9]*.dll
|
||||
${MINGW_BIN}/libexslt-[0-9]*.dll
|
||||
${MINGW_BIN}/libffi-[0-9]*.dll
|
||||
${MINGW_BIN}/libfftw3-[0-9]*.dll
|
||||
${MINGW_BIN}/libfontconfig-[0-9]*.dll
|
||||
${MINGW_BIN}/libfreetype-[0-9]*.dll
|
||||
${MINGW_BIN}/libfribidi-[0-9]*.dll
|
||||
${MINGW_BIN}/libgc-[0-9]*.dll
|
||||
${MINGW_BIN}/libgdk-3-[0-9]*.dll
|
||||
${MINGW_BIN}/libgdk_pixbuf-2.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libgdkmm-3.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libgfortran-[0-9]*.dll
|
||||
${MINGW_BIN}/libgio-2.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libgiomm-2.4-[0-9]*.dll
|
||||
${MINGW_BIN}/libgirepository-1.0-[0-9].dll
|
||||
${MINGW_BIN}/libglib-2.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libglibmm-2.4-[0-9]*.dll
|
||||
${MINGW_BIN}/libgmodule-2.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libgmp-[0-9]*.dll
|
||||
${MINGW_BIN}/libgobject-2.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libgomp-[0-9]*.dll
|
||||
${MINGW_BIN}/libgraphite[0-9]*.dll
|
||||
${MINGW_BIN}/libgsl-[0-9]*.dll
|
||||
${MINGW_BIN}/libgslcblas-[0-9]*.dll
|
||||
${MINGW_BIN}/libgspell-1-[0-9]*.dll
|
||||
${MINGW_BIN}/libgtk-3-[0-9]*.dll
|
||||
${MINGW_BIN}/libgtkmm-3.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libgtksourceview-4-[0-9]*.dll
|
||||
${MINGW_BIN}/libharfbuzz-[0-9]*.dll
|
||||
${MINGW_BIN}/libharfbuzz-subset-[0-9]*.dll
|
||||
${MINGW_BIN}/libheif.dll
|
||||
${MINGW_BIN}/libiconv-[0-9]*.dll
|
||||
${MINGW_BIN}/libicudt[0-9]*.dll
|
||||
${MINGW_BIN}/libicuin[0-9]*.dll
|
||||
${MINGW_BIN}/libicuuc[0-9]*.dll
|
||||
${MINGW_BIN}/libidn2-[0-9]*.dll
|
||||
${MINGW_BIN}/libintl-[0-9]*.dll
|
||||
${MINGW_BIN}/libjbig-[0-9]*.dll
|
||||
${MINGW_BIN}/libjpeg-[0-9]*.dll
|
||||
${MINGW_BIN}/liblcms2-[0-9]*.dll
|
||||
${MINGW_BIN}/liblqr-1-[0-9]*.dll
|
||||
${MINGW_BIN}/liblzma-[0-9]*.dll
|
||||
${MINGW_BIN}/libmpdec-[0-9]*.dll
|
||||
${MINGW_BIN}/libmpfr-[0-9]*.dll
|
||||
${MINGW_BIN}/libncursesw6.dll
|
||||
${MINGW_BIN}/libnghttp[0-9]*.dll
|
||||
${MINGW_BIN}/libnspr[0-9]*.dll
|
||||
${MINGW_BIN}/libopenblas.dll
|
||||
${MINGW_BIN}/libopenjp2-[0-9]*.dll
|
||||
${MINGW_BIN}/libpanelw6.dll
|
||||
${MINGW_BIN}/libpango-1.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libpangocairo-1.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libpangoft2-1.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libpangomm-1.4-[0-9]*.dll
|
||||
${MINGW_BIN}/libpangowin32-1.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libpcre2-8-[0-9]*.dll
|
||||
${MINGW_BIN}/libpixman-1-[0-9]*.dll
|
||||
${MINGW_BIN}/libplc[0-9]*.dll
|
||||
${MINGW_BIN}/libplds[0-9]*.dll
|
||||
${MINGW_BIN}/libpng16-[0-9]*.dll
|
||||
${MINGW_BIN}/libpoppler-[0-9]*.dll
|
||||
${MINGW_BIN}/libpoppler-glib-[0-9]*.dll
|
||||
${MINGW_BIN}/libpotrace-[0-9]*.dll
|
||||
${MINGW_BIN}/libpsl-[0-9]*.dll
|
||||
${MINGW_BIN}/libquadmath-[0-9]*.dll
|
||||
${MINGW_BIN}/libraqm-[0-9]*.dll
|
||||
${MINGW_BIN}/libreadline8.dll
|
||||
${MINGW_BIN}/librevenge-0.[0-9]*.dll
|
||||
${MINGW_BIN}/librevenge-stream-0.[0-9]*.dll
|
||||
${MINGW_BIN}/librsvg-2-[0-9]*.dll
|
||||
${MINGW_BIN}/libsharpyuv-0.dll
|
||||
${MINGW_BIN}/libsigc-2.0-[0-9]*.dll
|
||||
${MINGW_BIN}/libsqlite3-[0-9]*.dll
|
||||
${MINGW_BIN}/libssh2-[0-9]*.dll
|
||||
${MINGW_BIN}/libssl-1_[0-9]*.dll
|
||||
${MINGW_BIN}/libssl-3*.dll
|
||||
${MINGW_BIN}/libstdc++-[0-9]*.dll
|
||||
${MINGW_BIN}/libtermcap-[0-9]*.dll
|
||||
${MINGW_BIN}/libthai-[0-9]*.dll
|
||||
${MINGW_BIN}/libtiff-[0-9]*.dll
|
||||
${MINGW_BIN}/libunistring-[0-9]*.dll
|
||||
${MINGW_BIN}/libvisio-0.[0-9]*.dll
|
||||
${MINGW_BIN}/libwebp-[0-9]*.dll
|
||||
${MINGW_BIN}/libwebpdemux-[0-9]*.dll
|
||||
${MINGW_BIN}/libwebpmux-[0-9]*.dll
|
||||
${MINGW_BIN}/libwinpthread-[0-9]*.dll
|
||||
${MINGW_BIN}/libwmf-0-2-[0-9]*.dll
|
||||
${MINGW_BIN}/libwmflite-0-2-[0-9]*.dll
|
||||
${MINGW_BIN}/libwpd-0.[0-9]*.dll
|
||||
${MINGW_BIN}/libwpg-0.[0-9]*.dll
|
||||
${MINGW_BIN}/libxml2-[0-9]*.dll
|
||||
${MINGW_BIN}/libxslt-[0-9]*.dll
|
||||
${MINGW_BIN}/libx265.dll
|
||||
${MINGW_BIN}/libzstd.dll
|
||||
${MINGW_BIN}/nss[0-9]*.dll
|
||||
${MINGW_BIN}/nssutil[0-9]*.dll
|
||||
${MINGW_BIN}/rav1e.dll
|
||||
${MINGW_BIN}/smime[0-9]*.dll
|
||||
${MINGW_BIN}/tcl[0-9]*.dll
|
||||
${MINGW_BIN}/tk[0-9]*.dll
|
||||
${MINGW_BIN}/zlib1.dll)
|
||||
INSTALL(FILES ${MINGW_LIBS} DESTINATION bin)
|
||||
# There are differences for 64-Bit and 32-Bit build environments.
|
||||
if(HAVE_MINGW64)
|
||||
if($ENV{MSYSTEM} STREQUAL "CLANGARM64" OR $ENV{MSYSTEM} STREQUAL "CLANG64")
|
||||
install(FILES
|
||||
${MINGW_BIN}/libc++.dll
|
||||
${MINGW_BIN}/libunwind.dll
|
||||
DESTINATION bin)
|
||||
else()
|
||||
install(FILES
|
||||
${MINGW_BIN}/libgcc_s_seh-1.dll
|
||||
DESTINATION bin)
|
||||
endif()
|
||||
else()
|
||||
install(FILES
|
||||
${MINGW_BIN}/libgcc_s_dw2-1.dll
|
||||
DESTINATION bin)
|
||||
endif()
|
||||
|
||||
# Install graphics-magick dlls
|
||||
if(WITH_GRAPHICS_MAGICK)
|
||||
install (DIRECTORY ${MINGW_LIB}/GraphicsMagick-1.3.38
|
||||
DESTINATION lib
|
||||
FILES_MATCHING
|
||||
PATTERN "*.dll"
|
||||
PATTERN "*.la"
|
||||
PATTERN "filters" EXCLUDE)
|
||||
file(GLOB MAGICK_LIBS
|
||||
${MINGW_BIN}/libGraphicsMagick[+-]*.dll
|
||||
${MINGW_BIN}/libjxl.dll
|
||||
${MINGW_BIN}/libjxl_cms.dll
|
||||
${MINGW_BIN}/libjxl_threads.dll
|
||||
${MINGW_BIN}/libltdl-[0-9]*.dll
|
||||
${MINGW_BIN}/libhwy.dll
|
||||
${MINGW_BIN}/libbrotlienc.dll)
|
||||
install(FILES ${MAGICK_LIBS} DESTINATION bin)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_MAGICK)
|
||||
file(GLOB MAGICK_LIBS ${MINGW_BIN}/libMagick*.dll)
|
||||
install(FILES ${MAGICK_LIBS} DESTINATION bin)
|
||||
endif()
|
||||
|
||||
# Install hicolor/index.theme to avoid bug 1635207
|
||||
install(FILES
|
||||
${MINGW_PATH}/share/icons/hicolor/index.theme
|
||||
DESTINATION share/icons/hicolor)
|
||||
|
||||
install(DIRECTORY ${MINGW_PATH}/share/icons/Adwaita
|
||||
DESTINATION share/icons)
|
||||
install(CODE "execute_process(COMMAND gtk-update-icon-cache \${CMAKE_INSTALL_PREFIX}/share/icons/Adwaita)")
|
||||
|
||||
# translations for libraries (we usually shouldn't need many)
|
||||
get_inkscape_languages()
|
||||
foreach(language_code ${INKSCAPE_LANGUAGE_CODES})
|
||||
string(MAKE_C_IDENTIFIER "${language_code}" language_code_escaped)
|
||||
install(DIRECTORY ${MINGW_PATH}/share/locale/${language_code}
|
||||
DESTINATION share/locale
|
||||
COMPONENT translations.${language_code_escaped}
|
||||
FILES_MATCHING
|
||||
PATTERN "*glib20.mo"
|
||||
PATTERN "*gtk30.mo"
|
||||
PATTERN "*gspell-1.mo")
|
||||
endforeach()
|
||||
|
||||
install(DIRECTORY ${MINGW_PATH}/share/poppler
|
||||
DESTINATION share)
|
||||
|
||||
install(DIRECTORY ${MINGW_PATH}/share/glib-2.0/schemas
|
||||
DESTINATION share/glib-2.0)
|
||||
|
||||
install(DIRECTORY ${MINGW_PATH}/share/gtksourceview-4
|
||||
DESTINATION share)
|
||||
|
||||
# fontconfig
|
||||
install(DIRECTORY ${MINGW_PATH}/etc/fonts
|
||||
DESTINATION etc
|
||||
PATTERN "fonts.conf" EXCLUDE)
|
||||
install(FILES ${MINGW_PATH}/share/fontconfig/conf.avail/70-no-bitmaps.conf
|
||||
DESTINATION etc/fonts/conf.d)
|
||||
# adjust fonts.conf
|
||||
# - add "%localappdata%\Microsoft\Windows\Fonts" as font dir
|
||||
# which is the default path for fonts installed per-user in Windows 10 (version 1809)
|
||||
# - store font cache in non-temporary directory in "%localappdata%\fontconfig\cache"
|
||||
set(fontdir_default "\\t^<dir^>WINDOWSFONTDIR^</dir^>") # the '^' are needed to escape angle brackets on Windows command shell
|
||||
set(fontdir_additional "\\t^<dir^>~/AppData/Local/Microsoft/Windows/Fonts^</dir^>")
|
||||
set(cachedir_default "\\t^<cachedir^>/var/cache/fontconfig^</cachedir^>")
|
||||
set(cachedir_appdata "\\t^<cachedir^>LOCAL_APPDATA_FONTCONFIG_CACHE^</cachedir^>")
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/etc/fonts/fonts.conf
|
||||
COMMAND sed 's!${fontdir_default}!${fontdir_default}\\n${fontdir_additional}!' ${MINGW_PATH}/etc/fonts/fonts.conf |
|
||||
sed 's!${cachedir_default}!${cachedir_appdata}\\n${cachedir_default}!' > ${CMAKE_BINARY_DIR}/etc/fonts/fonts.conf
|
||||
MAIN_DEPENDENCY ${MINGW_PATH}/etc/fonts/fonts.conf
|
||||
)
|
||||
add_custom_target(fonts_conf ALL DEPENDS ${CMAKE_BINARY_DIR}/etc/fonts/fonts.conf)
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/etc/fonts
|
||||
DESTINATION etc)
|
||||
|
||||
# GTK 3.0
|
||||
install(DIRECTORY ${MINGW_LIB}/gtk-3.0
|
||||
DESTINATION lib
|
||||
FILES_MATCHING
|
||||
PATTERN "*.dll"
|
||||
PATTERN "*.cache")
|
||||
|
||||
install(DIRECTORY ${MINGW_PATH}/etc/gtk-3.0
|
||||
DESTINATION etc)
|
||||
|
||||
install(DIRECTORY ${MINGW_LIB}/gdk-pixbuf-2.0
|
||||
DESTINATION lib
|
||||
FILES_MATCHING
|
||||
PATTERN "*.dll"
|
||||
PATTERN "*.cache")
|
||||
|
||||
# Typelibs for gtk, pango, cairo -> can be used in Python extensions
|
||||
# ToDo: Automate the creation of this collection!
|
||||
install (FILES
|
||||
${MINGW_LIB}/girepository-1.0/Atk-1.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/cairo-1.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/Gdk-3.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/GdkPixbuf-2.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/Gio-2.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/GLib-2.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/GModule-2.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/GObject-2.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/Gtk-3.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/HarfBuzz-0.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/Pango-1.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/PangoCairo-1.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/fontconfig-2.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/PangoFc-1.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/PangoFT2-1.0.typelib
|
||||
${MINGW_LIB}/girepository-1.0/freetype2-2.0.typelib
|
||||
DESTINATION lib/girepository-1.0)
|
||||
|
||||
# Aspell dictionaries
|
||||
install(DIRECTORY ${MINGW_LIB}/aspell-0.60
|
||||
DESTINATION lib
|
||||
COMPONENT dictionaries)
|
||||
|
||||
# Aspell backend for Enchant (gspell uses Enchant to access Aspell dictionaries)
|
||||
install(FILES
|
||||
${MINGW_LIB}/enchant-2/enchant_aspell.dll
|
||||
DESTINATION lib/enchant-2)
|
||||
|
||||
# tcl/tk related files (required for tkinter)
|
||||
install(DIRECTORY
|
||||
${MINGW_PATH}/lib/tcl8
|
||||
${MINGW_PATH}/lib/tcl8.6
|
||||
${MINGW_PATH}/lib/tk8.6
|
||||
DESTINATION lib)
|
||||
|
||||
# Necessary to run extensions on windows if it is not in the path
|
||||
if (HAVE_MINGW64)
|
||||
install(FILES
|
||||
${MINGW_BIN}/gspawn-win64-helper.exe
|
||||
${MINGW_BIN}/gspawn-win64-helper-console.exe
|
||||
DESTINATION bin)
|
||||
else()
|
||||
install(FILES
|
||||
${MINGW_BIN}/gspawn-win32-helper.exe
|
||||
${MINGW_BIN}/gspawn-win32-helper-console.exe
|
||||
DESTINATION bin)
|
||||
endif()
|
||||
|
||||
# Install gdbus helper to avoid warnings printed to command line
|
||||
# (GApplication unconditionally tries to establish a dbus connection)
|
||||
install(FILES
|
||||
${MINGW_BIN}/gdbus.exe
|
||||
DESTINATION bin)
|
||||
|
||||
# Python (use executable names without version number for compatibility with python from python.org)
|
||||
file(GLOB python_version ${MINGW_BIN}/libpython3.[0-9]*.dll)
|
||||
string(REGEX REPLACE "${MINGW_BIN}/libpython(3\.[0-9]+)\.dll" "\\1" python_version ${python_version})
|
||||
|
||||
install(FILES
|
||||
${MINGW_BIN}/python3.exe
|
||||
RENAME python.exe
|
||||
DESTINATION bin
|
||||
COMPONENT python)
|
||||
install(FILES
|
||||
${MINGW_BIN}/python3w.exe
|
||||
RENAME pythonw.exe
|
||||
DESTINATION bin
|
||||
COMPONENT python)
|
||||
install(FILES
|
||||
${MINGW_BIN}/libpython${python_version}.dll
|
||||
DESTINATION bin
|
||||
COMPONENT python)
|
||||
install(DIRECTORY ${MINGW_LIB}/python${python_version}
|
||||
DESTINATION lib
|
||||
COMPONENT python
|
||||
PATTERN "python${python_version}/site-packages" EXCLUDE # specify individual packages to install below
|
||||
PATTERN "python${python_version}/test" EXCLUDE # we don't need the Python testsuite
|
||||
PATTERN "*.pyc" EXCLUDE
|
||||
)
|
||||
|
||||
set(site_packages "lib/python${python_version}/site-packages")
|
||||
# Python packages installed via pacman
|
||||
set(packages
|
||||
"python-lxml" "python-numpy" "python-pillow" "python-six" "python-cairo" "python-cssselect"
|
||||
"python-webencodings" "python-tinycss2"
|
||||
"python-gobject" "python-coverage" "python-pyserial" "python-packaging" "python-zstandard" "scour")
|
||||
foreach(package ${packages})
|
||||
list_files_pacman(${package} paths)
|
||||
install_list(FILES ${paths}
|
||||
ROOT ${MINGW_PATH}
|
||||
COMPONENT python
|
||||
INCLUDE ${site_packages} # only include content from "site-packages" (we might consider to install everything)
|
||||
EXCLUDE ".pyc$"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# Python packages for the extensions manager, and clipart importer extensions
|
||||
set(packages
|
||||
"python-appdirs" "python-msgpack" "python-lockfile" "python-cachecontrol"
|
||||
"python-idna" "python-urllib3" "python-chardet" "python-certifi" "python-requests" "python-beautifulsoup4" "python-filelock")
|
||||
foreach(package ${packages})
|
||||
list_files_pacman(${package} paths)
|
||||
install_list(FILES ${paths}
|
||||
ROOT ${MINGW_PATH}
|
||||
COMPONENT extension_manager
|
||||
INCLUDE ${site_packages} # only include content from "site-packages" (we might consider to install everything)
|
||||
EXCLUDE ".pyc$"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# Python packages installed via pip
|
||||
set(packages "")
|
||||
foreach(package ${packages})
|
||||
list_files_pip(${package} paths)
|
||||
install_list(FILES ${paths}
|
||||
ROOT ${MINGW_PATH}/${site_packages}
|
||||
DESTINATION ${site_packages}/
|
||||
COMPONENT python
|
||||
EXCLUDE "^\\.\\.\\/" # exclude content in parent directories (notably scripts installed to /bin)
|
||||
EXCLUDE ".pyc$"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
install(CODE
|
||||
"MESSAGE(\"Pre-compiling Python distribution to byte-code (.pyc files)\")
|
||||
execute_process(COMMAND \${CMAKE_INSTALL_PREFIX}/bin/python -m compileall -qq \${CMAKE_INSTALL_PREFIX}/lib/python${python_version})"
|
||||
COMPONENT python)
|
||||
|
||||
# gdb
|
||||
if (NOT ($ENV{MSYSTEM} STREQUAL "CLANGARM64" OR $ENV{MSYSTEM} STREQUAL "CLANG64"))
|
||||
install(FILES
|
||||
${MINGW_BIN}/gdb.exe
|
||||
${MINGW_BIN}/libxxhash.dll
|
||||
DESTINATION bin)
|
||||
install(DIRECTORY
|
||||
${MINGW_PATH}/share/gdb
|
||||
DESTINATION share
|
||||
PATTERN "*.pyc" EXCLUDE)
|
||||
install(FILES
|
||||
packaging/win32/gdb_create_backtrace.bat
|
||||
DESTINATION bin)
|
||||
# convenience launcher
|
||||
install(FILES
|
||||
"packaging/win32/Run Inkscape and create debug trace.bat"
|
||||
DESTINATION .)
|
||||
endif()
|
||||
|
||||
# convenience launchers
|
||||
install(FILES
|
||||
"packaging/win32/Run Inkscape !.bat"
|
||||
"packaging/win32/Run Inkscape with GTK Inspector.bat"
|
||||
DESTINATION .)
|
||||
|
||||
endif()
|
27
CMakeScripts/Modules/FindDoubleConversion.cmake
Normal file
|
@ -0,0 +1,27 @@
|
|||
# - Try to find double-conversion
|
||||
# Once done, this will define
|
||||
#
|
||||
# DoubleConversion_FOUND - system has double-conversion
|
||||
# DoubleConversion_INCLUDE_DIRS - the double-conversion include directories
|
||||
# DoubleConversion_LIBRARIES - link these to use double-conversion
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_library(DoubleConversion_LIBRARY double-conversion
|
||||
PATHS ${DoubleConversion_LIBRARYDIR})
|
||||
|
||||
find_path(DoubleConversion_INCLUDE_DIR double-conversion/double-conversion.h
|
||||
PATHS ${DoubleConversion_INCLUDEDIR})
|
||||
|
||||
find_package_handle_standard_args(DoubleConversion DEFAULT_MSG
|
||||
DoubleConversion_LIBRARY
|
||||
DoubleConversion_INCLUDE_DIR)
|
||||
|
||||
mark_as_advanced(
|
||||
DoubleConversion_LIBRARY
|
||||
DoubleConversion_INCLUDE_DIR)
|
||||
|
||||
if(DoubleConversion_FOUND)
|
||||
set(DoubleConversion_LIBRARIES ${DoubleConversion_LIBRARY})
|
||||
set(DoubleConversion_INCLUDE_DIRS ${DoubleConversion_INCLUDE_DIR})
|
||||
endif()
|
70
CMakeScripts/Modules/FindJeMalloc.cmake
Normal file
|
@ -0,0 +1,70 @@
|
|||
# - Find JeMalloc library
|
||||
# Find the native JeMalloc includes and library
|
||||
# This module defines
|
||||
# JEMALLOC_INCLUDE_DIRS, where to find jemalloc.h, Set when
|
||||
# JEMALLOC_INCLUDE_DIR is found.
|
||||
# JEMALLOC_LIBRARIES, libraries to link against to use JeMalloc.
|
||||
# JEMALLOC_ROOT_DIR, The base directory to search for JeMalloc.
|
||||
# This can also be an environment variable.
|
||||
# JEMALLOC_FOUND, If false, do not try to use JeMalloc.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# JEMALLOC_LIBRARY, where to find the JeMalloc library.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2011 Blender Foundation.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
# If JEMALLOC_ROOT_DIR was defined in the environment, use it.
|
||||
IF(NOT JEMALLOC_ROOT_DIR AND NOT $ENV{JEMALLOC_ROOT_DIR} STREQUAL "")
|
||||
SET(JEMALLOC_ROOT_DIR $ENV{JEMALLOC_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_jemalloc_SEARCH_DIRS
|
||||
${JEMALLOC_ROOT_DIR}
|
||||
/usr/local
|
||||
/sw # Fink
|
||||
/opt/local # DarwinPorts
|
||||
/opt/csw # Blastwave
|
||||
)
|
||||
|
||||
FIND_PATH(JEMALLOC_INCLUDE_DIR
|
||||
NAMES
|
||||
jemalloc.h
|
||||
HINTS
|
||||
${_jemalloc_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include/jemalloc
|
||||
)
|
||||
|
||||
FIND_LIBRARY(JEMALLOC_LIBRARY
|
||||
NAMES
|
||||
jemalloc
|
||||
HINTS
|
||||
${_jemalloc_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(JeMalloc DEFAULT_MSG
|
||||
JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR)
|
||||
|
||||
IF(JEMALLOC_FOUND)
|
||||
SET(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY})
|
||||
SET(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR})
|
||||
ENDIF(JEMALLOC_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
JEMALLOC_INCLUDE_DIR
|
||||
JEMALLOC_LIBRARY
|
||||
)
|
55
CMakeScripts/Modules/FindNSIS.cmake
Normal file
|
@ -0,0 +1,55 @@
|
|||
# - Try to find NSIS
|
||||
# Once done this will define
|
||||
#
|
||||
# NSIS_ROOT_PATH - Set this variable to the root installation of NSIS
|
||||
#
|
||||
# Read-Only variables:
|
||||
#
|
||||
# NSIS_FOUND - system has NSIS
|
||||
# NSIS_MAKE - NSIS creator executable
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2010-2013 Andreas Schneider <asn@cryptomilk.org>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
#
|
||||
|
||||
if (WIN32)
|
||||
set(_NSIS_ROOT_HINTS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\NSIS;Default]")
|
||||
|
||||
set(_NSIS_ROOT_PATHS
|
||||
$ENV{PROGRAMFILES}/NSIS)
|
||||
|
||||
find_path(NSIS_ROOT_PATH
|
||||
NAMES
|
||||
Include/Library.nsh
|
||||
HINTS
|
||||
${_NSIS_ROOT_HINTS}
|
||||
PATHS
|
||||
${_NSIS_ROOT_PATHS}
|
||||
)
|
||||
mark_as_advanced(NSIS_ROOT_PATH)
|
||||
endif (WIN32)
|
||||
|
||||
find_program(NSIS_MAKE
|
||||
NAMES
|
||||
makensis
|
||||
PATHS
|
||||
${NSIS_ROOT_PATH}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(NSIS DEFAULT_MSG NSIS_MAKE)
|
||||
|
||||
if (NSIS_MAKE)
|
||||
set(NSIS_FOUND TRUE)
|
||||
endif (NSIS_MAKE)
|
||||
|
||||
mark_as_advanced(NSIS_MAKE)
|
47
CMakeScripts/Modules/FindPopplerCairo.cmake
Normal file
|
@ -0,0 +1,47 @@
|
|||
# - Try to find PopplerCairo
|
||||
# Once done this will define
|
||||
#
|
||||
# POPPLER_FOUND - system has PopplerCairo
|
||||
# POPPLER_INCLUDE_DIRS - the PopplerCairo include directory
|
||||
# POPPLER_LIBRARIES - Link these to use PopplerCairo
|
||||
# POPPLER_DEFINITIONS - Compiler switches required for using PopplerCairo
|
||||
#
|
||||
# Copyright (c) 2008 Joshua L. Blocher <verbalshadow@gmail.com>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the New
|
||||
# BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
#
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake)
|
||||
|
||||
if (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS)
|
||||
# in cache already
|
||||
set(POPPLER_FOUND TRUE)
|
||||
else (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS)
|
||||
# use pkg-config to get the directories and then use these values
|
||||
# in the FIND_PATH() and FIND_LIBRARY() calls
|
||||
find_package(PkgConfig)
|
||||
if (PKG_CONFIG_FOUND)
|
||||
INKSCAPE_PKG_CONFIG_FIND(POPPLER poppler >=0.20.0 poppler-config.h poppler poppler)
|
||||
if (POPPLER_FOUND)
|
||||
INKSCAPE_PKG_CONFIG_FIND(POPPLER_GLIB poppler-glib >=0.20.0 poppler/glib/poppler.h "" poppler-glib)
|
||||
if (POPPLER_GLIB_FOUND)
|
||||
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_GLIB_INCLUDE_DIRS})
|
||||
list(APPEND POPPLER_LIBRARIES ${POPPLER_GLIB_LIBRARIES})
|
||||
INKSCAPE_PKG_CONFIG_FIND(CAIRO_SVG cairo-svg 0 cairo-svg.h cairo cairo)
|
||||
if (CAIRO_SVG_FOUND)
|
||||
list(APPEND POPPLER_INCLUDE_DIRS ${CAIRO_SVG_INCLUDE_DIRS})
|
||||
list(APPEND POPPLER_LIBRARIES ${CAIRO_SVG_LIBRARIES})
|
||||
endif (CAIRO_SVG_FOUND)
|
||||
endif (POPPLER_GLIB_FOUND)
|
||||
if (ENABLE_POPPLER_CAIRO)
|
||||
INKSCAPE_PKG_CONFIG_FIND(POPPLER_CAIRO poppler-cairo >=0.20.0 cairo.h cairo cairo)
|
||||
if (POPPLER_GLIB_FOUND AND POPPLER_CAIRO_FOUND AND NOT CAIRO_SVG_FOUND)
|
||||
list(APPEND POPPLER_INCLUDE_DIRS ${POPPLER_CAIRO_INCLUDE_DIRS})
|
||||
list(APPEND POPPLER_LIBRARIES ${POPPLER_CAIRO_LIBRARIES})
|
||||
endif (POPPLER_GLIB_FOUND AND POPPLER_CAIRO_FOUND AND NOT CAIRO_SVG_FOUND)
|
||||
endif (ENABLE_POPPLER_CAIRO)
|
||||
endif (POPPLER_FOUND)
|
||||
endif (PKG_CONFIG_FOUND)
|
||||
endif (POPPLER_LIBRARIES AND POPPLER_INCLUDE_DIRS)
|
62
CMakeScripts/Modules/FindPotrace.cmake
Normal file
|
@ -0,0 +1,62 @@
|
|||
# POTRACE_FOUND - system has Potrace
|
||||
# POTRACE_INCLUDE_DIRS - the Potrace include directory
|
||||
# POTRACE_LIBRARIES - The libraries needed to use Potrace
|
||||
|
||||
IF (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS)
|
||||
# in cache already
|
||||
SET(POTRACE_FOUND TRUE)
|
||||
ELSE (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS)
|
||||
FIND_PATH (POTRACE_INCLUDE_DIR
|
||||
NAMES
|
||||
potracelib.h
|
||||
PATHS
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
$ENV{DEVLIBS_PATH}/include
|
||||
PATH_SUFFIXES
|
||||
potrace
|
||||
)
|
||||
|
||||
FIND_LIBRARY (POTRACE_LIBRARY
|
||||
NAMES
|
||||
potrace
|
||||
libpotrace
|
||||
PATHS
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
$ENV{DEVLIBS_PATH}/lib
|
||||
)
|
||||
|
||||
if (POTRACE_LIBRARY)
|
||||
set (POTRACE_FOUND TRUE)
|
||||
endif (POTRACE_LIBRARY)
|
||||
|
||||
set (POTRACE_INCLUDE_DIRS
|
||||
${POTRACE_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
if (POTRACE_FOUND)
|
||||
set(POTRACE_LIBRARIES
|
||||
${POTRACE_LIBRARIES}
|
||||
${POTRACE_LIBRARY}
|
||||
)
|
||||
endif (POTRACE_FOUND)
|
||||
|
||||
if (POTRACE_INCLUDE_DIRS AND POTRACE_LIBRARIES)
|
||||
set(POTRACE_FOUND TRUE)
|
||||
endif (POTRACE_INCLUDE_DIRS AND POTRACE_LIBRARIES)
|
||||
|
||||
if (POTRACE_FOUND)
|
||||
if (NOT Potrace_FIND_QUIETLY)
|
||||
message(STATUS "Found Potrace: ${POTRACE_LIBRARIES}")
|
||||
endif (NOT Potrace_FIND_QUIETLY)
|
||||
else (POTRACE_FOUND)
|
||||
if (Potrace_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could not find potrace")
|
||||
endif (Potrace_FIND_REQUIRED)
|
||||
endif (POTRACE_FOUND)
|
||||
|
||||
# show the POTRACE_INCLUDE_DIRS and POTRACE_LIBRARIES variables only in the advanced view
|
||||
MARK_AS_ADVANCED(POTRACE_INCLUDE_DIRS POTRACE_LIBRARIES)
|
||||
|
||||
endif (POTRACE_LIBRARIES AND POTRACE_INCLUDE_DIRS)
|
83
CMakeScripts/Pod2man.cmake
Normal file
|
@ -0,0 +1,83 @@
|
|||
# Use pod2man to generate manual pages from .pod files
|
||||
|
||||
# Usage: pod2man(<podfile> <release-string> <man-section> <heading-center-text>)
|
||||
#
|
||||
# E.g.: pod2man("/path/to/file/mypod.pod" "1.2.3" 1 "My Manual Pages")
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
find_program(POD2MAN pod2man)
|
||||
if(NOT POD2MAN)
|
||||
message(STATUS "Could not find pod2man - man pages disabled")
|
||||
endif()
|
||||
|
||||
find_program(GZIP gzip)
|
||||
if(NOT GZIP)
|
||||
message(STATUS "Could not find gzip - man pages uncompressed")
|
||||
endif()
|
||||
|
||||
macro(pod2man PODFILE_FULL RELEASE SECTION CENTER)
|
||||
get_filename_component(PODFILE ${PODFILE_FULL} NAME)
|
||||
string(REPLACE "." ";" PODFILE_LIST ${PODFILE})
|
||||
list(GET PODFILE_LIST 0 NAME)
|
||||
list(GET PODFILE_LIST 1 LANG)
|
||||
string(TOUPPER ${NAME} NAME_UPCASE)
|
||||
if(${LANG} STREQUAL "pod")
|
||||
set(LANG "")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${PODFILE_FULL})
|
||||
message(FATAL_ERROR "Could not find pod file ${PODFILE_FULL} to generate man page")
|
||||
endif(NOT EXISTS ${PODFILE_FULL})
|
||||
|
||||
if(POD2MAN)
|
||||
if(LANG)
|
||||
set(MANPAGE_TARGET "man-${NAME}-${LANG}")
|
||||
set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${LANG}.tmp")
|
||||
set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${LANG}.${SECTION}")
|
||||
set(MANFILE_FULL_GZ "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${LANG}.${SECTION}.gz")
|
||||
set(MANFILE_DEST "${CMAKE_INSTALL_MANDIR}/${LANG}/man${SECTION}")
|
||||
else()
|
||||
set(MANPAGE_TARGET "man-${NAME}")
|
||||
set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tmp")
|
||||
set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECTION}")
|
||||
set(MANFILE_FULL_GZ "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECTION}.gz")
|
||||
set(MANFILE_DEST "${CMAKE_INSTALL_MANDIR}/man${SECTION}")
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${MANFILE_TEMP}
|
||||
COMMAND ${POD2MAN} --utf8 --section="${SECTION}" --center="${CENTER}"
|
||||
--release="${RELEASE}" --name="${NAME_UPCASE}" "${PODFILE_FULL}" "${MANFILE_TEMP}"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${MANFILE_FULL}
|
||||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/fix-roff-punct "${MANFILE_TEMP}" > ${MANFILE_FULL}
|
||||
DEPENDS ${MANFILE_TEMP}
|
||||
)
|
||||
if(GZIP AND WITH_MANPAGE_COMPRESSION)
|
||||
add_custom_command(
|
||||
OUTPUT ${MANFILE_FULL_GZ}
|
||||
COMMAND ${GZIP} -f -k --best -n "${MANFILE_FULL}"
|
||||
DEPENDS ${MANFILE_FULL}
|
||||
)
|
||||
add_custom_target(${MANPAGE_TARGET} ALL
|
||||
DEPENDS ${MANFILE_FULL_GZ}
|
||||
)
|
||||
install(
|
||||
FILES ${MANFILE_FULL_GZ}
|
||||
RENAME ${NAME}.${SECTION}.gz
|
||||
DESTINATION ${MANFILE_DEST}
|
||||
)
|
||||
else()
|
||||
add_custom_target(${MANPAGE_TARGET} ALL
|
||||
DEPENDS ${MANFILE_FULL}
|
||||
)
|
||||
install(
|
||||
FILES ${MANFILE_FULL}
|
||||
RENAME ${NAME}.${SECTION}
|
||||
DESTINATION ${MANFILE_DEST}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endmacro(pod2man PODFILE NAME SECTION CENTER)
|
40
CMakeScripts/UseGlibMarshal.cmake
Normal file
|
@ -0,0 +1,40 @@
|
|||
# - This is a module to Generate files using Glib-Marshal
|
||||
# Both the header and source files (.h and .cpp)
|
||||
# Copyright 2008 - Joshua L. Blocher
|
||||
#
|
||||
# And it defines the following variables:
|
||||
# GLIB_MARSHAL_PREFIX - The name of the files
|
||||
# GLIB_MARSHAL_FILE - File to Generate from (.list) and to generate to (.h and .cpp)
|
||||
# GLIB_MARSHAL_OUTPUT_HEADER - Result of Generation
|
||||
# GLIB_MARSHAL_OUTPUT_CPP - Result of Generation
|
||||
# GLIB_MARSHAL_OUTPUT_LOCATION - Where we are putting the Output
|
||||
|
||||
find_program(GLIB_MARSHAL_EXECUTABLE NAMES glib-genmarshal PATHS /usr/local/bin )
|
||||
|
||||
macro(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOCATION)
|
||||
if(GLIB_MARSHAL_EXECUTABLE)
|
||||
set(GLIB_MARSHAL_OUTPUT_EXTRA_LINE "#include \"${GLIB_MARSHAL_FILE}.h\" \n" )
|
||||
|
||||
message(STATUS "Generating header and sourcefiles from ${GLIB_MARSHAL_FILE}.list (Glib-Marshal)")
|
||||
execute_process(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --header ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list
|
||||
OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_HEADER )
|
||||
execute_process(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list
|
||||
OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP )
|
||||
|
||||
# check whether the generated file is the same as the existing one
|
||||
if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h)
|
||||
file(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD)
|
||||
else()
|
||||
set(GLIB_MARSHAL_HEADER_OLD "")
|
||||
endif()
|
||||
if(NOT GLIB_MARSHAL_HEADER_OLD STREQUAL GLIB_MARSHAL_OUTPUT_HEADER)
|
||||
message(STATUS "${GLIB_MARSHAL_FILE}.h changed; overwriting")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}")
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}")
|
||||
else()
|
||||
message(STATUS "${GLIB_MARSHAL_FILE}.h unchanged")
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
103
CMakeScripts/UsePkgConfig.cmake
Normal file
|
@ -0,0 +1,103 @@
|
|||
# - pkg-config module for CMake
|
||||
#
|
||||
# Defines the following macros:
|
||||
#
|
||||
# PKGCONFIG_FOUND(package found)
|
||||
# PKGCONFIG(package includedir libdir linkflags cflags)
|
||||
# PKGCONFIG_VERSION(package version)
|
||||
# PKGCONFIG_DEFINITION(package definition)
|
||||
|
||||
# Calling PKGCONFIG_FOUND will fill into the argument the value of the package search's result
|
||||
# e.g. PKGCONFIG_FOUND(libart-2.0 LIBART_FOUND)
|
||||
#
|
||||
# Calling PKGCONFIG_VERSION will fill the desired version into the argument,
|
||||
# e.g. PKGCONFIG_VERSION(libart-2.0 LIBART_VERSION)
|
||||
# Calling PKGCONFIG will fill the desired information into the 4 given arguments,
|
||||
# e.g. PKGCONFIG(libart-2.0 LIBART_INCLUDE_DIR LIBART_LINK_DIR LIBART_LINK_FLAGS LIBART_CFLAGS)
|
||||
# if pkg-config was NOT found or the specified software package doesn't exist, the
|
||||
# variable will be empty when the function returns, otherwise they will contain the respective information
|
||||
#
|
||||
# Calling PKGCONFIG_VERSION will fill the desired version into the argument,
|
||||
# e.g. PKGCONFIG_VERSION(libart-2.0 LIBART_VERSION)
|
||||
#
|
||||
# Calling PKGCONFIG_DEFINITION will fill the definition (e.g -D_REENTRANT) into the argument,
|
||||
# e.g. PKGCONFIG_DEFINITION(libart-2.0 LIBART_DEFINITION)
|
||||
|
||||
find_program(PKGCONFIG_EXECUTABLE NAMES pkg-config PATHS /usr/local/bin )
|
||||
|
||||
macro(STRIP_NEWLINES _string_var)
|
||||
string(REGEX REPLACE "[\n\r]+" "" ${_string_var} ${${_string_var}})
|
||||
endmacro(STRIP_NEWLINES _string_var)
|
||||
|
||||
macro(PKGCONFIG_FOUND _package _found)
|
||||
# reset the variable at the beginning
|
||||
set(${_found})
|
||||
|
||||
# if pkg-config has been found
|
||||
if(PKGCONFIG_EXECUTABLE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --print-errors --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
|
||||
if(${_pkgconfigDevNull})
|
||||
message(STATUS "${_pkgconfigDevNull}")
|
||||
endif(${_pkgconfigDevNull})
|
||||
|
||||
if(NOT _return_VALUE)
|
||||
set(${_found} "TRUE")
|
||||
endif(NOT _return_VALUE)
|
||||
endif(PKGCONFIG_EXECUTABLE)
|
||||
endmacro(PKGCONFIG_FOUND _found)
|
||||
|
||||
macro(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags)
|
||||
# reset the variables at the beginning
|
||||
set(${_include_DIR})
|
||||
set(${_link_DIR})
|
||||
set(${_link_FLAGS})
|
||||
set(${_cflags})
|
||||
|
||||
# if pkg-config has been found
|
||||
if(PKGCONFIG_EXECUTABLE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
|
||||
|
||||
# and if the package of interest also exists for pkg-config, then get the information
|
||||
if(NOT _return_VALUE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=includedir OUTPUT_VARIABLE ${_include_DIR} )
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --variable=libdir OUTPUT_VARIABLE ${_link_DIR} )
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --libs OUTPUT_VARIABLE ${_link_FLAGS} )
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS ${_package} --cflags OUTPUT_VARIABLE ${_cflags} )
|
||||
strip_newlines(${_cflags})
|
||||
endif(NOT _return_VALUE)
|
||||
endif(PKGCONFIG_EXECUTABLE)
|
||||
endmacro(PKGCONFIG _include_DIR _link_DIR _link_FLAGS _cflags)
|
||||
|
||||
macro(PKGCONFIG_VERSION _package _version)
|
||||
# reset the variables at the beginning
|
||||
set(${_version})
|
||||
|
||||
# if pkg-config has been found
|
||||
if(PKGCONFIG_EXECUTABLE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
|
||||
|
||||
# and if the package of interest also exists for pkg-config, then get the information
|
||||
if(NOT _return_VALUE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --modversion OUTPUT_VARIABLE ${_version} )
|
||||
endif(NOT _return_VALUE)
|
||||
endif(PKGCONFIG_EXECUTABLE)
|
||||
endmacro(PKGCONFIG_VERSION _package _version)
|
||||
|
||||
mark_as_advanced(PKGCONFIG_EXECUTABLE)
|
||||
|
||||
macro(PKGCONFIG_DEFINITION _package _definition)
|
||||
# reset the variables at the beginning
|
||||
set(${_definition})
|
||||
|
||||
# if pkg-config has been found
|
||||
if(PKGCONFIG_EXECUTABLE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --exists RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
|
||||
|
||||
# and if the package of interest also exists for pkg-config, then get the information
|
||||
if(NOT _return_VALUE)
|
||||
exec_program(${PKGCONFIG_EXECUTABLE} ARGS --print-errors ${_package} --cflags-only-other OUTPUT_VARIABLE ${_definition} )
|
||||
endif(NOT _return_VALUE)
|
||||
endif(PKGCONFIG_EXECUTABLE)
|
||||
endmacro(PKGCONFIG_DEFINITION _package _definition)
|
||||
|
||||
mark_as_advanced(PKGCONFIG_EXECUTABLE)
|
331
CMakeScripts/cmake_consistency_check.py
Executable file
|
@ -0,0 +1,331 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# $Id: cmake_consistency_check.py 38869 2011-07-31 03:15:37Z campbellbarton $
|
||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# Contributor(s): Campbell Barton
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
import sys
|
||||
if not sys.version.startswith("3"):
|
||||
print("\nPython3.x needed, found %s.\nAborting!\n" %
|
||||
sys.version.partition(" ")[0])
|
||||
sys.exit(1)
|
||||
|
||||
from cmake_consistency_check_config import (
|
||||
IGNORE,
|
||||
UTF8_CHECK,
|
||||
SOURCE_DIR,
|
||||
)
|
||||
|
||||
|
||||
import os
|
||||
from os.path import join, dirname, normpath, splitext
|
||||
|
||||
global_h = set()
|
||||
global_c = set()
|
||||
global_refs = {}
|
||||
|
||||
|
||||
def replace_line(f, i, text, keep_indent=True):
|
||||
file_handle = open(f, 'r')
|
||||
data = file_handle.readlines()
|
||||
file_handle.close()
|
||||
|
||||
l = data[i]
|
||||
ws = l[:len(l) - len(l.lstrip())]
|
||||
|
||||
data[i] = "%s%s\n" % (ws, text)
|
||||
|
||||
file_handle = open(f, 'w')
|
||||
file_handle.writelines(data)
|
||||
file_handle.close()
|
||||
|
||||
|
||||
def source_list(path, filename_check=None):
|
||||
for dirpath, dirnames, filenames in os.walk(path):
|
||||
|
||||
# skip '.git'
|
||||
if dirpath.startswith("."):
|
||||
continue
|
||||
|
||||
for filename in filenames:
|
||||
if filename_check is None or filename_check(filename):
|
||||
yield os.path.join(dirpath, filename)
|
||||
|
||||
|
||||
# extension checking
|
||||
def is_cmake(filename):
|
||||
ext = splitext(filename)[1]
|
||||
return (ext == ".cmake") or (filename == "CMakeLists.txt")
|
||||
|
||||
|
||||
def is_c_header(filename):
|
||||
ext = splitext(filename)[1]
|
||||
return (ext in {".h", ".hpp", ".hxx", ".hh"})
|
||||
|
||||
|
||||
def is_c(filename):
|
||||
ext = splitext(filename)[1]
|
||||
return (ext in {".c", ".cpp", ".cxx", ".m", ".mm", ".rc", ".cc", ".inl"})
|
||||
|
||||
|
||||
def is_c_any(filename):
|
||||
return is_c(filename) or is_c_header(filename)
|
||||
|
||||
|
||||
def cmake_get_src(f):
|
||||
|
||||
sources_h = []
|
||||
sources_c = []
|
||||
|
||||
filen = open(f, "r", encoding="utf8")
|
||||
it = iter(filen)
|
||||
found = False
|
||||
i = 0
|
||||
# print(f)
|
||||
|
||||
def is_definition(l, f, i, name):
|
||||
if l.startswith("unset("):
|
||||
return False
|
||||
|
||||
if ('set(%s' % name) in l or ('set(' in l and l.endswith(name)):
|
||||
if len(l.split()) > 1:
|
||||
raise Exception("strict formatting not kept 'set(%s*' %s:%d" % (name, f, i))
|
||||
return True
|
||||
|
||||
if ("list(APPEND %s" % name) in l or ('list(APPEND ' in l and l.endswith(name)):
|
||||
if l.endswith(")"):
|
||||
raise Exception("strict formatting not kept 'list(APPEND %s...)' on 1 line %s:%d" % (name, f, i))
|
||||
return True
|
||||
|
||||
while it is not None:
|
||||
context_name = ""
|
||||
while it is not None:
|
||||
i += 1
|
||||
try:
|
||||
l = next(it)
|
||||
except StopIteration:
|
||||
it = None
|
||||
break
|
||||
l = l.strip()
|
||||
if not l.startswith("#"):
|
||||
found = is_definition(l, f, i, "SRC")
|
||||
if found:
|
||||
context_name = "SRC"
|
||||
break
|
||||
found = is_definition(l, f, i, "INC")
|
||||
if found:
|
||||
context_name = "INC"
|
||||
break
|
||||
|
||||
if found:
|
||||
cmake_base = dirname(f)
|
||||
|
||||
while it is not None:
|
||||
i += 1
|
||||
try:
|
||||
l = next(it)
|
||||
except StopIteration:
|
||||
it = None
|
||||
break
|
||||
|
||||
l = l.strip()
|
||||
|
||||
if not l.startswith("#"):
|
||||
|
||||
if ")" in l:
|
||||
if l.strip() != ")":
|
||||
raise Exception("strict formatting not kept '*)' %s:%d" % (f, i))
|
||||
break
|
||||
|
||||
# replace dirs
|
||||
l = l.replace("${CMAKE_CURRENT_SOURCE_DIR}", cmake_base)
|
||||
l = l.strip('"')
|
||||
|
||||
if not l:
|
||||
pass
|
||||
elif l.startswith("$"):
|
||||
if context_name == "SRC":
|
||||
# assume if it ends with context_name we know about it
|
||||
if not l.split("}")[0].endswith(context_name):
|
||||
print("Can't use var '%s' %s:%d" % (l, f, i))
|
||||
elif len(l.split()) > 1:
|
||||
raise Exception("Multi-line define '%s' %s:%d" % (l, f, i))
|
||||
else:
|
||||
new_file = normpath(join(cmake_base, l))
|
||||
|
||||
if context_name == "SRC":
|
||||
if is_c_header(new_file):
|
||||
sources_h.append(new_file)
|
||||
global_refs.setdefault(new_file, []).append((f, i))
|
||||
elif is_c(new_file):
|
||||
sources_c.append(new_file)
|
||||
global_refs.setdefault(new_file, []).append((f, i))
|
||||
elif l in {"PARENT_SCOPE", }:
|
||||
# cmake var, ignore
|
||||
pass
|
||||
elif new_file.endswith(".list"):
|
||||
pass
|
||||
elif new_file.endswith(".def"):
|
||||
pass
|
||||
elif new_file.endswith(".cl"): # opencl
|
||||
pass
|
||||
elif new_file.endswith(".cu"): # cuda
|
||||
pass
|
||||
elif new_file.endswith(".osl"): # open shading language
|
||||
pass
|
||||
elif new_file.endswith(".glsl"):
|
||||
pass
|
||||
else:
|
||||
raise Exception("unknown file type - not c or h %s -> %s" % (f, new_file))
|
||||
|
||||
elif context_name == "INC":
|
||||
if os.path.isdir(new_file):
|
||||
new_path_rel = os.path.relpath(new_file, cmake_base)
|
||||
|
||||
if new_path_rel != l:
|
||||
print("overly relative path:\n %s:%d\n %s\n %s" % (f, i, l, new_path_rel))
|
||||
|
||||
# # Save time. just replace the line
|
||||
# replace_line(f, i - 1, new_path_rel)
|
||||
|
||||
else:
|
||||
raise Exception("non existent include %s:%d -> %s" % (f, i, new_file))
|
||||
|
||||
# print(new_file)
|
||||
|
||||
global_h.update(set(sources_h))
|
||||
global_c.update(set(sources_c))
|
||||
'''
|
||||
if not sources_h and not sources_c:
|
||||
raise Exception("No sources %s" % f)
|
||||
|
||||
sources_h_fs = list(source_list(cmake_base, is_c_header))
|
||||
sources_c_fs = list(source_list(cmake_base, is_c))
|
||||
'''
|
||||
# find missing C files:
|
||||
'''
|
||||
for ff in sources_c_fs:
|
||||
if ff not in sources_c:
|
||||
print(" missing: " + ff)
|
||||
'''
|
||||
|
||||
# reset
|
||||
del sources_h[:]
|
||||
del sources_c[:]
|
||||
|
||||
filen.close()
|
||||
|
||||
|
||||
def is_ignore(f, ignore_used):
|
||||
for index, ig in enumerate(IGNORE):
|
||||
if ig in f:
|
||||
ignore_used[index] = True
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
print("Scanning:", SOURCE_DIR)
|
||||
|
||||
for cmake in source_list(SOURCE_DIR, is_cmake):
|
||||
cmake_get_src(cmake)
|
||||
|
||||
# First do stupid check, do these files exist?
|
||||
print("\nChecking for missing references:")
|
||||
is_err = False
|
||||
errs = []
|
||||
for f in (global_h | global_c):
|
||||
|
||||
if not os.path.exists(f):
|
||||
refs = global_refs[f]
|
||||
if refs:
|
||||
for cf, i in refs:
|
||||
errs.append((cf, i))
|
||||
else:
|
||||
raise Exception("CMake referenecs missing, internal error, aborting!")
|
||||
is_err = True
|
||||
|
||||
errs.sort()
|
||||
errs.reverse()
|
||||
for cf, i in errs:
|
||||
print("%s:%d" % (cf, i))
|
||||
# Write a 'sed' script, useful if we get a lot of these
|
||||
# print("sed '%dd' '%s' > '%s.tmp' ; mv '%s.tmp' '%s'" % (i, cf, cf, cf, cf))
|
||||
|
||||
if is_err:
|
||||
raise Exception("CMake referenecs missing files, aborting!")
|
||||
del is_err
|
||||
del errs
|
||||
|
||||
ignore_used = [False] * len(IGNORE)
|
||||
|
||||
# now check on files not accounted for.
|
||||
print("\nC/C++ Files CMake does not know about...")
|
||||
for cf in sorted(source_list(SOURCE_DIR, is_c)):
|
||||
if not is_ignore(cf, ignore_used):
|
||||
if cf not in global_c:
|
||||
print("missing_c: ", cf)
|
||||
|
||||
# check if automake builds a corrasponding .o file.
|
||||
'''
|
||||
if cf in global_c:
|
||||
out1 = os.path.splitext(cf)[0] + ".o"
|
||||
out2 = os.path.splitext(cf)[0] + ".Po"
|
||||
out2_dir, out2_file = out2 = os.path.split(out2)
|
||||
out2 = os.path.join(out2_dir, ".deps", out2_file)
|
||||
if not os.path.exists(out1) and not os.path.exists(out2):
|
||||
print("bad_c: ", cf)
|
||||
'''
|
||||
|
||||
print("\nC/C++ Headers CMake does not know about...")
|
||||
for hf in sorted(source_list(SOURCE_DIR, is_c_header)):
|
||||
if not is_ignore(hf, ignore_used):
|
||||
if hf not in global_h:
|
||||
print("missing_h: ", hf)
|
||||
|
||||
if UTF8_CHECK:
|
||||
# test encoding
|
||||
import traceback
|
||||
for files in (global_c, global_h):
|
||||
for f in sorted(files):
|
||||
if os.path.exists(f):
|
||||
# ignore outside of our source tree
|
||||
if "extern" not in f:
|
||||
i = 1
|
||||
try:
|
||||
for l in open(f, "r", encoding="utf8"):
|
||||
i += 1
|
||||
except UnicodeDecodeError:
|
||||
print("Non utf8: %s:%d" % (f, i))
|
||||
if i > 1:
|
||||
traceback.print_exc()
|
||||
|
||||
# Check ignores aren't stale
|
||||
print("\nCheck for unused 'IGNORE' paths...")
|
||||
for index, ig in enumerate(IGNORE):
|
||||
if not ignore_used[index]:
|
||||
print("unused ignore: %r" % ig)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
55
CMakeScripts/cmake_consistency_check_config.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
import os
|
||||
|
||||
IGNORE = (
|
||||
# dirs
|
||||
"/cxxtest/",
|
||||
"/dom/work/",
|
||||
"/src/extension/dxf2svg/",
|
||||
"/test/",
|
||||
|
||||
# files
|
||||
"buildtool.cpp",
|
||||
"src/inkscape-x64.rc",
|
||||
"src/inkview-x64.rc",
|
||||
"packaging/macosx/ScriptExec/main.c",
|
||||
"share/ui/keybindings.rc",
|
||||
"src/deptool.cpp",
|
||||
"src/display/nr-filter-skeleton.cpp",
|
||||
"src/display/testnr.cpp",
|
||||
"src/dom/io/httpclient.cpp",
|
||||
"src/dom/odf/SvgOdg.cpp",
|
||||
"src/dom/xmlwriter.cpp",
|
||||
"src/inkview.cpp",
|
||||
"src/inkview.rc",
|
||||
"src/io/streamtest.cpp",
|
||||
"src/libcola/cycle_detector.cpp",
|
||||
"src/libnr/nr-compose-reference.cpp",
|
||||
"src/libnr/testnr.cp",
|
||||
"src/live_effects/lpe-skeleton.cpp",
|
||||
"src/svg/test-stubs.cpp",
|
||||
"src/winconsole.cpp",
|
||||
|
||||
# header files
|
||||
"share/filters/filters.svg.h",
|
||||
"share/palettes/palettes.h",
|
||||
"share/paint/patterns.svg.h",
|
||||
"share/templates/templates.h",
|
||||
"share/symbols/symbols.h",
|
||||
"src/libcola/cycle_detector.h",
|
||||
"src/libnr/in-svg-plane-test.h",
|
||||
"src/libnr/nr-point-fns-test.h",
|
||||
"src/libnr/nr-translate-test.h",
|
||||
"src/svg/test-stubs.h",
|
||||
|
||||
# generated files, created by an in-source build
|
||||
"CMakeFiles/CompilerIdC/CMakeCCompilerId.c",
|
||||
"CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp",
|
||||
"src/helper/sp-marshal.cpp",
|
||||
"src/helper/sp-marshal.h",
|
||||
"src/inkscape-version.cpp",
|
||||
"config.h",
|
||||
)
|
||||
|
||||
UTF8_CHECK = False
|
||||
|
||||
SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.normpath(os.path.join(os.path.dirname(__file__), ".."))))
|
21
CMakeScripts/cmake_uninstall.cmake.in
Normal file
|
@ -0,0 +1,21 @@
|
|||
if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
|
||||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||
foreach(file ${files})
|
||||
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
exec_program(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
if(NOT "${rm_retval}" STREQUAL 0)
|
||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||
endif(NOT "${rm_retval}" STREQUAL 0)
|
||||
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
endforeach(file)
|
52
CMakeScripts/inkscape-version.cmake
Normal file
|
@ -0,0 +1,52 @@
|
|||
# This is called by cmake as an extermal process from
|
||||
# ./src/CMakeLists.txt and creates inkscape-version.cpp
|
||||
#
|
||||
# It's also included directly in ./CMakeScripts/Dist.cmake to
|
||||
# determine INKSCAPE_REVISION, INKSCAPE_REVISION_HASH and INKSCAPE_REVISION_DATE
|
||||
# for the 'dist' targets
|
||||
#
|
||||
# These variables are defined by the caller, matching the CMake equivilents.
|
||||
# - ${INKSCAPE_SOURCE_DIR}
|
||||
# - ${INKSCAPE_BINARY_DIR}
|
||||
|
||||
set(INKSCAPE_REVISION "e7c3feb100, 2024-10-09")
|
||||
|
||||
if(EXISTS ${INKSCAPE_SOURCE_DIR}/.git)
|
||||
execute_process(COMMAND git rev-parse --short HEAD
|
||||
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE INKSCAPE_REVISION_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND git log -n 1 --pretty=%cd --date=short
|
||||
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE INKSCAPE_REVISION_DATE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(INKSCAPE_REVISION "${INKSCAPE_REVISION_HASH}, ${INKSCAPE_REVISION_DATE}")
|
||||
|
||||
execute_process(COMMAND
|
||||
git status -s ${INKSCAPE_SOURCE_DIR}/src
|
||||
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE INKSCAPE_SOURCE_MODIFIED
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(NOT INKSCAPE_SOURCE_MODIFIED STREQUAL "")
|
||||
set(INKSCAPE_REVISION "${INKSCAPE_REVISION}")
|
||||
endif()
|
||||
elseif(EXISTS ${INKSCAPE_SOURCE_DIR}/debian/git-build-recipe.manifest)
|
||||
# workaround for debian packaging in ppa (where we have no repo)
|
||||
# TODO: figure out how to match this to standard build environments
|
||||
execute_process(COMMAND sed -n "s/.*deb-version\\s*//p" git-build-recipe.manifest
|
||||
WORKING_DIRECTORY ${INKSCAPE_SOURCE_DIR}/debian
|
||||
OUTPUT_VARIABLE DEB_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(INKSCAPE_REVISION "${DEB_VERSION}")
|
||||
endif()
|
||||
|
||||
if(${INKSCAPE_REVISION_DATE} MATCHES "^([0-9][0-9][0-9][0-9])-[0-9][0-9]-[0-9][0-9]$")
|
||||
set(INKSCAPE_BUILD_YEAR ${CMAKE_MATCH_1})
|
||||
else()
|
||||
string(TIMESTAMP INKSCAPE_BUILD_YEAR %Y UTC)
|
||||
endif()
|
||||
|
||||
if(NOT "${INKSCAPE_BINARY_DIR}" STREQUAL "")
|
||||
message("revision is " ${INKSCAPE_REVISION})
|
||||
configure_file(${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.in ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp)
|
||||
endif()
|
137
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,137 @@
|
|||
Contributing to Inkscape
|
||||
========================
|
||||
|
||||
Inkscape welcomes your contributions to help turn it into a fully
|
||||
SVG-compliant drawing program for the Open Source community.
|
||||
|
||||
While many developers work on fixing bugs and creating new features, it
|
||||
is worth strong emphasis that even non-programmers can help make
|
||||
Inkscape more powerful and successful. You probably already have an idea
|
||||
of something you'd like to work on. If not, here are just a few ways you
|
||||
can help:
|
||||
|
||||
* Pick a bug, fix it, and send in a merge request on GitLab.
|
||||
* Choose a feature you want to see developed, and make it.
|
||||
* If you speak a language in addition to English, work on your
|
||||
language's i18n file in the po/ directory.
|
||||
* Find a new bug and report it.
|
||||
* Help answer questions for new Inkscapers on IRC, forum, or the
|
||||
mailing lists.
|
||||
* Write an article advocating Inkscape.
|
||||
* Author a HOWTO describing a trick or technique you've figured out.
|
||||
|
||||
Git Access
|
||||
----------
|
||||
|
||||
Inkscape is currently developed on Git, with the code hosted on GitLab.
|
||||
|
||||
* https://gitlab.com/inkscape/inkscape
|
||||
|
||||
We give write access out to people with proven interest in helping develop
|
||||
the codebase. Proving your interest is straightforward: Make two
|
||||
contributions and request access.
|
||||
|
||||
Compiling the Development Version
|
||||
---------------------------------
|
||||
|
||||
See http://wiki.inkscape.org/wiki/index.php/CompilingInkscape for general
|
||||
remarks about compiling, including how to find some of the needed packages for
|
||||
your distribution, and suggestions for developers.
|
||||
|
||||
Patch Decisions
|
||||
---------------
|
||||
|
||||
Our motto for changes to the codebase is "Patch first, ask questions
|
||||
later". When someone has an idea, rather than endlessly debating it, we
|
||||
encourage folks to go ahead and code something up (even prototypish).
|
||||
You would make this change in your own fork of Inkscape (see GitLab docs about
|
||||
how to fork the repository), in a development branch of the code, which can be
|
||||
submitted to GitLab as a merge request. Once in an MR it is convenient for other
|
||||
folks to try out, poke and prod, and tinker with. We figure, the best
|
||||
way to see if an idea fits is to try it on for size.
|
||||
So if you have an idea, go ahead and fork Inkscape and submit a merge request!
|
||||
That will also take care of running build tests on the branch, although we would
|
||||
encourage you to check if everything builds and tests pass on your system first.
|
||||
|
||||
Coding Style
|
||||
------------
|
||||
|
||||
Please refer to the Coding Style Guidelines
|
||||
(https://inkscape.org/en/develop/coding-style/) if you have specific questions
|
||||
on the style to use for code. If reading style guidelines doesn't interest
|
||||
you, just follow the general style of the surrounding code, so that it is at
|
||||
least consistent.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Code needs to be documented. Future Inkscape developers will really
|
||||
appreciate this. New files should have one or two lines describing the
|
||||
purpose of the code inside the file.
|
||||
|
||||
Building (In Linux distribution)
|
||||
--------------------------------
|
||||
|
||||
This is the best set of instructions for setting up your build directory...
|
||||
|
||||
You should install ninja and ccache for the fastest build:
|
||||
|
||||
```bash
|
||||
sudo apt-get install ninja-build ccache
|
||||
```
|
||||
|
||||
Next we prepare a build directory with a symlink to Inkscape's share folder, add a profile dir and set the bin folder (optional):
|
||||
|
||||
```bash
|
||||
ln -s $PWD/share ./share/inkscape
|
||||
mkdir -p build/conf
|
||||
cd build
|
||||
export INKSCAPE_PROFILE_DIR=$PWD/conf
|
||||
PATH=$PWD/bin/:$PATH
|
||||
```
|
||||
|
||||
Now we invoke cmake, letting it know to use our new build directory prefix, ccache and the Ninja compiler:
|
||||
|
||||
```bash
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=$PWD/../ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Debug -G Ninja ..
|
||||
```
|
||||
|
||||
Invoke ninja to build the code. You may also use plain gcc's `make` if you didn't specific `-G` in the command above:
|
||||
```bash
|
||||
ninja
|
||||
```
|
||||
|
||||
Now we can run `inkscape` that we have built, with the latest resources and code:
|
||||
|
||||
```bash
|
||||
./bin/inkscape
|
||||
```
|
||||
|
||||
To build in Non-Linux Platforms check out `INSTALL.md` (Links to Inkscape Wiki pages are given right below "Basic Installation")
|
||||
|
||||
Profiling
|
||||
---------
|
||||
|
||||
To run with profiling, add `-DWITH_PROFILING=ON` to the above cmake script. Compiling and running will be slower and the gmon file will appear only after Inkscape quits.
|
||||
|
||||
See: https://wiki.inkscape.org/wiki/index.php/Profiling
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
Before landing a patch, the unit tests should pass.
|
||||
|
||||
See: http://wiki.inkscape.org/wiki/index.php/CMake#Using_CMake_to_run_tests
|
||||
|
||||
General Guidelines for developers
|
||||
----------------------------------
|
||||
|
||||
* If you are new, fork the inkscape project (https://gitlab.com/inkscape/inkscape) and create a new branch for each bug/feature you want to work on. Try to Set the CI time to a high value like 2 hour (Go to your fork > Settings > General Pipelines > Timeout)
|
||||
* Merge requests (MR) are encouraged for the smallest of contributions. This helps other developers review the code you've written and check for the mistakes that may have slipped by you.
|
||||
* Before working on anything big, be sure to discuss your idea with us ([IRC](irc://irc.freenode.org/#inkscape) or [RocketChat](https://chat.inkscape.org/)). Someone else might already have plans you can build upon and we will try to guide you !
|
||||
* Adopt the coding style (indentation, bracket placement, reference/pointer placement, variable naming etc. - developer's common sense required!) of existing source so that your changes and code doesn't stand out/feel foreign.
|
||||
* Carefully explain your ideas and the changes you've made along with their importance in the MR. Feel free to use pictures !
|
||||
* Check the "Allow commits from members who can merge to this target branch" option while submitting the MR.
|
||||
* Write informative commit messages ([check this](https://chris.beams.io/posts/git-commit/)). Use full url of bug instead of mentioning just the number in messages and discussions.
|
||||
* Try to keep your MR current instead of creating a new one. Rebase your MR sometimes.
|
||||
* Inkscape has contributors/developers from across the globe. Some may be unavailable at times but be patient and we will try our best to help you. We are glad to have you!
|
35
COPYING
Normal file
|
@ -0,0 +1,35 @@
|
|||
Inkscape license
|
||||
================
|
||||
|
||||
Most Inkscape source code is available under the GNU General Public License, version 2 or later.
|
||||
|
||||
Notable exceptions are:
|
||||
- all javascript polyfill libraries are CC0 / Public Domain
|
||||
- some libraries in src/3rdparty (mostly GNU Lesser General Public License or Mozilla Public License).
|
||||
- a few files copied from GIMP, which are available under GNU (L)GPL version 3 or later.
|
||||
- a few files which are dual-licensed, which means that they offer the additional permission to alternatively use them under another license.
|
||||
|
||||
As such, the complete binaries of Inkscape are currently covered by the terms of GNU GPL version 3 or later.
|
||||
|
||||
License of individual source files
|
||||
==================================
|
||||
|
||||
The license of each individual inkscape source file can be found in the first few lines after "SPDX-License-Identifier:". The license text of every such license can be found in LICENSES/. Some files are dual-licensed, e.g. "GPL-2.0-or-later OR MPL-1.1", which means you can choose one of these licenses.
|
||||
|
||||
Libraries have their COPYING or LICENSE file in the respective subdirectory.
|
||||
|
||||
See also https://spdx.org/licenses/ for the full license texts, and https://spdx.org/ids for the standardized header format.
|
||||
|
||||
|
||||
License Compatibility
|
||||
=====================
|
||||
|
||||
Suggested reading for license version compatibility: https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
|
||||
|
||||
Roughly summarized (I am not a lawyer, this is not legal advice):
|
||||
- You may legally make the following license changes without having to ask anyone:
|
||||
LGPL-2.1-or-later -> GPL-2.0-or-later -> GPL-3.0-or-later
|
||||
LGPL-3.0-or-later -> GPL-3.0-or-later
|
||||
- Due to that, the resulting inkscape must be under GPL-3.0-or-later.
|
||||
- Any license that is not "-or-later" is evil and must not be used in the inkscape project.
|
||||
|
99
INSTALL.md
Normal file
|
@ -0,0 +1,99 @@
|
|||
Installation
|
||||
============
|
||||
|
||||
Required Dependencies
|
||||
---------------------
|
||||
|
||||
The Inkscape core depends on several other libraries that you will need
|
||||
install, if they are not already present on your system. The most
|
||||
typical libraries you may need to install are:
|
||||
[Boehm-GC](http://www.hboehm.info/gc/),
|
||||
[libsigc++](https://github.com/libsigcplusplus/libsigcplusplus),
|
||||
[gtkmm](https://www.gtkmm.org/).
|
||||
|
||||
Make sure you got the submodules code when fetching the code
|
||||
(either by using `--recurse-submodules` on the git clone command, as recommended on the [Getting started](https://inkscape.org/develop/getting-started/#fetching-the-source-code) page, or by running `git submodule init && git submodule update`)
|
||||
|
||||
Please see [the wiki page on compiling Inkscape](http://wiki.inkscape.org/wiki/index.php/CompilingInkscape) for the
|
||||
most current dependencies, including links to the source tarballs.
|
||||
For common linux-distributions (Ubuntu, Debian, Fedora) you can use
|
||||
[a bash-script](https://gitlab.com/inkscape/inkscape-ci-docker/-/raw/master/install_dependencies.sh?inline=false)
|
||||
for getting required libraries.
|
||||
|
||||
Basic Installation
|
||||
------------------
|
||||
|
||||
For Linux based Free Desktops, Inkscape version 0.92 and newer can be built using CMake:
|
||||
|
||||
```sh
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
make install
|
||||
```
|
||||
|
||||
See `CONTRIBUTING.md` for more developer details and the [wiki](https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape).
|
||||
|
||||
For non-linux platforms, please see the Inkscape wiki pages here:
|
||||
|
||||
For building on ChromeOS, please click [here](
|
||||
https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Chrome_OS)
|
||||
|
||||
For building on Windows, please click [here](
|
||||
https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_with_MSYS2)
|
||||
|
||||
For building on Mac, please click [here](
|
||||
https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX)
|
||||
|
||||
|
||||
Running Without Installing
|
||||
--------------------------
|
||||
|
||||
For developers and others who want to run Inkscape without installing it please
|
||||
see the ***Building*** section in the `CONTRIBUTING.md` file.
|
||||
|
||||
Extensions
|
||||
----------
|
||||
|
||||
All Inkscape extensions have been moved into their own repository. They
|
||||
can be installed from there and should be packaged into builds directly.
|
||||
Report all bugs and ideas to that sub project.
|
||||
|
||||
[Inkscape Extensions](https://gitlab.com/inkscape/extensions/)
|
||||
|
||||
They are available as a sub-module which can be updated independently:
|
||||
|
||||
```sh
|
||||
git submodule update --remote
|
||||
```
|
||||
|
||||
This will update the module to the latest version and you will see the
|
||||
extensions directory is now changes in the git status. So be mindful of that.
|
||||
|
||||
Build Options
|
||||
-------------
|
||||
|
||||
A number of configuration settings can be overridden through CMake. To
|
||||
see a list of the options available for Inkscape, run:
|
||||
|
||||
```sh
|
||||
cmake -L
|
||||
```
|
||||
or, for more advanced cmake settings:
|
||||
|
||||
```sh
|
||||
cmake --help
|
||||
```
|
||||
|
||||
For example, to build Inkscape with only SVG 1 support, and no SVG 2, do:
|
||||
|
||||
```sh
|
||||
cmake .. -DWITH_SVG2=OFF
|
||||
```
|
||||
|
||||
Or, to build Inkscape with debugging symbols, do:
|
||||
|
||||
```sh
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||
```
|
15
LICENSES/GPL-2.0-or-later.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
|
||||
The license text can be found in GPL-2.0.txt.
|
||||
|
340
LICENSES/GPL-2.0.txt
Normal file
|
@ -0,0 +1,340 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
15
LICENSES/GPL-3.0-or-later.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
|
||||
The license text can be found in GPL-3.0.txt.
|
||||
|
674
LICENSES/GPL-3.0.txt
Normal file
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
12
LICENSES/LGPL-2.1-or-later.txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
The license file text can be found in LGPL-2.1.txt.
|
515
LICENSES/LGPL-2.1.txt
Normal file
|
@ -0,0 +1,515 @@
|
|||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
^L
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
^L
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control
|
||||
compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
^L
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License
|
||||
may add an explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms
|
||||
of the ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library.
|
||||
It is safest to attach them to the start of each source file to most
|
||||
effectively convey the exclusion of warranty; and each file should
|
||||
have at least the "copyright" line and a pointer to where the full
|
||||
notice is found.
|
||||
|
||||
|
||||
<one line to give the library's name and a brief idea of what it
|
||||
does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper
|
||||
mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James
|
||||
Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
12
LICENSES/LGPL-3.0-or-later.txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 3 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
The license file text can be found in LGPL-3.0.txt.
|
165
LICENSES/LGPL-3.0.txt
Normal file
|
@ -0,0 +1,165 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
422
LICENSES/MPL-1.1.txt
Normal file
|
@ -0,0 +1,422 @@
|
|||
Mozilla Public License Version 1.1
|
||||
|
||||
1. Definitions.
|
||||
|
||||
1.0.1. "Commercial Use" means distribution or otherwise making the Covered
|
||||
Code available to a third party.
|
||||
|
||||
1.1. "Contributor" means each entity that creates or contributes to the creation
|
||||
of Modifications.
|
||||
|
||||
1.2. "Contributor Version" means the combination of the Original Code, prior
|
||||
Modifications used by a Contributor, and the Modifications made by that particular
|
||||
Contributor.
|
||||
|
||||
1.3. "Covered Code" means the Original Code or Modifications or the combination
|
||||
of the Original Code and Modifications, in each case including portions thereof.
|
||||
|
||||
1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted
|
||||
in the software development community for the electronic transfer of data.
|
||||
|
||||
1.5. "Executable" means Covered Code in any form other than Source Code.
|
||||
|
||||
1.6. "Initial Developer" means the individual or entity identified as the
|
||||
Initial Developer in the Source Code notice required by Exhibit A.
|
||||
|
||||
1.7. "Larger Work" means a work which combines Covered Code or portions thereof
|
||||
with code not governed by the terms of this License.
|
||||
|
||||
1.8. "License" means this document.
|
||||
|
||||
1.8.1. "Licensable" means having the right to grant, to the maximum extent
|
||||
possible, whether at the time of the initial grant or subsequently acquired,
|
||||
any and all of the rights conveyed herein.
|
||||
|
||||
1.9. "Modifications" means any addition to or deletion from the substance
|
||||
or structure of either the Original Code or any previous Modifications. When
|
||||
Covered Code is released as a series of files, a Modification is:
|
||||
|
||||
Any addition to or deletion from the contents of a file containing Original
|
||||
Code or previous Modifications.
|
||||
|
||||
Any new file that contains any part of the Original Code or previous Modifications.
|
||||
|
||||
1.10. "Original Code" means Source Code of computer software code which is
|
||||
described in the Source Code notice required by Exhibit A as Original Code,
|
||||
and which, at the time of its release under this License is not already Covered
|
||||
Code governed by this License.
|
||||
|
||||
1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter
|
||||
acquired, including without limitation, method, process, and apparatus claims,
|
||||
in any patent Licensable by grantor.
|
||||
|
||||
1.11. "Source Code" means the preferred form of the Covered Code for making
|
||||
modifications to it, including all modules it contains, plus any associated
|
||||
interface definition files, scripts used to control compilation and installation
|
||||
of an Executable, or source code differential comparisons against either the
|
||||
Original Code or another well known, available Covered Code of the Contributor's
|
||||
choice. The Source Code can be in a compressed or archival form, provided
|
||||
the appropriate decompression or de-archiving software is widely available
|
||||
for no charge.
|
||||
|
||||
1.12. "You" (or "Your") means an individual or a legal entity exercising rights
|
||||
under, and complying with all of the terms of, this License or a future version
|
||||
of this License issued under Section 6.1. For legal entities, "You" includes
|
||||
any entity which controls, is controlled by, or is under common control with
|
||||
You. For purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity, whether
|
||||
by contract or otherwise, or (b) ownership of more than fifty percent (50%)
|
||||
of the outstanding shares or beneficial ownership of such entity.
|
||||
|
||||
2. Source Code License.
|
||||
|
||||
2.1. The Initial Developer Grant. The Initial Developer hereby grants You
|
||||
a world-wide, royalty-free, non-exclusive license, subject to third party
|
||||
intellectual property claims:
|
||||
|
||||
a. under intellectual property rights (other than patent or trademark) Licensable
|
||||
by Initial Developer to use, reproduce, modify, display, perform, sublicense
|
||||
and distribute the Original Code (or portions thereof) with or without Modifications,
|
||||
and/or as part of a Larger Work; and
|
||||
|
||||
b. under Patents Claims infringed by the making, using or selling of Original
|
||||
Code, to make, have made, use, practice, sell, and offer for sale, and/or
|
||||
otherwise dispose of the Original Code (or portions thereof).
|
||||
|
||||
c. the licenses granted in this Section 2.1 (a) and (b) are effective on the
|
||||
date Initial Developer first distributes Original Code under the terms of
|
||||
this License.
|
||||
|
||||
d. Notwithstanding Section 2.1 (b) above, no patent license is granted: 1)
|
||||
for code that You delete from the Original Code; 2) separate from the Original
|
||||
Code; or 3) for infringements caused by: i) the modification of the Original
|
||||
Code or ii) the combination of the Original Code with other software or devices.
|
||||
|
||||
2.2. Contributor Grant. Subject to third party intellectual property claims,
|
||||
each Contributor hereby grants You a world-wide, royalty-free, non-exclusive
|
||||
license
|
||||
|
||||
a. under intellectual property rights (other than patent or trademark) Licensable
|
||||
by Contributor, to use, reproduce, modify, display, perform, sublicense and
|
||||
distribute the Modifications created by such Contributor (or portions thereof)
|
||||
either on an unmodified basis, with other Modifications, as Covered Code and/or
|
||||
as part of a Larger Work; and
|
||||
|
||||
b. under Patent Claims infringed by the making, using, or selling of Modifications
|
||||
made by that Contributor either alone and/or in combination with its Contributor
|
||||
Version (or portions of such combination), to make, use, sell, offer for sale,
|
||||
have made, and/or otherwise dispose of: 1) Modifications made by that Contributor
|
||||
(or portions thereof); and 2) the combination of Modifications made by that
|
||||
Contributor with its Contributor Version (or portions of such combination).
|
||||
|
||||
c. the licenses granted in Sections 2.2 (a) and 2.2 (b) are effective on the
|
||||
date Contributor first makes Commercial Use of the Covered Code.
|
||||
|
||||
d. Notwithstanding Section 2.2 (b) above, no patent license is granted: 1)
|
||||
for any code that Contributor has deleted from the Contributor Version; 2)
|
||||
separate from the Contributor Version; 3) for infringements caused by: i)
|
||||
third party modifications of Contributor Version or ii) the combination of
|
||||
Modifications made by that Contributor with other software (except as part
|
||||
of the Contributor Version) or other devices; or 4) under Patent Claims infringed
|
||||
by Covered Code in the absence of Modifications made by that Contributor.
|
||||
|
||||
3. Distribution Obligations.
|
||||
|
||||
3.1. Application of License. The Modifications which You create or to which
|
||||
You contribute are governed by the terms of this License, including without
|
||||
limitation Section 2.2. The Source Code version of Covered Code may be distributed
|
||||
only under the terms of this License or a future version of this License released
|
||||
under Section 6.1, and You must include a copy of this License with every
|
||||
copy of the Source Code You distribute. You may not offer or impose any terms
|
||||
on any Source Code version that alters or restricts the applicable version
|
||||
of this License or the recipients' rights hereunder. However, You may include
|
||||
an additional document offering the additional rights described in Section
|
||||
3.5.
|
||||
|
||||
3.2. Availability of Source Code. Any Modification which You create or to
|
||||
which You contribute must be made available in Source Code form under the
|
||||
terms of this License either on the same media as an Executable version or
|
||||
via an accepted Electronic Distribution Mechanism to anyone to whom you made
|
||||
an Executable version available; and if made available via Electronic Distribution
|
||||
Mechanism, must remain available for at least twelve (12) months after the
|
||||
date it initially became available, or at least six (6) months after a subsequent
|
||||
version of that particular Modification has been made available to such recipients.
|
||||
You are responsible for ensuring that the Source Code version remains available
|
||||
even if the Electronic Distribution Mechanism is maintained by a third party.
|
||||
|
||||
3.3. Description of Modifications. You must cause all Covered Code to which
|
||||
You contribute to contain a file documenting the changes You made to create
|
||||
that Covered Code and the date of any change. You must include a prominent
|
||||
statement that the Modification is derived, directly or indirectly, from Original
|
||||
Code provided by the Initial Developer and including the name of the Initial
|
||||
Developer in (a) the Source Code, and (b) in any notice in an Executable version
|
||||
or related documentation in which You describe the origin or ownership of
|
||||
the Covered Code.
|
||||
|
||||
3.4. Intellectual Property Matters
|
||||
|
||||
(a) Third Party Claims
|
||||
|
||||
If Contributor has knowledge that a license under a third party's intellectual
|
||||
property rights is required to exercise the rights granted by such Contributor
|
||||
under Sections 2.1 or 2.2, Contributor must include a text file with the Source
|
||||
Code distribution titled "LEGAL" which describes the claim and the party making
|
||||
the claim in sufficient detail that a recipient will know whom to contact.
|
||||
If Contributor obtains such knowledge after the Modification is made available
|
||||
as described in Section 3.2, Contributor shall promptly modify the LEGAL file
|
||||
in all copies Contributor makes available thereafter and shall take other
|
||||
steps (such as notifying appropriate mailing lists or newsgroups) reasonably
|
||||
calculated to inform those who received the Covered Code that new knowledge
|
||||
has been obtained.
|
||||
|
||||
(b) Contributor APIs
|
||||
|
||||
If Contributor's Modifications include an application programming interface
|
||||
and Contributor has knowledge of patent licenses which are reasonably necessary
|
||||
to implement that API, Contributor must also include this information in the
|
||||
LEGAL file.
|
||||
|
||||
(c) Representations.
|
||||
|
||||
Contributor represents that, except as disclosed pursuant to Section 3.4 (a)
|
||||
above, Contributor believes that Contributor's Modifications are Contributor's
|
||||
original creation(s) and/or Contributor has sufficient rights to grant the
|
||||
rights conveyed by this License.
|
||||
|
||||
3.5. Required Notices. You must duplicate the notice in Exhibit A in each
|
||||
file of the Source Code. If it is not possible to put such notice in a particular
|
||||
Source Code file due to its structure, then You must include such notice in
|
||||
a location (such as a relevant directory) where a user would be likely to
|
||||
look for such a notice. If You created one or more Modification(s) You may
|
||||
add your name as a Contributor to the notice described in Exhibit A. You must
|
||||
also duplicate this License in any documentation for the Source Code where
|
||||
You describe recipients' rights or ownership rights relating to Covered Code.
|
||||
You may choose to offer, and to charge a fee for, warranty, support, indemnity
|
||||
or liability obligations to one or more recipients of Covered Code. However,
|
||||
You may do so only on Your own behalf, and not on behalf of the Initial Developer
|
||||
or any Contributor. You must make it absolutely clear than any such warranty,
|
||||
support, indemnity or liability obligation is offered by You alone, and You
|
||||
hereby agree to indemnify the Initial Developer and every Contributor for
|
||||
any liability incurred by the Initial Developer or such Contributor as a result
|
||||
of warranty, support, indemnity or liability terms You offer.
|
||||
|
||||
3.6. Distribution of Executable Versions. You may distribute Covered Code
|
||||
in Executable form only if the requirements of Sections 3.1, 3.2, 3.3, 3.4
|
||||
and 3.5 have been met for that Covered Code, and if You include a notice stating
|
||||
that the Source Code version of the Covered Code is available under the terms
|
||||
of this License, including a description of how and where You have fulfilled
|
||||
the obligations of Section 3.2. The notice must be conspicuously included
|
||||
in any notice in an Executable version, related documentation or collateral
|
||||
in which You describe recipients' rights relating to the Covered Code. You
|
||||
may distribute the Executable version of Covered Code or ownership rights
|
||||
under a license of Your choice, which may contain terms different from this
|
||||
License, provided that You are in compliance with the terms of this License
|
||||
and that the license for the Executable version does not attempt to limit
|
||||
or alter the recipient's rights in the Source Code version from the rights
|
||||
set forth in this License. If You distribute the Executable version under
|
||||
a different license You must make it absolutely clear that any terms which
|
||||
differ from this License are offered by You alone, not by the Initial Developer
|
||||
or any Contributor. You hereby agree to indemnify the Initial Developer and
|
||||
every Contributor for any liability incurred by the Initial Developer or such
|
||||
Contributor as a result of any such terms You offer.
|
||||
|
||||
3.7. Larger Works. You may create a Larger Work by combining Covered Code
|
||||
with other code not governed by the terms of this License and distribute the
|
||||
Larger Work as a single product. In such a case, You must make sure the requirements
|
||||
of this License are fulfilled for the Covered Code.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this License
|
||||
with respect to some or all of the Covered Code due to statute, judicial order,
|
||||
or regulation then You must: (a) comply with the terms of this License to
|
||||
the maximum extent possible; and (b) describe the limitations and the code
|
||||
they affect. Such description must be included in the LEGAL file described
|
||||
in Section 3.4 and must be included with all distributions of the Source Code.
|
||||
Except to the extent prohibited by statute or regulation, such description
|
||||
must be sufficiently detailed for a recipient of ordinary skill to be able
|
||||
to understand it.
|
||||
|
||||
5. Application of this License.
|
||||
|
||||
This License applies to code to which the Initial Developer has attached the
|
||||
notice in Exhibit A and to related Covered Code.
|
||||
|
||||
6. Versions of the License.
|
||||
|
||||
6.1. New Versions
|
||||
|
||||
Netscape Communications Corporation ("Netscape") may publish revised and/or
|
||||
new versions of the License from time to time. Each version will be given
|
||||
a distinguishing version number.
|
||||
|
||||
6.2. Effect of New Versions
|
||||
|
||||
Once Covered Code has been published under a particular version of the License,
|
||||
You may always continue to use it under the terms of that version. You may
|
||||
also choose to use such Covered Code under the terms of any subsequent version
|
||||
of the License published by Netscape. No one other than Netscape has the right
|
||||
to modify the terms applicable to Covered Code created under this License.
|
||||
|
||||
6.3. Derivative Works
|
||||
|
||||
If You create or use a modified version of this License (which you may only
|
||||
do in order to apply it to code which is not already Covered Code governed
|
||||
by this License), You must (a) rename Your license so that the phrases "Mozilla",
|
||||
"MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar
|
||||
phrase do not appear in your license (except to note that your license differs
|
||||
from this License) and (b) otherwise make it clear that Your version of the
|
||||
license contains terms which differ from the Mozilla Public License and Netscape
|
||||
Public License. (Filling in the name of the Initial Developer, Original Code
|
||||
or Contributor in the notice described in Exhibit A shall not of themselves
|
||||
be deemed to be modifications of this License.)
|
||||
|
||||
7. DISCLAIMER OF WARRANTY
|
||||
|
||||
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
|
||||
THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
|
||||
PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
|
||||
OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN
|
||||
ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME
|
||||
THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
|
||||
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED
|
||||
CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
|
||||
8. Termination
|
||||
|
||||
8.1. This License and the rights granted hereunder will terminate automatically
|
||||
if You fail to comply with terms herein and fail to cure such breach within
|
||||
30 days of becoming aware of the breach. All sublicenses to the Covered Code
|
||||
which are properly granted shall survive any termination of this License.
|
||||
Provisions which, by their nature, must remain in effect beyond the termination
|
||||
of this License shall survive.
|
||||
|
||||
8.2. If You initiate litigation by asserting a patent infringement claim (excluding
|
||||
declatory judgment actions) against Initial Developer or a Contributor (the
|
||||
Initial Developer or Contributor against whom You file such action is referred
|
||||
to as "Participant") alleging that:
|
||||
|
||||
a. such Participant's Contributor Version directly or indirectly infringes
|
||||
any patent, then any and all rights granted by such Participant to You under
|
||||
Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant
|
||||
terminate prospectively, unless if within 60 days after receipt of notice
|
||||
You either: (i) agree in writing to pay Participant a mutually agreeable reasonable
|
||||
royalty for Your past and future use of Modifications made by such Participant,
|
||||
or (ii) withdraw Your litigation claim with respect to the Contributor Version
|
||||
against such Participant. If within 60 days of notice, a reasonable royalty
|
||||
and payment arrangement are not mutually agreed upon in writing by the parties
|
||||
or the litigation claim is not withdrawn, the rights granted by Participant
|
||||
to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration
|
||||
of the 60 day notice period specified above.
|
||||
|
||||
b. any software, hardware, or device, other than such Participant's Contributor
|
||||
Version, directly or indirectly infringes any patent, then any rights granted
|
||||
to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective
|
||||
as of the date You first made, used, sold, distributed, or had made, Modifications
|
||||
made by that Participant.
|
||||
|
||||
8.3. If You assert a patent infringement claim against Participant alleging
|
||||
that such Participant's Contributor Version directly or indirectly infringes
|
||||
any patent where such claim is resolved (such as by license or settlement)
|
||||
prior to the initiation of patent infringement litigation, then the reasonable
|
||||
value of the licenses granted by such Participant under Sections 2.1 or 2.2
|
||||
shall be taken into account in determining the amount or value of any payment
|
||||
or license.
|
||||
|
||||
8.4. In the event of termination under Sections 8.1 or 8.2 above, all end
|
||||
user license agreements (excluding distributors and resellers) which have
|
||||
been validly granted by You or any distributor hereunder prior to termination
|
||||
shall survive termination.
|
||||
|
||||
9. LIMITATION OF LIABILITY
|
||||
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
|
||||
NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
|
||||
OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF
|
||||
ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL,
|
||||
OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES
|
||||
FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY
|
||||
AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE
|
||||
BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY
|
||||
SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH
|
||||
PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION.
|
||||
SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL
|
||||
OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO
|
||||
YOU.
|
||||
|
||||
10. U.S. government end users
|
||||
|
||||
The Covered Code is a "commercial item," as that term is defined in 48 C.F.R.
|
||||
2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial
|
||||
computer software documentation," as such terms are used in 48 C.F.R. 12.212
|
||||
(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through
|
||||
227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code
|
||||
with only those rights set forth herein.
|
||||
|
||||
11. Miscellaneous
|
||||
|
||||
This License represents the complete agreement concerning subject matter hereof.
|
||||
If any provision of this License is held to be unenforceable, such provision
|
||||
shall be reformed only to the extent necessary to make it enforceable. This
|
||||
License shall be governed by California law provisions (except to the extent
|
||||
applicable law, if any, provides otherwise), excluding its conflict-of-law
|
||||
provisions. With respect to disputes in which at least one party is a citizen
|
||||
of, or an entity chartered or registered to do business in the United States
|
||||
of America, any litigation relating to this License shall be subject to the
|
||||
jurisdiction of the Federal Courts of the Northern District of California,
|
||||
with venue lying in Santa Clara County, California, with the losing party
|
||||
responsible for costs, including without limitation, court costs and reasonable
|
||||
attorneys' fees and expenses. The application of the United Nations Convention
|
||||
on Contracts for the International Sale of Goods is expressly excluded. Any
|
||||
law or regulation which provides that the language of a contract shall be
|
||||
construed against the drafter shall not apply to this License.
|
||||
|
||||
12. Responsibility for claims
|
||||
|
||||
As between Initial Developer and the Contributors, each party is responsible
|
||||
for claims and damages arising, directly or indirectly, out of its utilization
|
||||
of rights under this License and You agree to work with Initial Developer
|
||||
and Contributors to distribute such responsibility on an equitable basis.
|
||||
Nothing herein is intended or shall be deemed to constitute any admission
|
||||
of liability.
|
||||
|
||||
13. Multiple-licensed code
|
||||
|
||||
Initial Developer may designate portions of the Covered Code as "Multiple-Licensed".
|
||||
"Multiple-Licensed" means that the Initial Developer permits you to utilize
|
||||
portions of the Covered Code under Your choice of the MPL or the alternative
|
||||
licenses, if any, specified by the Initial Developer in the file described
|
||||
in Exhibit A. Exhibit A - Mozilla Public License.
|
||||
|
||||
" The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (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.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
||||
the specific language governing rights and limitations under the License.
|
||||
|
||||
The Original Code is ______________________________________ .
|
||||
|
||||
The Initial Developer of the Original Code is ________________________ .
|
||||
|
||||
Portions created by ______________________ are Copyright (C) ______ . All
|
||||
Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________ .
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of the
|
||||
_____ license (the " [___] License"), in which case the provisions of [______]
|
||||
License are applicable instead of those above. If you wish to allow use of
|
||||
your version of this file only under the terms of the [____] License and not
|
||||
to allow others to use your version of this file under the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the [___] License. If you do not delete the
|
||||
provisions above, a recipient may use your version of this file under either
|
||||
the MPL or the [___] License. "
|
||||
|
||||
NOTE: The text of this Exhibit A may differ slightly from the text of the
|
||||
notices in the Source Code files of the Original Code. You should use the
|
||||
text of this Exhibit A rather than the text found in the Original Code Source
|
||||
Code for Your Modifications.
|
98
LICENSES/OFL-1.1.txt
Normal file
|
@ -0,0 +1,98 @@
|
|||
share/fonts/euphoriascript-regular.ttf
|
||||
Copyright (c) 2012, Sabrina Mariela Lopez (typesenses@live.com.ar),
|
||||
with Reserved Font Name "Euphoria Script".
|
||||
|
||||
share/fonts/LinuxLibertineDisplayRegular.ttf
|
||||
Copyright (c) 2003-2012, Philipp H. Poll,
|
||||
with Reserved Font Name "Linux Libertine Display".
|
||||
|
||||
Fonts licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
429
NEWS.md
Normal file
|
@ -0,0 +1,429 @@
|
|||
Inkscape 1.2-alpha
|
||||
|
||||
Release highlights
|
||||
|
||||
Released on 2022-02-05
|
||||
|
||||
Inkscape documents can now hold multiple pages, which are managed by the new Page tool
|
||||
Editable markers and dash patterns
|
||||
On-canvas alignment snapping
|
||||
Selectable origin for numerical scaling and moving
|
||||
All alignment options in a single dialog
|
||||
Gradient editing in the Fill and Stroke dialog
|
||||
Layers and objects dialog merged
|
||||
Snap settings refactored
|
||||
Configurable Tool bar, continuous icon scaling and many more new customization options
|
||||
Performance improvements for many parts of the interface and many different functions
|
||||
Many crash & bug fixes
|
||||
|
||||
|
||||
==================================================================
|
||||
=== ===
|
||||
=== The authoritative version of the changelog is at ===
|
||||
=== https://wiki.inkscape.org/wiki/index.php/Release_notes/1.2 ===
|
||||
=== ===
|
||||
==================================================================
|
||||
|
||||
General user interface
|
||||
Color palette
|
||||
|
||||
The overall look and options of the Color palette and the Swatches dialog got a massive overhaul (MR #2881):
|
||||
|
||||
When switching the color palette, the switcher shows a colorful preview line for each palette
|
||||
Between 1 and 5 palette rows that can be displayed all at once, or scrolled through vertically / using the arrow buttons
|
||||
Improved and reliably working settings for padding, tile size and tile shape / auto-stretching
|
||||
|
||||
Status Bar
|
||||
|
||||
The layer selection dropdown has been replaced by a layer indicator. Clicking on the indicator opens the new Layers and object dialog. This change improves Inkscape's performance for documents with many layers (MR #3648).
|
||||
The status bar contents is now configurable, see Customization section.
|
||||
|
||||
Tool bar
|
||||
|
||||
The tool bar width can now be resized and also wraps into multiple columns automatically if the screen height is too small for all icons to fit.
|
||||
You can customize which tools will be part of the tool bar in the preferences, see Customization section
|
||||
|
||||
Dithering
|
||||
|
||||
|
||||
Inkscape's gradients sometimes suffered from visible steps between colors, a phenomenon also known as gradient banding. Gradient banding is caused by the difference between how many different colors are available for the selected image file format and how many colors a human eye can discern. The effect becomes especially prominent when exporting a gradient that only spans a small color range to a high-resolution image. There just aren't enough colors available for a smooth transition.
|
||||
|
||||
Dithering softens these steps by scattering pixels of the different adjacent colors along the gradient, a little bit like a blur.
|
||||
|
||||
Dithering is now used both for Export of raster images as well as for displaying gradients on canvas(MR #3812). This functionality requires a special version of Cairo, our rendering engine. This means that it will only be available in the pre-packaged builds (for macOS, Windows and for the Linux AppImage).
|
||||
|
||||
For standard Linux package formats (deb, rpm, …), it depends upon your Linux distribution maintainers whether they will patch up the version of Cairo they want to distribute. We hope that this change will one day also be included in the official Cairo packages (Link to ongoing discussion).
|
||||
|
||||
Canvas
|
||||
Page
|
||||
|
||||
The page shadow now has a more realistic, blurry, fade-out look (MR #3128). [TODO: add a small screenshot]
|
||||
Settings for the page background / decoration were refactored, see section about Document properties dialog.
|
||||
Inkscape documents can now hold multiple pages! Learn more in the section about the new Page tool.
|
||||
|
||||
Snapping
|
||||
Snap bar is now Snap popover
|
||||
The snap bar has been replaced with a new 'popover'-type dialog, which will unfold when you click on the little arrow symbol in the top right corner, next to the snap symbol. Snap options now have always-visible descriptions, to make them easier to understand (MR #3323).
|
||||
|
||||
To activate / deactivate snapping globally, click on the snap symbol in the top right corner or press %.
|
||||
|
||||
The popover dialog has two different modes:
|
||||
|
||||
Simple: Only 3 options: snap bounding boxes and paths, activate / deactivate the new alignment snapping). This provides a simple preset for many use cases.
|
||||
Advanced: Gives the familiar granular control over every snapping option. Switching from 'Advanced' back to 'Simple' is not merely a visual change, but will reset snap settings to defaults.
|
||||
|
||||
|
||||
Snapping preferences globalized
|
||||
|
||||
Snap settings are no longer saved with the document, but are set globally for all documents in the preferences and in the snap popover dialog. The option for enabling snapping in new documents has been removed, as it no longer makes sense.
|
||||
|
||||
The options for snapping perpendicularly and tangentially to paths or guidelines have been moved from the document preferences to the snap popover to make them more discoverable. The other snap options from the document settings dialog were removed. [TODO: check whether this is still true at the time of release]
|
||||
|
||||
Alignment and Distribution snapping
|
||||
During Google Summer of Code 2021, GSOC student Parth Pant worked on adding on-canvas alignment and distribution snapping, with support of the mentors Thomas Holder and Marc Jeanmougin. As a result, three new modes of on-canvas snapping have been added. These new modes make aligning and distributing objects a very easy drag-and-drop operation (MR #3294)..
|
||||
|
||||
When on-canvas alignment is active, Inkscape will display horizontal or vertical temporary guidelines that indicate when the selected object can be aligned relative to another object on the canvas. It connects the points of the objects that are in alignment. With distribution snapping, multiple objects close by are taken into account, making it possible to align objects in a grid, with very little effort.
|
||||
|
||||
The temporary guidelines only appear while editing / moving objects on the canvas. Once a guide shows up, the movement of the selection is loosely constrained in the direction of the guide.
|
||||
|
||||
Alignment and Distribution snapping guidelines display the distance(s) between objects as a little label per default. This can be disabled from Edit → Preferences → Snapping: Show snap distance in case of alignment or distribution snap.
|
||||
|
||||
The 'Simple' mode of the snapping popover dialog allows you to simply activate or deactivate Alignment snapping. The 'Advanced' mode gives you additional control by allowing you to en-/disable:
|
||||
|
||||
Self snapping: Toggle alignment snapping for nodes in the same path while editing nodes or node handles
|
||||
Distribution snapping: Toggle distribution snapping
|
||||
|
||||
Tools
|
||||
Page tool
|
||||
|
||||
The new Page tool (lowest button in the tool bar) allows you to create multi-page Inkscape documents, and to import as well as export multi-page PDF documents. (MR #3486, MR #3785, MR #3821). It supports overlapping pages and pages of different sizes in a single document.
|
||||
|
||||
Tool usage:
|
||||
|
||||
To create a new page either:
|
||||
click-and-drag on the canvas
|
||||
or click on the 'Create a new page' button in the tool controls
|
||||
To delete a page, click on the page to select it, then click on the button Delete selected page or use the Del or Backspace keys.
|
||||
To move a page on the canvas, click-and-drag it to the desired new position. If the option to Move overlapping objects is active, this will also move any objects that touch the page along with it.
|
||||
To change a page's size:
|
||||
click on a page whose size you want to change to select it, then drag the square-shaped handle in its bottom right corner
|
||||
click on the page, and then choose one of the predefined sizes in the page size dropdown, or enter your size values for the 'Custom' option, by typing them into the field in the form of 10cm x 15cm
|
||||
To fit a page to:
|
||||
the size of the drawing: make sure to have no object selected before you switch to the Page tool. Then select a page by clicking on it, then click on the button 'Fit page to drawing or selection' in the tool controls
|
||||
a selected object: first select the object(s) with the selection tool, then switch to the Page tool, click on a page to select it, then press the the button 'Fit page to drawing or selection' in the tool controls
|
||||
To add a label to your page, select the page by clicking on it, then enter a name or label for it into the text field in the page tool's tool controls. Labels are always visible, no matter which tool is currently selected.
|
||||
To export a multi-page PDF file, use File → Save a copy … → PDF. This will automatically include all pages.
|
||||
To open or import a multi-page PDF or (pdf-based) AI file, use File → Open/Import → select file name → choose to import 'All' pages [Known issue: 'import' moves content of some pages to some far out place in the drawing]
|
||||
|
||||
Note: Multi-page SVG files are an Inkscape-specific concept. Web browsers will only display the first page of your document, which corresponds to the 'viewbox' area of the SVG file.
|
||||
Selector Tool
|
||||
|
||||
The tool now allows to set the origin of the selection for precise numerical positioning:
|
||||
|
||||
Click on one of the 9 object handles to select your desired origin for the scaling, or select and then drag the middle handle to the desired position
|
||||
A small red circle now indicates the new origin and the x/y position in the tool controls will adjust to the new origin.
|
||||
Now edit the x, y, width or height values to move and scale your object using the new origin (MR #2700)
|
||||
Text Tool
|
||||
|
||||
Kerning options are now symbolized by a button between the subscript and text direction selectors. Clicking on it will open a so-called pop-over, where all previously available options can be found. This change saves space in the Text tool's toolbar.
|
||||
Negative kerning values can now be as little as -1000 (previously -100), making them symmetrical to their positive counterparts (MR #2569, MR #3434)
|
||||
Padding: Text that is flowed into a shape and standard flowed text now have an additional square-shaped handle in the top right corner. Move the handle to adjust the text padding inside the frame (MR #2769) [Currently broken]
|
||||
Exclusion zones: Text can now flow around one or more movable objects:
|
||||
Select all object(s) (use only shapes and paths on the same object hierarchy level as the text; no groups / clones / images supported) and the text.
|
||||
Set the exclusion zone by going to Text → Set subtraction frames.
|
||||
Now you can move the exclusion objects around or edit their shape, and the text will adjust automatically.
|
||||
If you want to change the exclusion zones again at a later point, repeat the process with all objects that the text should flow around.
|
||||
|
||||
Background info: SVG 2.0 flowed text allows for shape-padding and shape-subtract attributes. shape-padding lets the text flow into a shape and leave some space between its edges and w where the text will start to flow. shape-subtract subtracts shapes with margin, so text can flow around other objects in the scene. These attributes were supported in Inkscape 1.0, but not exposed to the user. This version of Inkscape includes both an adjustable on-canvas knot for changing the padding as well as a Text menu item for setting text subtraction properties with a further knot to adjust it's margins.
|
||||
|
||||
[See merge request for animated gifs to add here]
|
||||
Path Operations
|
||||
|
||||
New Split path operation, available from Path → Split path:
|
||||
The function separates a path object that consists of multiple subpaths into a set of path objects that 'belong together'. This means that parts of a path that have holes in them are kept as whole objects. The function works by splitting up a path into non-intersecting bits, keeping intersecting bits together.
|
||||
Example: A path that consists of a word, like 'Inkscape' will be split into 8 parts, one for each letter. With the familiar 'Break apart' function, there would be 12 parts, because of the holes in the letters that would be split off as their own objects, too (MR #3738).[TODO: add animation]
|
||||
On-Canvas Boolean operations [TODO: fill in if merged, seems to have low probability, lots of work to be done] https://gitlab.com/inkscape/inkscape/-/merge_requests/3357 Osama Ahmad with mentors Thomas Holder, Marc Jeanmougin, Martin Owens
|
||||
|
||||
Dialogs
|
||||
General
|
||||
|
||||
A mini-menu (downward pointing arrow symbol) was added into the title bar of every multi-dialog panel (also called 'notebook'). You can use it to close the current tab, to undock it, or to close the whole panel. It also shows a list of available dialogs, sorted by purpose, allowing you to open them with a click ((MR #3728)
|
||||
Open dialogs are now less costly for performance, because they do not update when it's not needed (MR #3369), or when they are hidden (MR #3761)
|
||||
Docking zones now expand and flash slowly when a dialog is dragged close to them. This makes it easier to see where docking is possible (MR #3729)
|
||||
The text labels of docked dialogs are now more responsive to the width of dialog (MR #3627)
|
||||
|
||||
Align and distribute
|
||||
|
||||
The formerly separate Arrange dialog is now integrated with the Align and Distribute dialog. With its three tabs, more user-friendly names and some small visual tweaks, the dialog now holds everything that is needed for aligning, distributing and arranging objects in your drawing (MR #3382, MR #3667).
|
||||
The icons inside this dialog are now smaller.
|
||||
Node alignment and distribution is nolonger shown on first run Just when you use node editing tool
|
||||
Document Properties
|
||||
|
||||
The 'Snapping' tab was removed in favor of a global snapping preference, see Snapping section.
|
||||
|
||||
The first tab of the Document properties dialog was refactored thoroughly to make it easier to use:
|
||||
|
||||
It's now labelled 'Display' instead of 'Page'
|
||||
The long list of different document formats is now available from a dropdown
|
||||
There is a preview available of the page format and colors [TODO: needs screenshot]
|
||||
The page area(s) in a document can now have a different color than the underlying 'desk' area [TODO: mention in highlights?]
|
||||
The other options have been rearranged to look tidier
|
||||
The option to add margins to a document when resizing it is currently unavailable [TODO: hopefully get that back before the release]
|
||||
|
||||
(MR #3700).
|
||||
|
||||
(MR #3400, MR #3403)
|
||||
Fill and Stroke dialog
|
||||
Color selector
|
||||
|
||||
The more intuitive HSL mode (hue, saturation, lightness) is now the default mode of the color selector.
|
||||
All color selection modes (e.g. HSL, HSV, RGB, CMYK, color wheel, CMS) have been moved into drop-down menu, with icons. You can get the old, tabbed look back by disabling the option in Edit → Preferences → Interface: Use compact color selector mode switch (MR #3443).
|
||||
|
||||
Gradient Editor is back
|
||||
|
||||
A replacement for the gradient editor was added to the Fill and Stroke dialog (MR #2688, Bug ux#67).
|
||||
|
||||
This allows you to add, edit and delete gradient stops directly in the 'Fill and Stroke' dialog again:
|
||||
|
||||
to add a new stop, double click on the gradient preview
|
||||
to move a stop, click and drag it along the gradient preview or enter the stop offset numerically for more precision
|
||||
to remove a stop, click on it to select it, then press the Del or Backspace key
|
||||
The Gradient tool toolbar options `repeat mode`, `reverse gradient direction`, a gradient selection library and a list of all stops have been added here, too, so all the options pertaining to gradients are in easy reach.
|
||||
we added a preference to auto delete non used gradients. previously, inkscape deletes the non used gradients automatically. now, we made this optional so that, users can preserve those gradients in SVG file. https://gitlab.com/inkscape/inkscape/-/merge_requests/3897
|
||||
|
||||
Markers
|
||||
|
||||
The markers drop down list has been replaced by a little dialog that displays all available markers in a grid, and even allows you to edit the selected marker! This project was undertaken by GSOC student Rachana Podaralla with the mentors Michael Kowalski, Marc Jeanmougin and Martin Owens (MR #3394, MR #3420).
|
||||
|
||||
When clicking on the drop down for the start, middle or end markers, you will see the following:
|
||||
|
||||
a list of markers used in the current document at the top
|
||||
below that, a list of all available markers, which also contains some fun new markers!
|
||||
at the bottom, the 'Edit' section, with:
|
||||
a preview of how the marker will look
|
||||
some number fields to change the size of the marker (keep the lock on to scale proportionally)
|
||||
an option to scale the markers when the stroke width is changed
|
||||
options for changing the marker direction
|
||||
the option to change the marker's angle and to have that angle fixed
|
||||
marker offsetting options
|
||||
a button to enable editing of markers (rotate, scale, move) on the canvas
|
||||
|
||||
Custom Dash patterns
|
||||
|
||||
To choose your own dash pattern, select Custom in the dash pattern drop-down menu. This will make a new text field show up where you can add your new custom dash pattern by typing in numbers. Each number corresponds to the length of a dash or a gap. It always starts with a dash, and when it reaches the end, it will continue with the first number again, for the next gap or dash. So if you enter an even number of numbers, e.g. '1 1 4.5 4.5' the pattern will be 'dot - short gap - dash - long gap' and then repeat again, and for an uneven number of numbers, the pattern will be inverted when the first 'set' ends.
|
||||
|
||||
On the canvas, you can watch how your object changes when you change the custom dash pattern numbers.
|
||||
|
||||
[TODO: needs gif]
|
||||
Other small changes
|
||||
|
||||
Line cap and line join order buttons have been reordered, so they match vertically (MR #3402).
|
||||
Layers and Objects dialog
|
||||
|
||||
A new dialog was created that merges the functionality of the familiar 'Layers' and 'Objects' dialogs, with better performance (MR #2466, MR #3635, MR #2466, MR #3741, MR #3597, MR #3645).
|
||||
|
||||
It is available from both the 'Layers' and the 'Objects' menu and offers the following functionality:
|
||||
|
||||
a button to toggle between 'Layers' and 'Objects' view
|
||||
a list of all layers and objects in the drawing, featuring new icons for the different object types
|
||||
8 alternating default colors for layers and the objects in them:
|
||||
these colors are used for drawing the paths in the respective layers
|
||||
the colors can be set (in case they clash with your theme, or you cannot see the paths that you draw) in the file style.css in your Inkscape preferences directory
|
||||
layer and object colors can be customized for each layer/object on its own, by clicking on the vertical color bar at the end of each line
|
||||
tiny mask and scissor symbols indicate that a clip or mask is applied to an object
|
||||
object and layer names (label, not id) can be changed after a double-click on the current name
|
||||
icons for locking and hiding a layer/object light up when you hover over the layer's row:
|
||||
click to hide/unhide, lock/unlock, Shift+click to hide/lock other items [TODO: check whether 'on same level' would apply, doesn't work currently]
|
||||
holding Alt while hovering over an object in the dialog will highlight that object on canvas
|
||||
layers as well as objects can be multi-selected
|
||||
the context (right-click) menu for layers provides options to move, delete, rename the current layer, to lock/hide all/other/the current layers, to add a new layer and to convert a layer to a group
|
||||
the context menu for objects provides the same options as it would when you right-click on the object on canvas
|
||||
|
||||
Note:
|
||||
|
||||
the (partially hidden) setting for path colors in the preferences file is no longer respected. Adjust the style.css file as a workaround.
|
||||
the dialog no longer offers the options to change opacity, blur or blend mode. Use the Fill and Stroke dialog as a workaround.
|
||||
the type-forward search to filter for objects is no longer available. For objects, use the Search and Replace dialog as a workaround, for layers there is currently no replacement.
|
||||
|
||||
[TODO: needs a picture]
|
||||
Preferences
|
||||
|
||||
The preferences zoom ruler now respects your theme's look (MR #3450)
|
||||
An option to make Select same behave like Select all with respect to whether it selects objects only in the current layer or in all layers was added to Edit → Preferences → Behavior → Selecting (MR #2832)
|
||||
|
||||
SVG Font Editor
|
||||
|
||||
Bug fixes, small face lift and UX and performance improvements of the dialog (MR #3396, MR #3552, MR #3628)
|
||||
|
||||
To improve font editing experience new dialog simplifies glyph organization. When editing a font users can start by inserting new glyphs (glyph auto generation makes it easy - press '+' to add new glyphs). Next the user can select a glyph they want to edit and hit "Edit" button. Inkscape will then create a layer dedicated to this glyph, switch to it, and hide other layers. Thanks to this feature canvas can remain uncluttered, with only edited glyph visible.
|
||||
|
||||
SVG font dialog improvements:
|
||||
|
||||
speed improvements: Inkscape can now handle fonts with thousands of glyphs
|
||||
automatic glyph generation: adding new glyph creates new entry and populates unicode string based on the last defined glyph; pressing '+' creates glyphs with consecutive unicodes
|
||||
glyph management: glyph editing action creates glyph-specific layers to keep glyphs organized
|
||||
added grid glyph view which offers larger preview than a list
|
||||
|
||||
Swatches
|
||||
|
||||
The Swatches dialog uses the same improved settings as the color palette.
|
||||
Text and Font dialog
|
||||
|
||||
The dialog's width has been reduced, so it won't take up excessive amounts of space when docked (MR #3314).
|
||||
|
||||
|
||||
Trace Bitmap
|
||||
|
||||
The Trace Bitmap dialog received a few updates and some more polish (MR #3405):
|
||||
|
||||
The preview auto-updates more reliably and shows a better preview image.
|
||||
The preview location now adjusts to the dialog's format: if it is wider than tall, it moves to the right side, and if it is taller than wide, the preview appears at the bottom of the dialog.
|
||||
The number entry fields are now accompanied by draggable sliders.
|
||||
|
||||
Transform dialog
|
||||
|
||||
We cleaned up this dialog, reduced width and added explanation for metric transformations (MR #3381)
|
||||
|
||||
|
||||
Filters
|
||||
Live path effects
|
||||
|
||||
We added button in to Live Path Effect Dialog that will select parent path that is related to that path. It quality of life feature for Booleans, Copie, etc...
|
||||
|
||||
Select satelit.png
|
||||
|
||||
|
||||
We also fixed Problems that weare present when you copy/duplicate/ or stamped paths with LPE. This fixies big namber of bugs
|
||||
|
||||
TODO: needs more info
|
||||
|
||||
MR #3479
|
||||
Copy LPE
|
||||
|
||||
New Copies Lpe. This will allows you to quickly copy large number of objects non distractively. Has many advanced features like mirroring or transformations to create interesting grids and patterns and variations quickly.
|
||||
|
||||
Features:
|
||||
|
||||
Cloning of objects in rows an colloms
|
||||
Offset of rows and colloms
|
||||
16 Mirroring modes
|
||||
Linear Blendin of scale (4 mode+ mirroing)
|
||||
Linear Blendin of rotation (4 modes + mirroing)
|
||||
Custom Gap Controls
|
||||
Custom styling of clones
|
||||
|
||||
Copie LPE.gif
|
||||
|
||||
MR #3814
|
||||
Fixes
|
||||
|
||||
Perspective/envelope LPE now works on objects with 0 width or height . (edge cases for single line stroke) (MR #2712)
|
||||
|
||||
Import / Export
|
||||
|
||||
[TODO: not available yet, fill in when/if merged] Anshudhar Kumar Singh with mentors Michael Kowalski, Ted Gould, Tavmjong Bah https://gitlab.com/inkscape/inkscape/-/merge_requests/3825
|
||||
Customization / Theming
|
||||
General User Interface
|
||||
|
||||
The font size in the user interface can be adjusted at Edit → Preferences → Interface → Theming: Font scale (MR #3690)
|
||||
The +/- buttons for number entry fields are now smaller. If you prefer the old, wider buttons, they can be turned on again by disabling Preferences → Interface : Use narrow number entry boxes . (MR #3358)
|
||||
|
||||
Bars / Toolbars
|
||||
|
||||
You can now hide elements from the status bar (style indicator, layer indicator, mouse coordinates, canvas rotation) at Edit → Preferences → Interface: Status bar (MR #3445)
|
||||
You can now hide tools from the tool bar at Edit → Preferences → Interface → Toolbars: Toolbars (MR #3515)
|
||||
|
||||
Editing toolbox.gif [TODO: outdated, needs new recording]
|
||||
Cursors
|
||||
|
||||
The drop shadow is now optional for mouse cursors. You can turn it off in Edit → Preferences → Interface → Mouse cursors: Show drop shadow (MR #3352).
|
||||
|
||||
Icons
|
||||
|
||||
Multiple icons in the Multicolor icons set got small retouches and other improvements to readability or contrast, e.g. the green color is now a little brighter when using a dark theme, to improve contrast.
|
||||
Cursors and icons in Multicolor icon theme for the Bézier tool and the Calligraphy tool in the tool bar now use the same imagery [to be confirmed]
|
||||
Align and distribute icons are now smaller, some were redesigned to fit in to 16x16 grid.
|
||||
The icon sizes for the tool bar and the control / tool controls bar can now be adjusted smoothly on a continuous scale from from 100% to 300% in Edit → Preferences → Interface → Toolbars: Toolbox icon size / Control bar icon size. Changing the size no longer requires a restart.
|
||||
|
||||
Themes
|
||||
|
||||
A contrast slider was added for fine tuning the selected theme's colors at Edit → Preferences → Interface → Theming: Contrast (MR #906)
|
||||
|
||||
The contrast slider allows to fine-tune the theme's colors
|
||||
|
||||
|
||||
macOS-specific Changes
|
||||
|
||||
On macOS, enable all special menu items in the application menu and hide them from other menus (MR #3767)
|
||||
|
||||
|
||||
Windows-specific Changes
|
||||
|
||||
Modifier keys now work with pen input (Commit #46c12b)
|
||||
Extensions
|
||||
|
||||
Add option to limit output extension to save copy (MR #3600)
|
||||
Added Python app dirs dependency (MR #3568) [Is this a bug fix?]
|
||||
|
||||
Command line
|
||||
|
||||
'verbs' have been removed. All verbs are available as 'actions' now (see below for more context)(MR #3884, MR #3880, MR #3874).
|
||||
A new action for scaling by a factor has been added, it replaces the previous one, which is now called 'grow' (MR #3880).
|
||||
|
||||
Behind the curtains
|
||||
|
||||
Gio::Actions: The old 'verbs' were converted to 'actions'. This work was done to prepare for migrating to Gtk4. It also makes it possible to reach them all from the commands palette, to assign keyboard shortcuts them and to use them on the command line. A big part of this work was done by Google Summer of Code student SUSHANT A.A. with the mentors Alexander Valavanis, Ted Gould and Tavmjong Bah.
|
||||
|
||||
Symbols
|
||||
|
||||
Add support for x, y, width and height SVG2 attributes on <symbol>. Follows logic of <svg> element, which already supported these attributes (MR #3828)
|
||||
Notable bugfixes
|
||||
Crash fixes
|
||||
|
||||
Check knot still exists before updating (MR #717)
|
||||
Massive collection of crash fixes related to number of LPE (copy, stampe, duplicate) (MR #3479)
|
||||
Action after grouping 3D boxes crash Fix (MR #3698)
|
||||
Fix for crashing of inkscape while Quitting (MR #3681)
|
||||
Fix crash due to invalid or malformed direct-action string (MR #3663)
|
||||
Bezier curve tool Backspace crash (MR #3715)
|
||||
Fix crash scrolling across line height units (MR #3541)
|
||||
Fix adding a path effect to symbol causes crash (MR #3520)
|
||||
Fix drag-and-drop svgs, stops crash (MR #3710)
|
||||
Handle two items in spray tool's single path mode (MR #3470)
|
||||
Icon preview crash (MR #3439)
|
||||
Prevents crashing during 3D box import (MR #3592)
|
||||
Fill between Paths LPE crash on selecting (MR #3801)
|
||||
|
||||
|
||||
Other bug fixes
|
||||
|
||||
Inkscape no longer slows down when using grids and havign the Document Properties dialog open on macOS
|
||||
Calligraphy tool: use correct tool tilt direction (MR #3782, Bug #1692)
|
||||
duplicated gradeint does not get deleted (MR #3361)
|
||||
Last line in paragraph is not justified anymore (MR #3780)
|
||||
Fix #1034 - Recursively flatten css style when copying (MR #3656)
|
||||
new boolean operation algorithm (MR #3724)
|
||||
Respect mouse down before mouse move coordinates (WIN) (MR #3735)
|
||||
Remove mandatory break from end of paragraphs, added in Pango 1.49 (MR #3630)
|
||||
Fix: Subsequent font changes to words in the same textbox now apply (MR #3631)
|
||||
Fix numpad input for unimode in text tool (MR #3689)
|
||||
Restore refresh of units trackers (MR #3665)
|
||||
Fix find and replace if text has description, nested tspans (MR #3551)
|
||||
all canvas knots should have same size and be controlled form preferences (MR #3679, MR #3699)
|
||||
Fix multiline vertical text positioning in browsers (MR #3537)
|
||||
Stop changing line height when units change (MR #3544)
|
||||
Fix Clone Tiler menu item, action mismatch (MR #3650)
|
||||
fix: Cannot quit Inkscape on macOS Big Sur from welcome screen (MAC) (MR #2762)
|
||||
Fix: Position of flowed text no longer applies extra transforms on text (MR #3695)
|
||||
Fix default value for saturate in color matrix filter (MR #3626)
|
||||
nodes widget no longer appears on startup in align and distribute dialog (MR #3677)
|
||||
fixes #2621. Clicking on fill/stroke in the status bar now reopens the dialog if it is hidden (MR #3754)
|
||||
Fix KP_2,4,6,8 shortcuts for rect tool (MR #3773)
|
||||
Transform handle modifiers are now displayed on status bar (MR #3809)
|
||||
|
||||
Even more bug fixes
|
||||
|
||||
There were even more issues fixed than those listed above, but these probably only affect a small portion of users, or are relevant for development and packaging only.
|
||||
|
||||
For a complete list, visit our GitLab issue tracker and see the commit history.
|
||||
|
31
README.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
Inkscape. Draw Freely.
|
||||
======================
|
||||
|
||||
[https://inkscape.org/](https://inkscape.org/)
|
||||
|
||||
Inkscape is a Free and open source vector graphics editor. It offers a rich set
|
||||
of features and is widely used for both artistic and technical illustrations
|
||||
such as cartoons, clip art, logos, typography, diagramming and flowcharting.
|
||||
It uses vector graphics to allow for sharp printouts and renderings at
|
||||
unlimited resolution and is not bound to a fixed number of pixels like raster
|
||||
graphics. Inkscape uses the standardized SVG file format as its main format,
|
||||
which is supported by many other applications including web browsers.
|
||||
|
||||
SVG Features include basic shapes, paths, text, markers, clones,
|
||||
alpha blending, transforms, gradients, and grouping.
|
||||
In addition, Inkscape supports Creative Commons meta-data, node-editing,
|
||||
layers, complex path operations, text-on-path, and SVG XML editing.
|
||||
It also imports several formats like EPS, Postscript,
|
||||
JPEG, PNG, BMP, and TIFF and exports PNG as well as multiple vector-based
|
||||
formats.
|
||||
|
||||
Inkscape's main motivations are to provide the Open Source community
|
||||
with a fully W3C compliant XML, SVG, and CSS2 drawing tool emphasizing a
|
||||
lightweight core with powerful features added as extensions, and the
|
||||
establishment of a friendly, open, community-oriented development
|
||||
processes.
|
||||
|
||||
[](https://gitlab.com/inkscape/inkscape/-/commits/master)
|
||||
[](https://ci.appveyor.com/project/inkscape/inkscape)
|
||||
|
||||
For installation, please see: [INSTALL.md](INSTALL.md)
|
224
TRANSLATORS
Normal file
|
@ -0,0 +1,224 @@
|
|||
3ARRANO.com <3arrano@3arrano.com>, 2005.
|
||||
Abdelhak Sidi Ali Mebarek <abdelhakcpm@gmail.com>, 2019.
|
||||
Abdul Munif Hanafi <amunifhanafi@gmail.com>, 2019.
|
||||
Abhay Raj Singh <abhayonlyone@gmail.com>, 2019.
|
||||
Adam Belis <adambelis@launchpad>, 2019.
|
||||
Adib Taraben <theadib@gmail.com>, 2004-2014.
|
||||
Alan Monfort <alan.monfort@free.fr>, 2009-2010.
|
||||
Alastair McKinstry <mckinstry@computer.org>, 2000.
|
||||
Aleksandar Marković <alleksandar.markovic@gmail.com>, 2015.
|
||||
Aleksandar Urošević <urke@users.sourceforge.net>, 2004-2009.
|
||||
Alessio Frusciante <algol@firenze.linux.it>, 2002, 2003.
|
||||
Alexander Shopov <ash@contact.bg>, 2006.
|
||||
Alexandre Prokoudine <alexandre.prokoudine@gmail.com>, 2005, 2010-2014.
|
||||
Alexey Remizov <alexey@remizov.pp.ru>, 2004.
|
||||
Alfredo Rafael Vicente Boix <vicente_alf@gva.es>, 2019.
|
||||
Ali Ghanavatian <ghanvatian.ali@gmail.com>, 2010.
|
||||
Álvaro Lopes <alvieboy@alvie.com>, 2001, 2002.
|
||||
Amanpreet Singh Brar Alamwalia <apbrar@gmail.com>, 2005.
|
||||
Andreas Hyden <a.hyden@cyberpoint.se>, 2000.
|
||||
andrew <andrew@cubicledrone.com>, 2018.
|
||||
Andrius Ramanauskas <knutux@gmail.com>, 2006.
|
||||
Antônio Cláudio (LedStyle) <ledstyle@gmail.com>, 2006.
|
||||
Antonio Codazzi <f_sophia@libero.it>, 2006, 2007.
|
||||
Arkadiusz Dzięgiel <arkadiusz.dziegiel@glorpen.pl>, 2020.
|
||||
Arman Aksoy <armish@linux-sevenler.de>, 2003.
|
||||
Arpad Biro <biro_arpad@yahoo.com>, 2004, 2005.
|
||||
Artur Krzysztof Wróblewski <krypalkora1984@gmail.com>, 2010-2020.
|
||||
Asier Sarasua Garmendia <asier.sarasua@gmail.com>, 2018-2019.
|
||||
Benedikt Roth <Benedikt.Roth@gmx.net>, 2000.
|
||||
Benjamin Weis <benjamin.weis@gmx.com>, 2014.
|
||||
Benno Schulenberg <benno@vertaalt.nl>, 2008.
|
||||
Boštjan Špetič <igzebedze@cyberpipe.org>, 2004, 2005.
|
||||
Brisa Francesco <fbrisa@yahoo.it>, 2000.
|
||||
Bruce Cowan <bruce@bcowan.me.uk>, 2010.
|
||||
bulia byak <buliabyak@users.sf.net>, 2004.
|
||||
Cédric Gemy <radar.map35@free.fr>, 2006.
|
||||
Chris jia <Chrisjiasl@gmail.com>, 2006.
|
||||
Christian Meyer <chrisime@gnome.org>, 2000-2002.
|
||||
Christian Neumair <chris@gnome-de.org>, 2002, 2003.
|
||||
Christian Rose <menthos@menthos.com>, 2000-2003.
|
||||
Christophe Merlet (RedFox) <redfox@redfoxcenter.org>, 2000-2002.
|
||||
Clytie Siddall <clytie@riverland.net.au>, 2004-2008.
|
||||
Colin Marquardt <colin@marquardt-home.de>, 2004-2006.
|
||||
Cristian Secară <cristi@secarica.ro>, 2010-2023.
|
||||
ctenar <ctenar@fujitsu.k.utb.cz>, 2014.
|
||||
Daniel Díaz <yosoy@danieldiaz.org>, 2004.
|
||||
davi0145 <dm@kanute.dk>, 2020.
|
||||
David Planella <david.planella@ubuntu.com>, 2020.
|
||||
Didier Conchaudron <conchaudron@free.fr>, 2003.
|
||||
Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>, 2011-2024.
|
||||
Dmitry Astankov <mornie@basealt.ru>, 2019.
|
||||
Dongjun Wu <ziyawu@gmail.com>, 2020.
|
||||
Dorji Tashi <dorjee_doss@hotmail.com>, 2006.
|
||||
Duarte Farrajota Ramos <duarte.framos@gmail.com> 2024.
|
||||
Duarte Loreto <happyguy_pt@hotmail.com> 2002, 2003 (Maintainer).
|
||||
Elias Norberg <elno0959 at student.su.se>, 2009.
|
||||
Equipe de Tradução Inkscape Brasil <www.inkscapebrasil.org>, 2007.
|
||||
Fatih Demir <kabalak@gtranslator.org>, 2000.
|
||||
Felipe Corrêa da Silva Sanches <juca@members.fsf.org>, 2009.
|
||||
Firas Hanife <FirasHanife@gmail.com>, 2014-2024.
|
||||
Foppe Benedictus <foppe.benedictus@gmail.com>, 2007-2009.
|
||||
Francesc Dorca <f.dorca@filnet.es>, 2003. Traducció sodipodi.
|
||||
Francisco Javier F. Serrador <serrador@arrakis.es>, 2003.
|
||||
Francisco Xosé Vázquez Grandal <fxvazquez@arrakis.es>, 2001.
|
||||
Frederic Rodrigo <f.rodrigo free.fr>, 2004-2005.
|
||||
Ganesh Murmu <g_murmu_in@yahoo.com>, 2014.
|
||||
Ge'ez Frontier Foundation <locales@geez.org>, 2002.
|
||||
George Boukeas <boukeas@gmail.com>, 2011.
|
||||
Germano Gasparini <grigio60@gmail.com>, 2019.
|
||||
Gihun Ham <progh2@gmail.com>, 2019.
|
||||
Guillaume Audirac <guillaume.audirac@viregul.fr>, 2018-2020.
|
||||
Gyuris Gellért <bubu@ujevangelizacio.hu>, 2018-2024.
|
||||
Heiko Wöhrle <mail@heikowoehrle.de>, 2014.
|
||||
heskjestad <cato@heskjestad.xyz>, 2019.
|
||||
Hizkuntza Politikarako Sailburuordetza <hizkpol@ej-gv.es>, 2005.
|
||||
Hleb Valoshka <375gnu@gmail.com>, 2008-2009.
|
||||
Hoang Duy Tran <hoangduytran1960@googlemail.com>, 2022.
|
||||
hugo mendes <hugospm@al.insper.edu.br>, 2020.
|
||||
Igor Zhigunov <craysy@gmail.com>, 2017.
|
||||
Ilia Penev <lichopicho@gmail.com>, 2006.
|
||||
Imre Eilertsen <imreeil42@gmail.com>, 2024.
|
||||
Iñaki Larrañaga <dooteo@euskalgnu.org>, 2006.
|
||||
Iñigo Salvador Azurmendi <xalba@ni.eus>, 2023.
|
||||
Ivan Masár <helix84@centrum.sk>, 2006-2017.
|
||||
Ivan Řihošek <irihosek@seznam.cz>, 2014.
|
||||
Jānis Eisaks <jancs@dv.lv>, 2012-2014.
|
||||
Jeffrey Steve Borbón Sanabria <jeff_kerokid@yahoo.com>, 2005.
|
||||
Jeroen van der Vegt <jvdvegt@gmail.com>, 2003, 2005, 2008.
|
||||
Jesper Öqvist <jesper@llbit.se>, 2010, 2011.
|
||||
Jin-Hwan Jeong <yongdoria@gmail.com>, 2009.
|
||||
João Lima Neto <contato@joaolimaneto.com.br>, 2021, 2024.
|
||||
Joaquim Perez i Noguer <noguer@gmail.com>, 2008-2009.
|
||||
Jonathan Ernst <jernst@users.sourceforge.net>, 2006.
|
||||
Jon South <striker@lunar-linux.org>, 2006.
|
||||
Jordi Mas i Hernàndez <jmas@softcatala.org>, 2015.
|
||||
Jordi Mas <jmas@softcatala.org>, 2020-2024.
|
||||
Jörg Müller <jfm@ram-brand.de>, 2005.
|
||||
Jose Antonio Salgueiro Aquino <developer@telefonica.net>, 2003.
|
||||
José Esteban Quintanilla Ramírez <imagen.imperio@gmail.com>, 2019.
|
||||
Josef Vybiral <josef.vybiral@gmail.com>, 2005-2006.
|
||||
joshua simmons <jsimmons100@hotmail.co.uk>, 2019.
|
||||
Juarez Rudsatz <juarez@correio.com>, 2004.
|
||||
Junghee <daemul72@gmail.com>, 2024.
|
||||
Junichi Uekawa <dancer@debian.org>, 2002.
|
||||
Jurmey Rabgay <jur_gay@yahoo.com>, 2006.
|
||||
Kai Lahmann <kailahmann@01019freenet.de>, 2000.
|
||||
Karl Ove Hufthammer <karl@huftis.org>, 2004, 2005.
|
||||
KATSURAGAWA Naoki <naopon@private.email.ne.jp>, 2006.
|
||||
Keld Simonsen <keld@dkuug.dk>, 2000, 2001.
|
||||
Kenji Inoue <kenz@oct.zaq.ne.jp>, 2006-2007.
|
||||
Khandakar Mujahidul Islam <suzan@bengalinux.org>, 2006.
|
||||
Khoem Sokhem <khoemsokhem@khmeros.info>, 2011.
|
||||
Kingsley Turner <kingsley@maddogsbreakfast.com.au>, 2006.
|
||||
Kitae <bluetux@gmail.com>, 2006.
|
||||
Kjartan Maraas <kmaraas@gnome.org>, 2000-2002.
|
||||
Kris De Gussem <Kris.DeGussem@gmail.com>, 2008-2021.
|
||||
Lars Acou <lars.acou@gmail.com>, 2020-2021.
|
||||
Lauris Kaplinski <lauris@ariman.ee>, 2000.
|
||||
Leandro Regueiro <leandro.regueiro@gmail.com>, 2006-2008, 2010.
|
||||
Levent <mustafaleventfidanci@gmail.com>, 2019.
|
||||
libre ajans <libreajans@gmail.com>, 2019.
|
||||
Liu Xiaoqin <liuxqsmile@gmail.com>, 2008.
|
||||
Louni Kandulna <kandulna.louni@gmail.com>, 2014.
|
||||
Luca Bruno <luca.br@uno.it>, 2005.
|
||||
Lucas Vieites Fariña <lucas.vieites@gmail.com>, 2003-2024.
|
||||
Mahesh subedi <submanesh@hotmail.com>, 2006.
|
||||
Marc Jeanmougin <marc@jeanmougin.fr>, 2022-2024.
|
||||
Marcin Floryan <marcin.floryan+inkscape (at) gmail.com>, 2016.
|
||||
Marco Riva <oelimar@mail.com>, 2019-2023.
|
||||
Maren Hachmann <marenhachmann@yahoo.com>, 2015-2016, 2019, 2024.
|
||||
Marius Pârvu <iamlookingforthebathroom@yahoo.com>, 2024.
|
||||
Mariya Shikunova <mariia@basealt.ru>, 2024.
|
||||
Martin Srebotnjak, <miles@filmsi.net>, 2005, 2010, 2024.
|
||||
Masatake YAMATO <jet@gyve.org>, 2002.
|
||||
Masato Hashimoto <cabezon.hashimoto@gmail.com>, 2009-2014.
|
||||
Matiphas <matiphas _a_ free _point_ fr>, 2004-2006.
|
||||
Mattias Hultgren <mattias_hultgren@tele2.se>, 2005, 2006.
|
||||
Max Gaukler <development@maxgaukler.de>, 2018-2019.
|
||||
Maxim Dziumanenko <mvd@mylinux.com.ua>, 2004.
|
||||
Meskó Balázs <meskobalazs@gmail.com>, 2018.
|
||||
Mətin Əmirov <metin@karegen.com>, 2003.
|
||||
Michael Rack <miohna@freenet.de>, 2018.
|
||||
Michał Tomaszewski <mitom.tomaszewski@gmail.com>, 2019.
|
||||
Mikhail novosyolov <mikhailnov@dumalogiya.ru>, 2018.
|
||||
Milo Ivir <mail@milotype.de>, 2019-2024.
|
||||
Mitsuru Oka <oka326@parkcity.ne.jp>, 2002.
|
||||
ModProg <dev@modprog.de>, 2021.
|
||||
Mornie <giku@live.jp>, 2019.
|
||||
Morphix User <pchitrakar@gmail.com>, 2006.
|
||||
Mufit Eribol <meribol@ere.com.tr>, 2000.
|
||||
Muhammad Bashir Al-Noimi <mhdbnoimi@gmail.com>, 2008.
|
||||
Myckel Habets <myckel@sdf.lonestar.org>, 2008.
|
||||
Nasreen <nasreen_saifee@hotmail.com>, 2013.
|
||||
Nguyen Dinh Trung <nguyendinhtrung141@gmail.com>, 2007, 2008.
|
||||
Nicolas Dufour <nicoduf@yahoo.fr>, 2008-2016.
|
||||
Olexandr Pylypchuk <lxlalexlxl@ukr.net>, 2019.
|
||||
Oscar Gustafsson <oscar.gustafsson@gmail.com>, 2018.
|
||||
Paresh prabhu <goa.paresh@Gmail.com>, 2013.
|
||||
Patrick Storz <eduard.braun2@gmx.de>, 2015-2019.
|
||||
Pawan Chitrakar <pchitrakar@gmail.com>, 2006.
|
||||
PBS <pbs3141@gmail.com>, 2023.
|
||||
Peter Bojtos <ptr@ulx.hu>, 2015.
|
||||
Przemysław Loesch <p_loesch@poczta.onet.pl>, 2005.
|
||||
Quico Llach <quico@softcatala.org>, 2000. Traducció sodipodi.
|
||||
Raymond Ostertag <raymond@linuxgraphic.org>, 2002, 2003.
|
||||
Riku Leino <tsoots@gmail.com>, 2006-2011.
|
||||
Rong "Mantle" Bao <mantlejonse@foxmail.com>, 2021.
|
||||
Rune Rønde Laursen <runerl@skjoldhoej.dk>, 2006.
|
||||
Ruud Steltenpool <svg@steltenpower.com>, 2006.
|
||||
saiba akhtar <sa2438@live.mdx.ac.uk>, 2019.
|
||||
Sangeeta <sk@gma.co>, 2011.
|
||||
Savitha <savithasprasad@yahoo.co.in>, 2013.
|
||||
scootergrisen <scootergrisen@gmail.com>, 2020.
|
||||
Sensu Iun <cieltero@gmail.com>, 2019.
|
||||
Serdar Soytetir <sendirom@gmail.com>, 2005.
|
||||
shivaken <shivaken@owls-nest.net>, 2004.
|
||||
Shyam Krishna Bal <shyamkrishna_bal@yahoo.com>, 2006.
|
||||
sileGit <mf.sile@gmail.com>, 2018.
|
||||
Simos Xenitellis <simos@hellug.gr>, 2001, 2011.
|
||||
Spyros Blanas <cid_e@users.sourceforge.net>, 2006, 2011.
|
||||
Stefan Graubner <pflaumenmus92@gmx.net>, 2005.
|
||||
Stephan Paternotte <stephan@paternottes.net>, 2024.
|
||||
Stoyan Dimitrov <stoyan@gmx.com>, 2020.
|
||||
Supranee Thirawatthanasuk <supranee@opentle.org>, 2006.
|
||||
Sushma Joshi <shshma_joshi8266@vsnl.net>, 2011.
|
||||
Sveinn í Felli <sv1@fellsnet.is>, 2014-2024.
|
||||
Sylvain Chiron <chironsylvain@orange.fr>, 2016.
|
||||
Takeshi Aihana <aihana@muc.biglobe.ne.jp>, 2000, 2001.
|
||||
Tatiana Coelho <tcoelho83@gmail.com>, 2019.
|
||||
Theodoros Asimakopoulos <theoasima@gmail.com>, 2024.
|
||||
Theppitak Karoonboonyanan <thep@linux.thai.net>, 2006.
|
||||
Thiago Pimentel <thiago.merces@gmail.com>, 2006.
|
||||
Tim Sheridan <tghs@tghs.net>, 2007-2016.
|
||||
tobiczech <tobiczech@gmail.com>, 2019.
|
||||
Tomáš Marný <tomik.marny@gmail.com>, 2020-2023.
|
||||
Toshifumi Sato <sato@centrosystem.com>, 2005.
|
||||
Uwe Schöler <oss@oss-marketplace.com>, 2006-2014.
|
||||
Valek Filippov <frob@df.ru>, 2000, 2003.
|
||||
Valessio Soares de Brito <contato@valessiobrito.info>, 2009.
|
||||
Victor Dachev <vdachev@gmail.com>, 2006.
|
||||
Victor Westmann <victor.westmann@gmail.com>, 2011, 2014, 2019, 2020.
|
||||
Viktar Haurylavets <vhaurylavets@gmail.com>, 2023-2024.
|
||||
Ville Pätsi, 2013.
|
||||
Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>, 2003.
|
||||
Vinícius Lopes <viniciusiluminador@gmail.com>, 2017.
|
||||
Vital Khilko <dojlid@mova.org>, 2003.
|
||||
Vitaly Lipatov <lav@altlinux.ru>, 2002, 2004.
|
||||
vonHalenbach <vonHalenbach@users.sourceforge.net>, 2005.
|
||||
vrundeshw <vrundeshw@cdac.in>, 2012.
|
||||
Waluyo Adi Siswanto <was.uthm@gmail.com>, 2011.
|
||||
Wang Li <charlesw1234@163.com>, 2002.
|
||||
Wei-Lun Chao <william.chao@ossii.com.tw>, 2006.
|
||||
Wolfram Strempfer <wolfram@strempfer.de>, 2006.
|
||||
Xavier Conde Rueda <xavi.conde@gmail.com>, 2004-2008.
|
||||
Yaron Shahrabani <sh.yaron@gmail.com>, 2009, 2024.
|
||||
Yuka Kachi <8232155-ykachi@users.noreply.gitlab.com>, 2021-2024.
|
||||
Yukihiro Nakai <nakai@gnome.gr.jp>, 2000, 2003.
|
||||
Yuri Beznos <zhiz0id@gmail.com>, 2006.
|
||||
Yuri Chornoivan <yurchor@ukr.net>, 2007-2024.
|
||||
Yuri Syrota <rasta@renome.rovno.ua>, 2000.
|
||||
Yves Guillou <yvesguillou@users.sourceforge.net>, 2004.
|
||||
Zdenko Podobný <zdpo@mailbox.sk>, 2003, 2004.
|
||||
驿窗 <classenu@163.com>, 2020-2024.
|
||||
Wen-Wei Kao <ltlnx@disroot.org>, 2023-2024.
|
113
_clang-format
Normal file
|
@ -0,0 +1,113 @@
|
|||
---
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
Language: Cpp
|
||||
# BasedOnStyle: LLVM
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveMacros: false
|
||||
AlignConsecutiveAssignments: false
|
||||
AlignConsecutiveDeclarations: false
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllArgumentsOnNextLine: false
|
||||
AllowAllConstructorInitializersOnNextLine: false
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLambdasOnASingleLine: All
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: true
|
||||
AfterControlStatement: false
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: false
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: false
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBraces: Custom
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakInheritanceList: BeforeComma
|
||||
BreakStringLiterals: true
|
||||
ColumnLimit: 120
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: true
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
DerivePointerBinding: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
FixNamespaceComments: true
|
||||
ForEachMacros: []
|
||||
IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
- Regex: '^<'
|
||||
Priority: 1
|
||||
- Regex: '^"'
|
||||
Priority: 2
|
||||
IncludeIsMainRegex: '(-test)?$'
|
||||
IndentCaseLabels: true
|
||||
IndentPPDirectives: None
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: false
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: None
|
||||
NamespaceMacros: []
|
||||
PenaltyBreakAssignment: 2
|
||||
PenaltyBreakBeforeFirstCallParameter: 19
|
||||
PenaltyBreakComment: 60
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyBreakTemplateDeclaration: 10
|
||||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Right
|
||||
ReflowComments: true
|
||||
SortIncludes: true
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: true
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeCpp11BracedList: false
|
||||
SpaceBeforeCtorInitializerColon: true
|
||||
SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: c++20
|
||||
StatementMacros: []
|
||||
TypenameMacros: []
|
||||
TabWidth: 4
|
||||
UseCRLF: false
|
||||
UseTab: Never
|
||||
...
|
||||
|
29
astylerc
Normal file
|
@ -0,0 +1,29 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Inkscape coding style options for the Artistic Style formatter
|
||||
# See http://astyle.sourceforge.net/
|
||||
# See https://inkscape.org/de/develop/coding-style/
|
||||
|
||||
# Opening braces broken from functions only
|
||||
--style=stroustrup
|
||||
|
||||
# Four-space indent; convert stray tabs
|
||||
--indent=spaces=4
|
||||
--convert-tabs
|
||||
|
||||
# Spaces around binary operators and before control statement parens
|
||||
--unpad-paren
|
||||
--pad-oper
|
||||
--pad-header
|
||||
|
||||
# Attach pointers and references to variable names
|
||||
--align-pointer=name
|
||||
--align-reference=name
|
||||
|
||||
# Add brackets to single-statement blocks
|
||||
--add-brackets
|
||||
|
||||
# Misc. options
|
||||
--indent-preprocessor
|
||||
--indent-col1-comments
|
||||
|
2444
buildtools/Doxyfile
Normal file
2445
buildtools/Doxyfile-extensions
Normal file
153
buildtools/check_license_headers.py
Executable file
|
@ -0,0 +1,153 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# License checker: test that files have a proper SPDX license header.
|
||||
# Author: Max Gaukler <development@maxgaukler.de>
|
||||
# Licensed under GPL version 2 or any later version, read the file "COPYING" for more information.
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
license = {}
|
||||
hasSPDX = {}
|
||||
|
||||
if sys.version_info[0] < 3:
|
||||
from io import open
|
||||
|
||||
# do not check licenses in these subdirectories:
|
||||
# TODO: have look at the libraries' licenses
|
||||
IGNORE_PATHS = [
|
||||
".git*",
|
||||
"CMakeScripts",
|
||||
"LICENSES",
|
||||
"ccache",
|
||||
"build*",
|
||||
"doc",
|
||||
"inst",
|
||||
"man",
|
||||
"packaging",
|
||||
"patches",
|
||||
"po",
|
||||
"share",
|
||||
"src/3rdparty",
|
||||
"testfiles/cli_tests/testcases",
|
||||
"testfiles/data/example-FEXTRA-FCOMMENT.gz",
|
||||
"testfiles/rendering_tests/fonts/LICENSES",
|
||||
]
|
||||
|
||||
# do not check licenses for the following file endings:
|
||||
IGNORE_FILE_ENDINGS = [
|
||||
".bmp",
|
||||
".bz2",
|
||||
".dia",
|
||||
".dll",
|
||||
".eps",
|
||||
".kate-swp",
|
||||
".ods",
|
||||
".otf",
|
||||
".pdf",
|
||||
".png",
|
||||
".po",
|
||||
".ps",
|
||||
".rc",
|
||||
".svg",
|
||||
".ttf",
|
||||
".xml",
|
||||
".xpm",
|
||||
"AUTHORS",
|
||||
"BUILD_YOUR_OWN",
|
||||
"CONTRIBUTING.md",
|
||||
"COPYING",
|
||||
"HACKING",
|
||||
"INSTALL.md",
|
||||
"NEWS",
|
||||
"NEWS.md",
|
||||
"Notes.txt",
|
||||
"README",
|
||||
"README.md",
|
||||
"TRANSLATORS",
|
||||
"todo.txt",
|
||||
]
|
||||
|
||||
# permitted licenses (MUST BE compatible with licensing the compiled product as GPL3).
|
||||
# IF YOU CHANGE THIS, also update the list of licenses in COPYING!
|
||||
PERMITTED_LICENSES = [
|
||||
"GPL-2.0-or-later",
|
||||
"GPL-3.0-or-later",
|
||||
"LGPL-2.1-or-later",
|
||||
"LGPL-3.0-or-later",
|
||||
"CC0",
|
||||
]
|
||||
|
||||
|
||||
class LicenseCheckError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
if not os.path.exists("./LICENSES"):
|
||||
print("this script must be run from the main git directory", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def files_all():
|
||||
ignore_paths = [('./' + p) for p in IGNORE_PATHS]
|
||||
ignore_paths += [(p + '/*') for p in ignore_paths]
|
||||
|
||||
for root, dirs, files in os.walk("."):
|
||||
for name in files:
|
||||
p = os.path.join(root,name)
|
||||
if any(p.endswith(i) for i in IGNORE_FILE_ENDINGS):
|
||||
continue
|
||||
if any(fnmatch.fnmatch(p, i) for i in ignore_paths):
|
||||
continue
|
||||
if subprocess.call(["git", "check-ignore", "-q", "--", p]) == 0:
|
||||
# file is in .gitignore
|
||||
continue
|
||||
yield p
|
||||
|
||||
|
||||
def main(filenames):
|
||||
for p in filenames:
|
||||
license[p] = None
|
||||
hasSPDX[p] = False
|
||||
|
||||
|
||||
try:
|
||||
for line in open(p, encoding='utf-8').readlines():
|
||||
line = line.strip(' */#<>-!;\r\n')
|
||||
if line.startswith("SPDX-License-Identifier: "):
|
||||
hasSPDX[p] = True
|
||||
license[p] = line[len("SPDX-License-Identifier: "):]
|
||||
except IOError:
|
||||
print("Cannot open {} (ignored)".format(p), file=sys.stderr)
|
||||
continue
|
||||
except UnicodeDecodeError:
|
||||
raise LicenseCheckError(
|
||||
"Encoding of {} is damaged (should be UTF8), cannot check license"
|
||||
.format(p))
|
||||
|
||||
if not hasSPDX[p]:
|
||||
raise LicenseCheckError(
|
||||
"File '{}' does not have a SPDX-License-Identifier: header.\n"
|
||||
"Please have a look at the coding style: https://inkscape.org/en/develop/coding-style/\n"
|
||||
"This is required so that we can make sure all files have compatible licenses."
|
||||
.format(p))
|
||||
|
||||
if not any(lic in PERMITTED_LICENSES for lic in license[p].split(' OR ')):
|
||||
raise LicenseCheckError(
|
||||
"File '{}' has an incompatible or unknown license '{}' in the SPDX-License-Identifier header.\n"
|
||||
"Allowed licenses are:\n"
|
||||
"{}".format(p, license[p], "\n".join(PERMITTED_LICENSES)))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
main(files_all())
|
||||
except LicenseCheckError as e:
|
||||
print(e, file=sys.stderr)
|
||||
print("If you think this message is wrong, edit buildtools/check_license_header.py", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# vi:sw=4:expandtab:
|
21
buildtools/ci-index.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!-- This is the entry point for CI-generated stuff from the source code.
|
||||
Currently, scan-build analysis and doxygen documentation.
|
||||
Feel free to make this page as beautiful as you want.
|
||||
Mc -->
|
||||
<head>
|
||||
<title>Inkscape CI</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Welcome to the Inkscape CI homepage</h1>
|
||||
<p> This page lists the elements generated from the source code and regularly updated.</p>
|
||||
<p>LAST UPDATE: <span style="font-weight:bold;">%DATE%</span> </p>
|
||||
<ul>
|
||||
<li><a href="doxygen/">Doxygen documentation for Inkscape source code</a></li>
|
||||
<li><a href="doxygen-extensions/">Doxygen documentation for extensions</a></li>
|
||||
<li><a href="scan-build/">scan-build static analysis report</a></li>
|
||||
</ul>
|
||||
<p><span style="font-size:small;position:absolute;bottom:0;right:0;"><a href="https://gitlab.com/inkscape/inkscape/-/blob/master/buildtools/ci-index.html">Feel free to improve this file.</a></span></p>
|
||||
</body>
|
||||
</html>
|
33
buildtools/clangtidy-helper.sh
Normal file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
##
|
||||
## usage: clangtidy-helper [list of cpp files]
|
||||
##
|
||||
## Without arguments, run for all source files.
|
||||
##
|
||||
|
||||
set -e
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
|
||||
export CC="ccache clang"
|
||||
export CXX="ccache clang++"
|
||||
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
||||
|
||||
#remove 3rdparty files from analysis, and only do those in inkscape_base target
|
||||
jq -c '.[] | select( .file | contains("3rdparty") | not) | select(.command | contains("CMakeFiles/inkscape_base")) ' compile_commands.json | jq -s > compile_commands2.json
|
||||
#treat 3rdparty code as system headers
|
||||
sed -e 's/-I\([^ ]*\)\/src\/3rdparty/-isystem \1\/src\/3rdparty/g' compile_commands2.json > compile_commands.json && rm compile_commands2.json
|
||||
|
||||
run-clang-tidy -fix "$@" > /dev/null || true
|
||||
|
||||
# revert all fixes in protected directories
|
||||
git checkout --recurse-submodules ../src/3rdparty
|
||||
|
||||
git diff | tee clang_tidy_diff
|
||||
|
||||
if [[ -s clang_tidy_diff ]]; then
|
||||
exit 1
|
||||
fi
|
198
buildtools/media-check-icons.py
Executable file
|
@ -0,0 +1,198 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Icon checker: test that icon themes contain all needed icons
|
||||
# Author: Martin Owens <doctormo@geek-2.com>
|
||||
# Licensed under GPL version 2 or any later version, read the file "COPYING" for more information.
|
||||
|
||||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
THEME_PATH = os.path.join('.', 'share', 'icons')
|
||||
IGNORE_THEMES = [
|
||||
'application',
|
||||
'Tango',
|
||||
]
|
||||
IGNORE_ICONS = [
|
||||
# These are hard coded as symbolic in the gtk source code
|
||||
'list-add-symbolic.svg',
|
||||
'list-add.svg',
|
||||
'list-remove-symbolic.svg',
|
||||
'list-remove.svg',
|
||||
'accessories-character-map.svg',
|
||||
'accessories-character-map-symbolic.svg',
|
||||
'applications-graphics.svg',
|
||||
'applications-graphics-symbolic.svg',
|
||||
'dialog-information.svg',
|
||||
'dialog-information-symbolic.svg',
|
||||
'edit-find.svg',
|
||||
'edit-find-symbolic.svg',
|
||||
'folder-open.svg',
|
||||
'folder-open-symbolic.svg',
|
||||
'tools-check-spelling.svg',
|
||||
'tools-check-spelling-symbolic.svg',
|
||||
'dialog-warning.svg',
|
||||
'dialog-warning-symbolic.svg',
|
||||
'format-justify-center.svg',
|
||||
'format-justify-center-symbolic.svg',
|
||||
'format-justify-fill.svg',
|
||||
'format-justify-fill-symbolic.svg',
|
||||
'format-justify-left.svg',
|
||||
'format-justify-left-symbolic.svg',
|
||||
'format-justify-right.svg',
|
||||
'format-justify-right-symbolic.svg',
|
||||
'dialog-warning-symbolic.svg',
|
||||
'edit-clear.svg',
|
||||
'edit-clear-symbolic.svg',
|
||||
'view-refresh-symbolic.svg',
|
||||
'view-refresh.svg',
|
||||
# Those are illustrations rather than icons
|
||||
'feBlend-icon-symbolic.svg',
|
||||
'feColorMatrix-icon-symbolic.svg',
|
||||
'feComponentTransfer-icon-symbolic.svg',
|
||||
'feComposite-icon-symbolic.svg',
|
||||
'feConvolveMatrix-icon-symbolic.svg',
|
||||
'feDiffuseLighting-icon-symbolic.svg',
|
||||
'feDisplacementMap-icon-symbolic.svg',
|
||||
'feFlood-icon-symbolic.svg',
|
||||
'feGaussianBlur-icon-symbolic.svg',
|
||||
'feImage-icon-symbolic.svg',
|
||||
'feMerge-icon-symbolic.svg',
|
||||
'feMorphology-icon-symbolic.svg',
|
||||
'feOffset-icon-symbolic.svg',
|
||||
'feSpecularLighting-icon-symbolic.svg',
|
||||
'feTile-icon-symbolic.svg',
|
||||
'feTurbulence-icon-symbolic.svg',
|
||||
'feBlend-icon.svg',
|
||||
'feColorMatrix-icon.svg',
|
||||
'feComponentTransfer-icon.svg',
|
||||
'feComposite-icon.svg',
|
||||
'feConvolveMatrix-icon.svg',
|
||||
'feDiffuseLighting-icon.svg',
|
||||
'feDisplacementMap-icon.svg',
|
||||
'feFlood-icon.svg',
|
||||
'feGaussianBlur-icon.svg',
|
||||
'feImage-icon.svg',
|
||||
'feMerge-icon.svg',
|
||||
'feMorphology-icon.svg',
|
||||
'feOffset-icon.svg',
|
||||
'feSpecularLighting-icon.svg',
|
||||
'feTile-icon.svg',
|
||||
'feTurbulence-icon.svg',
|
||||
]
|
||||
|
||||
NO_PROBLEM,\
|
||||
BAD_SYMBOLIC_NAME,\
|
||||
BAD_SCALABLE_NAME,\
|
||||
MISSING_FROM,\
|
||||
ONLY_FOUND_IN = range(5)
|
||||
|
||||
def icon_themes():
|
||||
for name in os.listdir(THEME_PATH):
|
||||
filename = os.path.join(THEME_PATH, name)
|
||||
if name in IGNORE_THEMES or not os.path.isdir(filename):
|
||||
continue
|
||||
yield name, filename
|
||||
|
||||
def find_errors_in(themes):
|
||||
data = defaultdict(set)
|
||||
bad_symbolic = []
|
||||
bad_scalable = []
|
||||
names = set()
|
||||
|
||||
for name, path in themes:
|
||||
for root, dirs, files in os.walk(path):
|
||||
orig = root
|
||||
root = root[len(path)+1:]
|
||||
if '/' not in root:
|
||||
continue
|
||||
(kind, root) = root.split('/', 1)
|
||||
if kind not in ("symbolic", "scalable"):
|
||||
continue # Not testing cursors, maybe later.
|
||||
|
||||
theme_name = f"{name}-{kind}"
|
||||
names.add(theme_name)
|
||||
for fname in files:
|
||||
if fname in IGNORE_ICONS:
|
||||
continue
|
||||
if not fname.endswith('.svg'):
|
||||
continue
|
||||
|
||||
if kind == "symbolic":
|
||||
if not fname.endswith('-symbolic.svg'):
|
||||
bad_symbolic.append(os.path.join(orig, fname))
|
||||
continue
|
||||
else:
|
||||
# Make filenames consistant for comparison
|
||||
fname = fname.replace('-symbolic.svg', '.svg')
|
||||
elif kind == "scalable" and fname.endswith('-symbolic.svg'):
|
||||
bad_scalable.append(os.path.join(orig, fname))
|
||||
continue
|
||||
|
||||
filename = os.path.join(root, fname)
|
||||
data[filename].add(theme_name)
|
||||
|
||||
if bad_symbolic:
|
||||
yield BAD_SYMBOLIC_NAME, bad_symbolic
|
||||
if bad_scalable:
|
||||
yield BAD_SCALABLE_NAME, bad_scalable
|
||||
|
||||
only_found_in = defaultdict(list)
|
||||
missing_from = defaultdict(list)
|
||||
|
||||
for filename in sorted(data):
|
||||
datum = data[filename]
|
||||
if datum == names:
|
||||
continue
|
||||
elif len(datum) == 1:
|
||||
only_found_in[list(datum)[0]].append(filename)
|
||||
continue
|
||||
for theme in (names - datum):
|
||||
missing_from[theme].append(filename)
|
||||
|
||||
if only_found_in:
|
||||
yield ONLY_FOUND_IN, only_found_in
|
||||
if missing_from:
|
||||
yield MISSING_FROM, missing_from
|
||||
|
||||
if __name__ == '__main__':
|
||||
errors = list(find_errors_in(icon_themes()))
|
||||
if errors:
|
||||
count = 0
|
||||
for error, themes in errors:
|
||||
if isinstance(themes, list):
|
||||
count += len(themes)
|
||||
elif isinstance(themes, dict):
|
||||
count += sum([len(v) for v in themes.values()])
|
||||
sys.stderr.write(f" == {count} problems found in icon themes! == \n\n")
|
||||
for error, themes in errors:
|
||||
if error is BAD_SCALABLE_NAME:
|
||||
sys.stderr.write(f"Scalable themes should not have symbolic icons in them (They end with -symbolic.svg so won't be used):\n")
|
||||
for name in themes:
|
||||
sys.stderr.write(f" - {name}\n")
|
||||
sys.stderr.write("\n")
|
||||
elif error is BAD_SYMBOLIC_NAME:
|
||||
sys.stderr.write(f"Symbolic themes should only have symbolic icons in them (They don't end with -symbolic.svg so can't be used):\n")
|
||||
for name in themes:
|
||||
sys.stderr.write(f" - {name}\n")
|
||||
sys.stderr.write("\n")
|
||||
elif error is MISSING_FROM:
|
||||
for theme in themes:
|
||||
sys.stderr.write(f"Icons missing from {theme}:\n")
|
||||
for name in themes[theme]:
|
||||
sys.stderr.write(f" - {name}\n")
|
||||
sys.stderr.write("\n")
|
||||
elif error is ONLY_FOUND_IN:
|
||||
for theme in themes:
|
||||
sys.stderr.write(f"Icons only found in {theme}:\n")
|
||||
for name in themes[theme]:
|
||||
sys.stderr.write(f" + {name}\n")
|
||||
sys.stderr.write("\n")
|
||||
else:
|
||||
pass
|
||||
|
||||
sys.exit(5)
|
||||
|
||||
# vi:sw=4:expandtab:
|
139
buildtools/media-check-keys.py
Executable file
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Keys checker:
|
||||
#
|
||||
# * Are there bad xml elements / parsing
|
||||
# * Does it contain non-key xml elements
|
||||
# * Does the keys file reference something unknown
|
||||
# * Does it repeat empty actions
|
||||
# * Are there keys formatted as verbs
|
||||
# * Are some of the keys missing
|
||||
# * Does it include the default xml
|
||||
#
|
||||
# Author: Martin Owens <doctormo@geek-2.com>
|
||||
# Licensed under GPL version 2 or any later version, read the file "COPYING" for more information.
|
||||
|
||||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
from lxml import etree
|
||||
|
||||
KEYS_PATH = os.path.join('.', 'share', 'keys')
|
||||
DEFAULT = 'inkscape.xml'
|
||||
|
||||
IGNORE_MISSING_KEYS = ['org.']
|
||||
|
||||
class Keys:
|
||||
"""Open and parse a keys xml file"""
|
||||
def __init__(self, filename):
|
||||
self.filename = filename
|
||||
self.mods = set()
|
||||
self.keys = set()
|
||||
self.olds = set()
|
||||
self.ticks = defaultdict(list)
|
||||
self.errors = False
|
||||
self.parse(etree.parse(filename))
|
||||
|
||||
def parse(self, doc):
|
||||
"""Parse the document into checkable concerns"""
|
||||
for child in doc.getroot().getchildren():
|
||||
try:
|
||||
if child.tag == "modifier":
|
||||
name = child.attrib['action']
|
||||
self.mods.add(name)
|
||||
self.ticks[name].append(child.attrib.get('modifiers'))
|
||||
elif child.tag == "bind":
|
||||
name = child.attrib['gaction']
|
||||
self.keys.add(name)
|
||||
self.ticks[name].append(child.attrib.get('keys'))
|
||||
if 'key' in child.attrib or 'modifiers' in child.attrib:
|
||||
self.olds.add(name)
|
||||
elif child.tag == "{http://www.w3.org/2001/XInclude}include":
|
||||
self.parse_include(child.attrib['href'])
|
||||
elif isinstance(child.tag, str):
|
||||
sys.stderr.write(f"Unrecognised tag in keys file {child.tag}\n")
|
||||
self.errors = True
|
||||
except KeyError as err:
|
||||
sys.stderr.write(f"Missing attribute g/action in {self.filename}\n")
|
||||
self.errors = True
|
||||
|
||||
def parse_include(self, file):
|
||||
"""Parse in the linked file"""
|
||||
other = Keys(os.path.join(os.path.dirname(self.filename), file))
|
||||
self.mods = self.mods.union(other.mods)
|
||||
self.keys = self.keys.union(other.keys)
|
||||
|
||||
@classmethod
|
||||
def others(cls):
|
||||
"""Load all non default keys"""
|
||||
for name in os.listdir(KEYS_PATH):
|
||||
filename = os.path.join(KEYS_PATH, name)
|
||||
if name == DEFAULT:
|
||||
continue
|
||||
if not os.path.isfile(filename) or not filename.endswith('.xml'):
|
||||
continue
|
||||
yield name, cls(filename)
|
||||
|
||||
@classmethod
|
||||
def default(cls):
|
||||
"""Load default keys"""
|
||||
return cls(os.path.join(KEYS_PATH, DEFAULT))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.stderr.write("\n\n==== CHECKING KEYBOARD FILES ====\n\n")
|
||||
data = defaultdict(set)
|
||||
names = set()
|
||||
|
||||
errors = False
|
||||
that = Keys.default()
|
||||
|
||||
|
||||
for name, this in Keys.others():
|
||||
sys.stderr.write(f"Checking '{name}'\n")
|
||||
|
||||
for old in this.olds:
|
||||
sys.stderr.write(f" ! Old formatted key binding {old}\n")
|
||||
|
||||
add = []
|
||||
if '-' not in sys.argv:
|
||||
for key in this.keys ^ (that.keys & this.keys):
|
||||
sys.stderr.write(f" + Unknown extra key {key}\n")
|
||||
errors = True
|
||||
|
||||
for mod in this.mods ^ (that.mods & this.mods):
|
||||
sys.stderr.write(f" + Unknown extra modifier {mod}\n")
|
||||
errors = True
|
||||
|
||||
for tick, lst in this.ticks.items():
|
||||
if len(lst) > 1 and None in lst:
|
||||
sys.stderr.write(f" * Multiple empty references to {tick}\n")
|
||||
|
||||
if '+' not in sys.argv:
|
||||
for key in that.keys ^ (that.keys & this.keys):
|
||||
if [ig for ig in IGNORE_MISSING_KEYS if key.startswith(ig)]:
|
||||
continue
|
||||
if '-' in sys.argv:
|
||||
add.append(f"<bind gaction=\"{key}\" />")
|
||||
else:
|
||||
sys.stderr.write(f" - Missing key {key}\n")
|
||||
errors = True
|
||||
|
||||
for mod in that.mods ^ (that.mods & this.mods):
|
||||
if '-' in sys.argv:
|
||||
add.append(f"<modifier action=\"{mod}\" />")
|
||||
else:
|
||||
sys.stderr.write(f" - Missing modifier {mod}\n")
|
||||
errors = True
|
||||
|
||||
for item in sorted(add):
|
||||
sys.stderr.write(f" {item}\n")
|
||||
sys.stderr.write("\n")
|
||||
|
||||
if errors:
|
||||
sys.exit(5)
|
||||
|
||||
# vi:sw=4:expandtab:
|
174
buildtools/msys2checkdeps.py
Normal file
|
@ -0,0 +1,174 @@
|
|||
#!/usr/bin/env python
|
||||
# ------------------------------------------------------------------------------------------------------------------
|
||||
# list or check dependencies for binary distributions based on MSYS2 (requires the package mingw-w64-ntldd)
|
||||
#
|
||||
# run './msys2checkdeps.py --help' for usage information
|
||||
# ------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
SYSTEMROOT = os.environ['SYSTEMROOT']
|
||||
|
||||
|
||||
class Dependency:
|
||||
def __init__(self):
|
||||
self.location = None
|
||||
self.dependents = set()
|
||||
|
||||
|
||||
def warning(msg):
|
||||
print("Warning: " + msg, file=sys.stderr)
|
||||
|
||||
|
||||
def error(msg):
|
||||
print("Error: " + msg, file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
|
||||
def call_ntldd(filename):
|
||||
try:
|
||||
output = subprocess.check_output(['ntldd', '-R', filename], stderr=subprocess.STDOUT)
|
||||
except subprocess.CalledProcessError as e:
|
||||
error("'ntldd' failed with '" + str(e) + "'")
|
||||
except WindowsError as e:
|
||||
error("Calling 'ntldd' failed with '" + str(e) + "' (have you installed 'mingw-w64-ntldd-git'?)")
|
||||
except Exception as e:
|
||||
error("Calling 'ntldd' failed with '" + str(e) + "'")
|
||||
return output.decode('utf-8')
|
||||
|
||||
|
||||
def get_dependencies(filename, deps):
|
||||
raw_list = call_ntldd(filename)
|
||||
|
||||
skip_indent = float('Inf')
|
||||
parents = {}
|
||||
parents[0] = os.path.basename(filename)
|
||||
for line in raw_list.splitlines():
|
||||
line = line[1:]
|
||||
indent = len(line) - len(line.lstrip())
|
||||
if indent > skip_indent:
|
||||
continue
|
||||
else:
|
||||
skip_indent = float('Inf')
|
||||
|
||||
# if the dependency is not found in the working directory ntldd tries to find it on the search path
|
||||
# which is indicated by the string '=>' followed by the determined location or 'not found'
|
||||
if ('=>' in line):
|
||||
(lib, location) = line.lstrip().split(' => ')
|
||||
if location == 'not found':
|
||||
location = None
|
||||
else:
|
||||
location = location.rsplit('(', 1)[0].strip()
|
||||
else:
|
||||
lib = line.rsplit('(', 1)[0].strip()
|
||||
location = os.getcwd()
|
||||
|
||||
parents[indent+1] = lib
|
||||
|
||||
# we don't care about Microsoft libraries and their dependencies
|
||||
if location and SYSTEMROOT in location:
|
||||
skip_indent = indent
|
||||
continue
|
||||
|
||||
if lib not in deps:
|
||||
deps[lib] = Dependency()
|
||||
deps[lib].location = location
|
||||
deps[lib].dependents.add(parents[indent])
|
||||
return deps
|
||||
|
||||
|
||||
def collect_dependencies(path):
|
||||
# collect dependencies
|
||||
# - each key in 'deps' will be the filename of a dependency
|
||||
# - the corresponding value is an instance of class Dependency (containing full path and dependents)
|
||||
deps = {}
|
||||
if os.path.isfile(path):
|
||||
deps = get_dependencies(path, deps)
|
||||
elif os.path.isdir(path):
|
||||
extensions = ['.exe', '.pyd', '.dll']
|
||||
exclusions = ['distutils/command/wininst'] # python
|
||||
for base, dirs, files in os.walk(path):
|
||||
for f in files:
|
||||
filepath = os.path.join(base, f)
|
||||
(_, ext) = os.path.splitext(f)
|
||||
if (ext.lower() not in extensions) or any(exclusion in filepath for exclusion in exclusions):
|
||||
continue
|
||||
deps = get_dependencies(filepath, deps)
|
||||
return deps
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
modes = ['list', 'list-compact', 'check', 'check-missing', 'check-unused']
|
||||
|
||||
# parse arguments from command line
|
||||
parser = argparse.ArgumentParser(description="List or check dependencies for binary distributions based on MSYS2.\n"
|
||||
"(requires the package 'mingw-w64-ntldd')",
|
||||
formatter_class=argparse.RawTextHelpFormatter)
|
||||
parser.add_argument('mode', metavar="MODE", choices=modes,
|
||||
help="One of the following:\n"
|
||||
" list - list dependencies in human-readable form\n"
|
||||
" with full path and list of dependents\n"
|
||||
" list-compact - list dependencies in compact form (as a plain list of filenames)\n"
|
||||
" check - check for missing or unused dependencies (see below for details)\n"
|
||||
" check-missing - check if all required dependencies are present in PATH\n"
|
||||
" exits with error code 2 if missing dependencies are found\n"
|
||||
" and prints the list to stderr\n"
|
||||
" check-unused - check if any of the libraries in the root of PATH are unused\n"
|
||||
" and prints the list to stderr")
|
||||
parser.add_argument('path', metavar='PATH',
|
||||
help="full or relative path to a single file or a directory to work on\n"
|
||||
"(directories will be checked recursively)")
|
||||
parser.add_argument('-w', '--working-directory', metavar="DIR",
|
||||
help="Use custom working directory (instead of 'dirname PATH')")
|
||||
args = parser.parse_args()
|
||||
|
||||
# check if path exists
|
||||
args.path = os.path.abspath(args.path)
|
||||
if not os.path.exists(args.path):
|
||||
error("Can't find file/folder '" + args.path + "'")
|
||||
|
||||
# get root and set it as working directory (unless one is explicitly specified)
|
||||
if args.working_directory:
|
||||
root = os.path.abspath(args.working_directory)
|
||||
elif os.path.isdir(args.path):
|
||||
root = args.path
|
||||
elif os.path.isfile(args.path):
|
||||
root = os.path.dirname(args.path)
|
||||
os.chdir(root)
|
||||
|
||||
# get dependencies for path recursively
|
||||
deps = collect_dependencies(args.path)
|
||||
|
||||
# print output / prepare exit code
|
||||
exit_code = 0
|
||||
for dep in sorted(deps):
|
||||
location = deps[dep].location
|
||||
dependents = deps[dep].dependents
|
||||
|
||||
if args.mode == 'list':
|
||||
if (location is None):
|
||||
location = '---MISSING---'
|
||||
print(dep + " - " + location + " (" + ", ".join(dependents) + ")")
|
||||
elif args.mode == 'list-compact':
|
||||
print(dep)
|
||||
elif args.mode in ['check', 'check-missing']:
|
||||
if ((location is None) or (root not in os.path.abspath(location))):
|
||||
warning("Missing dependency " + dep + " (" + ", ".join(dependents) + ")")
|
||||
exit_code = 2
|
||||
|
||||
# check for unused libraries
|
||||
if args.mode in ['check', 'check-unused']:
|
||||
installed_libs = [file for file in os.listdir(root) if file.endswith(".dll")]
|
||||
deps_lower = [dep.lower() for dep in deps]
|
||||
top_level_libs = [lib for lib in installed_libs if lib.lower() not in deps_lower]
|
||||
for top_level_lib in top_level_libs:
|
||||
warning("Unused dependency " + top_level_lib)
|
||||
|
||||
exit(exit_code)
|
141
buildtools/msys2installdeps.sh
Normal file
|
@ -0,0 +1,141 @@
|
|||
#!/usr/bin/env bash
|
||||
# -------------------------------------------------------------------------------
|
||||
# This script installs all dependencies required for building Inkscape with MSYS2.
|
||||
#
|
||||
# See https://wiki.inkscape.org/wiki/Compiling_Inkscape_on_Windows_with_MSYS2 for
|
||||
# detailed instructions.
|
||||
#
|
||||
# The following instructions assume you are building for the standard x86_64 processor architecture,
|
||||
# which means that you use the UCRT64 variant of msys2.
|
||||
# Else, replace UCRT64 with the appropriate variant for your architecture.
|
||||
#
|
||||
# To run this script, execute it once on an UCRT64 shell, i.e.
|
||||
# - use the "MSYS2 UCRT64" shortcut in the start menu or
|
||||
# - run "ucrt64.exe" in MSYS2's installation folder
|
||||
#
|
||||
# MSYS2 and installed libraries can be updated later by executing
|
||||
# pacman -Syu
|
||||
# -------------------------------------------------------------------------------
|
||||
|
||||
# select if you want to build 32-bit (i686), 64-bit (x86_64), or both
|
||||
case "$MSYSTEM" in
|
||||
MINGW32)
|
||||
ARCH=mingw-w64-i686
|
||||
;;
|
||||
MINGW64)
|
||||
ARCH=mingw-w64-x86_64
|
||||
;;
|
||||
UCRT64)
|
||||
ARCH=mingw-w64-ucrt-x86_64
|
||||
;;
|
||||
CLANG64)
|
||||
ARCH=mingw-w64-clang-x86_64
|
||||
;;
|
||||
CLANGARM64)
|
||||
ARCH=mingw-w64-clang-aarch64
|
||||
;;
|
||||
*)
|
||||
ARCH={mingw-w64-i686,mingw-w64-x86_64}
|
||||
;;
|
||||
esac
|
||||
|
||||
# set default options for invoking pacman (in CI this variable is already set globally)
|
||||
if [ -z $CI ]; then
|
||||
PACMAN_OPTIONS="--needed --noconfirm"
|
||||
fi
|
||||
|
||||
# sync package databases
|
||||
pacman -Sy
|
||||
|
||||
# install basic development system, compiler toolchain and build tools
|
||||
eval pacman -S $PACMAN_OPTIONS \
|
||||
git \
|
||||
base-devel \
|
||||
$ARCH-toolchain \
|
||||
$ARCH-autotools \
|
||||
$ARCH-cmake \
|
||||
$ARCH-meson \
|
||||
$ARCH-ninja \
|
||||
$ARCH-ccache
|
||||
|
||||
# install Inkscape dependencies (required)
|
||||
eval pacman -S $PACMAN_OPTIONS \
|
||||
$ARCH-double-conversion \
|
||||
$ARCH-gc \
|
||||
$ARCH-gsl \
|
||||
$ARCH-libxslt \
|
||||
$ARCH-boost \
|
||||
$ARCH-gtk3 \
|
||||
$ARCH-gtk-doc \
|
||||
$ARCH-gtkmm3
|
||||
|
||||
# install Inkscape dependencies (optional)
|
||||
eval pacman -S $PACMAN_OPTIONS \
|
||||
$ARCH-poppler \
|
||||
$ARCH-potrace \
|
||||
$ARCH-libcdr \
|
||||
$ARCH-libvisio \
|
||||
$ARCH-libwpg \
|
||||
$ARCH-aspell \
|
||||
$ARCH-aspell-en \
|
||||
$ARCH-gspell \
|
||||
$ARCH-gtksourceview4 \
|
||||
$ARCH-graphicsmagick \
|
||||
$ARCH-libjxl
|
||||
|
||||
# install Python and modules used by Inkscape
|
||||
eval pacman -S $PACMAN_OPTIONS \
|
||||
$ARCH-python \
|
||||
$ARCH-python-pip \
|
||||
$ARCH-python-lxml \
|
||||
$ARCH-python-numpy \
|
||||
$ARCH-python-cssselect \
|
||||
$ARCH-python-webencodings \
|
||||
$ARCH-python-tinycss2 \
|
||||
$ARCH-python-pillow \
|
||||
$ARCH-python-six \
|
||||
$ARCH-python-gobject \
|
||||
$ARCH-python-pyserial \
|
||||
$ARCH-python-coverage \
|
||||
$ARCH-python-packaging \
|
||||
$ARCH-python-zstandard \
|
||||
$ARCH-scour
|
||||
|
||||
# install modules needed by extensions manager and clipart importer
|
||||
eval pacman -S $PACMAN_OPTIONS \
|
||||
$ARCH-python-appdirs \
|
||||
$ARCH-python-beautifulsoup4 \
|
||||
$ARCH-python-filelock \
|
||||
$ARCH-python-msgpack \
|
||||
$ARCH-python-lockfile \
|
||||
$ARCH-python-cachecontrol \
|
||||
$ARCH-python-idna \
|
||||
$ARCH-python-urllib3 \
|
||||
$ARCH-python-chardet \
|
||||
$ARCH-python-certifi \
|
||||
$ARCH-python-requests
|
||||
|
||||
# install Python modules not provided as MSYS2/MinGW packages
|
||||
PACKAGES=""
|
||||
for arch in $(eval echo $ARCH); do
|
||||
case ${arch} in
|
||||
mingw-w64-i686)
|
||||
#/mingw32/bin/pip3 install --upgrade ${PACKAGES}
|
||||
;;
|
||||
mingw-w64-x86_64)
|
||||
#/mingw64/bin/pip3 install --upgrade ${PACKAGES}
|
||||
;;
|
||||
mingw-w64-ucrt-x86_64)
|
||||
#/ucrt64/bin/pip3 install --upgrade ${PACKAGES}
|
||||
;;
|
||||
mingw-w64-clang-x86_64)
|
||||
#/clang64/bin/pip3 install --upgrade ${PACKAGES}
|
||||
;;
|
||||
mingw-w64-clang-aarch64)
|
||||
#/clangarm64/bin/pip3 install --upgrade ${PACKAGES}
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
echo "Done :-)"
|
29
buildtools/post_translation_statistics.sh
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z ${CI_MERGE_REQUEST_ID-} ]; then
|
||||
echo "Not from a MR"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -z ${API_TOKEN-} ]; then
|
||||
echo "No token"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CHANGES=$(git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --name-only ../po/*.po | cut -d '/' -f 2 | cut -d '.' -f1)
|
||||
NCHANGES=$(git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --name-only ../po/*.po | wc -l)
|
||||
if [ $NCHANGES -eq 0 ]; then
|
||||
echo "No translation changes"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
./update_po_files.sh
|
||||
|
||||
tmpfile=$(mktemp)
|
||||
|
||||
echo '```' > ${tmpfile}
|
||||
./language_statistics.sh $CHANGES | tee -a ${tmpfile}
|
||||
echo '```' >> ${tmpfile}
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: $API_TOKEN" -G https://gitlab.com/api/v4/projects/${CI_MERGE_REQUEST_PROJECT_ID}/merge_requests/${CI_MERGE_REQUEST_IID}/notes --data-urlencode body@${tmpfile}
|
105
config.h.cmake
Normal file
|
@ -0,0 +1,105 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#ifndef _CONFIG_H_
|
||||
#define _CONFIG_H_
|
||||
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "${PROJECT_NAME}"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "${PROJECT_NAME}"
|
||||
|
||||
/* Translation domain used */
|
||||
#define GETTEXT_PACKAGE "${PROJECT_NAME}"
|
||||
|
||||
/* Localization directory */
|
||||
#define PACKAGE_LOCALE_DIR "${PACKAGE_LOCALE_DIR}"
|
||||
#define PACKAGE_LOCALE_DIR_ABSOLUTE "${CMAKE_INSTALL_PREFIX}/${PACKAGE_LOCALE_DIR}"
|
||||
|
||||
/* Base data directory -- only path-prefix.h should use it! */
|
||||
#define INKSCAPE_DATADIR "${INKSCAPE_DATADIR}"
|
||||
|
||||
|
||||
/* Use AutoPackage? */
|
||||
#cmakedefine ENABLE_BINRELOC 1
|
||||
|
||||
/* always defined to indicate that i18n is enabled */
|
||||
#cmakedefine ENABLE_NLS 1
|
||||
|
||||
/* Whether the Cairo PDF backend is available */
|
||||
#cmakedefine PANGO_ENABLE_ENGINE 1
|
||||
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#cmakedefine HAVE_IEEEFP_H 1
|
||||
|
||||
/* Define to 1 if you have the `mallinfo2' function. */
|
||||
#cmakedefine HAVE_MALLINFO2 1
|
||||
|
||||
/* Define to 1 if you have the `mallinfo' function. */
|
||||
#cmakedefine HAVE_MALLINFO 1
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#cmakedefine HAVE_MALLOC_H 1
|
||||
|
||||
/* Use OpenMP (via cmake) */
|
||||
#cmakedefine HAVE_OPENMP 1
|
||||
|
||||
/* Use libpoppler for direct PDF import */
|
||||
#cmakedefine HAVE_POPPLER 1
|
||||
|
||||
/* Use libpoppler-cairo for rendering PDF preview */
|
||||
#cmakedefine HAVE_POPPLER_CAIRO 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#cmakedefine HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if `fordblks' is member of `struct mallinfo'. */
|
||||
#cmakedefine HAVE_STRUCT_MALLINFO_FORDBLKS 1
|
||||
|
||||
/* Define to 1 if `fsmblks' is member of `struct mallinfo'. */
|
||||
#cmakedefine HAVE_STRUCT_MALLINFO_FSMBLKS 1
|
||||
|
||||
/* Define to 1 if `hblkhd' is member of `struct mallinfo'. */
|
||||
#cmakedefine HAVE_STRUCT_MALLINFO_HBLKHD 1
|
||||
|
||||
/* Define to 1 if `uordblks' is member of `struct mallinfo'. */
|
||||
#cmakedefine HAVE_STRUCT_MALLINFO_UORDBLKS
|
||||
|
||||
/* Define to 1 if `usmblks' is member of `struct mallinfo'. */
|
||||
#cmakedefine HAVE_STRUCT_MALLINFO_USMBLKS 1
|
||||
|
||||
/* enable gtk spelling widget and built-in spellchecker */
|
||||
#cmakedefine WITH_GSPELL 1
|
||||
|
||||
/* enable gtk syntax coloring text view widget */
|
||||
#cmakedefine WITH_GSOURCEVIEW 1
|
||||
|
||||
/* Image/Graphics Magick++ support for bitmap effects */
|
||||
#cmakedefine WITH_MAGICK 1
|
||||
|
||||
/* Use libjpeg */
|
||||
#cmakedefine HAVE_JPEG 1
|
||||
|
||||
/* Build in libcdr */
|
||||
#cmakedefine WITH_LIBCDR 1
|
||||
|
||||
/* Build in libvisio */
|
||||
#cmakedefine WITH_LIBVISIO 1
|
||||
|
||||
/* Build in libwpg */
|
||||
#cmakedefine WITH_LIBWPG 1
|
||||
|
||||
/* Build in libreadline */
|
||||
#cmakedefine WITH_GNU_READLINE 1
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
#cmakedefine WORDS_BIGENDIAN 1
|
||||
|
||||
/* Enable LPE Tool? */
|
||||
#cmakedefine WITH_LPETOOL 0
|
||||
|
||||
/* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */
|
||||
#cmakedefine LPE_ENABLE_TEST_EFFECTS 0
|
||||
|
||||
#endif /* _CONFIG_H_ */
|
21282
doc/ChangeLog_archive.txt
Normal file
23
doc/LOGGING.txt
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
Logging Inkscape events can be done by switching on DEBUG logs:
|
||||
|
||||
Set the environment variables:
|
||||
|
||||
INKSCAPE_DEBUG_LOG=filename.xml
|
||||
INKSCAPE_DEBUG_FILTER=Comma,List,Options
|
||||
|
||||
Filter Options:
|
||||
CORE - Logs core events
|
||||
XML - Same xml changes in the log
|
||||
SPOBJECT - Logs events from sp-object
|
||||
DOCUMENT - Logs document events
|
||||
REFCOUNT - Will track refs, may cause crashes
|
||||
EXTENSION - Track extension events (where available)
|
||||
FINALIZERS - Unknown
|
||||
INTERACTION - User events
|
||||
CONFIGURATION - Configuration entries as they're read
|
||||
OTHER - None
|
||||
|
||||
The log will output an xml file useful for machine reading.
|
||||
|
||||
|
230
doc/NewAppArchitecture/01-title.svg
Normal file
After Width: | Height: | Size: 27 KiB |
517
doc/NewAppArchitecture/02-outline.svg
Normal file
|
@ -0,0 +1,517 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg586"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
width="640pt"
|
||||
height="480pt"
|
||||
sodipodi:docname="02-outline.svg"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop2571" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;"
|
||||
offset="0.58504134"
|
||||
id="stop2572" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2573" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1218"
|
||||
id="linearGradient1322"
|
||||
x1="77.599106"
|
||||
y1="20.687101"
|
||||
x2="53.030737"
|
||||
y2="114.57422"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1318"
|
||||
x1="59.491886"
|
||||
y1="30.563196"
|
||||
x2="33.266399"
|
||||
y2="58.199241"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1307"
|
||||
x1="0.45376351"
|
||||
y1="1.9347328"
|
||||
x2="0.41986585"
|
||||
y2="0.12454049"
|
||||
gradientTransform="scale(1.004208,0.995809)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1306"
|
||||
x1="0.45009527"
|
||||
y1="1.9667202"
|
||||
x2="0.41548476"
|
||||
y2="0.11846013"
|
||||
gradientTransform="scale(1.006361,0.993679)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1305"
|
||||
x1="0.45839140"
|
||||
y1="1.8676205"
|
||||
x2="0.42603236"
|
||||
y2="0.13959341"
|
||||
gradientTransform="scale(1.002016,0.997989)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1277"
|
||||
x1="11.967844"
|
||||
y1="119.11808"
|
||||
x2="51.413385"
|
||||
y2="80.482086"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1272"
|
||||
x1="118.66497"
|
||||
y1="45.70058"
|
||||
x2="90.28563"
|
||||
y2="62.493129"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1270" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1323"
|
||||
id="linearGradient1231"
|
||||
x1="17.696665"
|
||||
y1="120.74315"
|
||||
x2="94.698939"
|
||||
y2="120.74315"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1221"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1219" />
|
||||
<stop
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;"
|
||||
offset="0.073255815"
|
||||
id="stop1321" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.65260679"
|
||||
id="stop1320" />
|
||||
<stop
|
||||
style="stop-color:#fff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop1220" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop1223" />
|
||||
<stop
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;"
|
||||
offset="0.50000000"
|
||||
id="stop1722" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1224" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1274" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1275" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;"
|
||||
offset="0.00000000"
|
||||
id="stop1324" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1325" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient829"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
r="248.40302"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;"
|
||||
offset="0.00000000"
|
||||
id="stop827" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;"
|
||||
offset="0.36585677"
|
||||
id="stop830" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;"
|
||||
offset="0.47107276"
|
||||
id="stop847" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop828" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient909"
|
||||
id="linearGradient907"
|
||||
x1="0.50000000"
|
||||
y1="0.66667551"
|
||||
x2="0.50000000"
|
||||
y2="-1.7333326" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="0.00000000"
|
||||
id="stop910" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;"
|
||||
offset="1.0000000"
|
||||
id="stop913" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1309"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2570"
|
||||
id="linearGradient1308"
|
||||
x1="-0.0028122679"
|
||||
y1="1365.4825"
|
||||
x2="64.30938"
|
||||
y2="1365.4825"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient36619"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36621"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36623"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36625"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36627"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36629"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36631"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.05"
|
||||
inkscape:cx="320"
|
||||
inkscape:cy="240"
|
||||
inkscape:window-width="764"
|
||||
inkscape:window-height="687"
|
||||
inkscape:window-x="432"
|
||||
inkscape:window-y="41"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0">
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="0,464"
|
||||
id="guide607"
|
||||
inkscape:locked="false" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Background"
|
||||
style="display:block">
|
||||
<rect
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
|
||||
id="topbluebox"
|
||||
width="853.33331"
|
||||
height="120"
|
||||
x="0"
|
||||
y="1.8947807e-15" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
id="path654"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1085"
|
||||
transform="translate(689.36448,-10.40511)">
|
||||
<g
|
||||
id="g1394"
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
|
||||
<ellipse
|
||||
id="path898"
|
||||
style="opacity:0.69398911;fill:url(#radialGradient36619);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
id="ball1"
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
id="g1310"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
style="fill:url(#linearGradient1221)">
|
||||
<path
|
||||
style="fill:url(#linearGradient36621);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
id="path1278"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient36623);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
id="path1283"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient36625);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
id="path1286"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient36627);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
id="path1295"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient36629);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
id="path1300"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient36631);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
id="path1304"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
id="path1217"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
id="path1269"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
id="path1271"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
id="path1276"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
id="path1317"
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Title">
|
||||
<text
|
||||
x="48"
|
||||
y="74.666664"
|
||||
style="font-style:normal;font-weight:normal;font-size:51.20000076px;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text48">
|
||||
<tspan
|
||||
id="tspan49"
|
||||
style="stroke-width:3.20000017pt">Overview</tspan>
|
||||
</text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.13333511px;line-height:139.99999762%;font-family:Arial;letter-spacing:0;writing-mode:lr-tb;text-anchor:start;display:block;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
x="46.316666"
|
||||
y="185.39682"
|
||||
id="text1126"><tspan
|
||||
x="46.316666"
|
||||
y="185.39682"
|
||||
sodipodi:role="line"
|
||||
id="tspan1270"
|
||||
style="stroke-width:3.20000017pt">* Current inkscape gui/app architecture</tspan><tspan
|
||||
x="46.316666"
|
||||
y="233.18349"
|
||||
sodipodi:role="line"
|
||||
id="tspan1272"
|
||||
style="stroke-width:3.20000017pt">* Problems with current architecture</tspan><tspan
|
||||
x="46.316666"
|
||||
y="280.97015"
|
||||
sodipodi:role="line"
|
||||
id="tspan1274"
|
||||
style="stroke-width:3.20000017pt" /><tspan
|
||||
x="46.316666"
|
||||
y="328.75684"
|
||||
sodipodi:role="line"
|
||||
id="tspan1276"
|
||||
style="stroke-width:3.20000017pt">* Current inkscape_gtkmm architecture</tspan><tspan
|
||||
x="46.316666"
|
||||
y="376.54349"
|
||||
sodipodi:role="line"
|
||||
id="tspan1278"
|
||||
style="stroke-width:3.20000017pt">* Future capabilities we'd like to support</tspan><tspan
|
||||
x="46.316666"
|
||||
y="424.33017"
|
||||
sodipodi:role="line"
|
||||
id="tspan1280"
|
||||
style="stroke-width:3.20000017pt" /><tspan
|
||||
x="46.316666"
|
||||
y="472.11682"
|
||||
sodipodi:role="line"
|
||||
id="tspan1282"
|
||||
style="stroke-width:3.20000017pt">* Next generation architecture</tspan><tspan
|
||||
x="46.316666"
|
||||
y="519.9035"
|
||||
sodipodi:role="line"
|
||||
id="tspan1284"
|
||||
style="stroke-width:3.20000017pt">* Evolving to next gen inkscape architecture</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Drawing Area" />
|
||||
</svg>
|
After Width: | Height: | Size: 38 KiB |
581
doc/NewAppArchitecture/03-current.svg
Normal file
|
@ -0,0 +1,581 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="03-current.svg"
|
||||
height="480pt"
|
||||
width="640pt"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
sodipodi:version="0.32"
|
||||
id="svg586"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleOutL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path2817"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleInL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path2823"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow2L"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2L">
|
||||
<path
|
||||
d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
|
||||
id="path2863"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
id="stop2571"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2572"
|
||||
offset="0.58504134"
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop2573"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="114.57422"
|
||||
x2="53.030737"
|
||||
y1="20.687101"
|
||||
x1="77.599106"
|
||||
id="linearGradient1322"
|
||||
xlink:href="#linearGradient1218"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="58.199241"
|
||||
x2="33.266399"
|
||||
y1="30.563196"
|
||||
x1="59.491886"
|
||||
id="linearGradient1318"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.004208,0.995809)"
|
||||
y2="0.12454049"
|
||||
x2="0.41986585"
|
||||
y1="1.9347328"
|
||||
x1="0.45376351"
|
||||
id="linearGradient1307"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.006361,0.993679)"
|
||||
y2="0.11846013"
|
||||
x2="0.41548476"
|
||||
y1="1.9667202"
|
||||
x1="0.45009527"
|
||||
id="linearGradient1306"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.002016,0.997989)"
|
||||
y2="0.13959341"
|
||||
x2="0.42603236"
|
||||
y1="1.8676205"
|
||||
x1="0.45839140"
|
||||
id="linearGradient1305"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="80.482086"
|
||||
x2="51.413385"
|
||||
y1="119.11808"
|
||||
x1="11.967844"
|
||||
id="linearGradient1277"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="62.493129"
|
||||
x2="90.28563"
|
||||
y1="45.70058"
|
||||
x1="118.66497"
|
||||
id="linearGradient1272"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1270"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="120.74315"
|
||||
x2="94.698939"
|
||||
y1="120.74315"
|
||||
x1="17.696665"
|
||||
id="linearGradient1231"
|
||||
xlink:href="#linearGradient1323"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="28.120696"
|
||||
x2="130.70353"
|
||||
y1="170.27164"
|
||||
x1="27.318817"
|
||||
id="linearGradient1221"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
id="stop1219"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1321"
|
||||
offset="0.073255815"
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1320"
|
||||
offset="0.65260679"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1220"
|
||||
offset="1"
|
||||
style="stop-color:#fff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
id="stop1223"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1722"
|
||||
offset="0.50000000"
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop1224"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
id="stop1274"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1275"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
id="stop1324"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;" />
|
||||
<stop
|
||||
id="stop1325"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
fy="93.75"
|
||||
fx="303.7037"
|
||||
r="248.40302"
|
||||
cy="281.25"
|
||||
cx="296.2963"
|
||||
id="radialGradient829"
|
||||
xlink:href="#linearGradient826"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
id="stop827"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;" />
|
||||
<stop
|
||||
id="stop830"
|
||||
offset="0.36585677"
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;" />
|
||||
<stop
|
||||
id="stop847"
|
||||
offset="0.47107276"
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;" />
|
||||
<stop
|
||||
id="stop828"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="-1.7333326"
|
||||
x2="0.50000000"
|
||||
y1="0.66667551"
|
||||
x1="0.50000000"
|
||||
id="linearGradient907"
|
||||
xlink:href="#linearGradient909" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
id="stop910"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
<stop
|
||||
id="stop913"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1309"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="1365.4825"
|
||||
x2="64.30938"
|
||||
y1="1365.4825"
|
||||
x1="-0.0028122679"
|
||||
id="linearGradient1308"
|
||||
xlink:href="#linearGradient2570"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient36867"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36869"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36871"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36873"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36875"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36877"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient36879"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:guide-bbox="true"
|
||||
showguides="true"
|
||||
inkscape:window-y="105"
|
||||
inkscape:window-x="410"
|
||||
inkscape:window-height="687"
|
||||
inkscape:window-width="764"
|
||||
inkscape:cy="232.38095"
|
||||
inkscape:cx="348.40278"
|
||||
inkscape:zoom="1.05"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:block"
|
||||
inkscape:label="Background"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
y="1.8947807e-15"
|
||||
x="0"
|
||||
height="120"
|
||||
width="853.33331"
|
||||
id="topbluebox"
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path654"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="translate(689.36448,-10.40511)"
|
||||
id="g1085">
|
||||
<g
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
|
||||
id="g1394">
|
||||
<ellipse
|
||||
style="opacity:0.69398911;fill:url(#radialGradient36867);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
id="path898"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
id="ball1"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:url(#linearGradient1221)"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
id="g1310">
|
||||
<path
|
||||
id="path1278"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
style="fill:url(#linearGradient36869);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1283"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
style="fill:url(#linearGradient36871);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1286"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
style="fill:url(#linearGradient36873);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1295"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
style="fill:url(#linearGradient36875);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1300"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
style="fill:url(#linearGradient36877);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1304"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
style="fill:url(#linearGradient36879);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1217"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1269"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1271"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1276"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
id="path1317"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Title"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<text
|
||||
id="text48"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
y="74.666664"
|
||||
x="48">
|
||||
<tspan
|
||||
x="48"
|
||||
y="74.666664"
|
||||
sodipodi:role="line"
|
||||
id="tspan1508"
|
||||
style="stroke-width:3.20000017pt">Current Inkscape Architecture</tspan>
|
||||
</text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:139.99999762%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="57.142857"
|
||||
y="168.88889"
|
||||
id="text3025"><tspan
|
||||
x="57.142857"
|
||||
y="168.88889"
|
||||
sodipodi:role="line"
|
||||
id="tspan3452"
|
||||
style="stroke-width:1.06666669pt">* Core assumption: This is a Linux GUI Editor _only_</tspan><tspan
|
||||
x="57.142857"
|
||||
y="204.72888"
|
||||
sodipodi:role="line"
|
||||
id="tspan3454"
|
||||
style="stroke-width:1.06666669pt"> + Well, plus a GUI viewer, too</tspan><tspan
|
||||
x="57.142857"
|
||||
y="240.56888"
|
||||
sodipodi:role="line"
|
||||
id="tspan3456"
|
||||
style="stroke-width:1.06666669pt"> + Well, plus non-GUI cmdline tool, too</tspan><tspan
|
||||
x="57.142857"
|
||||
y="276.40887"
|
||||
sodipodi:role="line"
|
||||
id="tspan3458"
|
||||
style="stroke-width:1.06666669pt"> + Well, plus all the above on Windows, too</tspan><tspan
|
||||
x="57.142857"
|
||||
y="312.24887"
|
||||
sodipodi:role="line"
|
||||
id="tspan3460"
|
||||
style="stroke-width:1.06666669pt"> + (Architecture has grown organically)</tspan><tspan
|
||||
x="57.142857"
|
||||
y="348.0889"
|
||||
sodipodi:role="line"
|
||||
id="tspan3462"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
x="57.142857"
|
||||
y="383.92889"
|
||||
sodipodi:role="line"
|
||||
id="tspan3464"
|
||||
style="stroke-width:1.06666669pt">* Core architecture</tspan><tspan
|
||||
x="57.142857"
|
||||
y="419.76889"
|
||||
sodipodi:role="line"
|
||||
id="tspan3466"
|
||||
style="stroke-width:1.06666669pt"> + Gtk::Main - runs program</tspan><tspan
|
||||
x="57.142857"
|
||||
y="455.60889"
|
||||
sodipodi:role="line"
|
||||
id="tspan3468"
|
||||
style="stroke-width:1.06666669pt"> + Inkscape::Application - GUI editing mode</tspan><tspan
|
||||
x="57.142857"
|
||||
y="491.44888"
|
||||
sodipodi:role="line"
|
||||
id="tspan3470"
|
||||
style="stroke-width:1.06666669pt"> - Contains 'Document's</tspan><tspan
|
||||
x="57.142857"
|
||||
y="527.28888"
|
||||
sodipodi:role="line"
|
||||
id="tspan3472"
|
||||
style="stroke-width:1.06666669pt"> - Each Document has one or more 'View's</tspan><tspan
|
||||
x="57.142857"
|
||||
y="563.12891"
|
||||
sodipodi:role="line"
|
||||
id="tspan3474"
|
||||
style="stroke-width:1.06666669pt"> - An editable View is called a 'Desktop'</tspan><tspan
|
||||
x="57.142857"
|
||||
y="598.96887"
|
||||
sodipodi:role="line"
|
||||
id="tspan3476"
|
||||
style="stroke-width:1.06666669pt"> + Other run modes (inkview, cmdline) handled uniquely</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Drawing Area"
|
||||
id="layer3"
|
||||
inkscape:groupmode="layer" />
|
||||
</svg>
|
After Width: | Height: | Size: 40 KiB |
686
doc/NewAppArchitecture/04-current-main.svg
Normal file
|
@ -0,0 +1,686 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg586"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
width="640pt"
|
||||
height="480pt"
|
||||
sodipodi:docname="04-current-main.svg"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker396"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path397"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker394"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path395"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker391"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path392"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker319"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path320"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path224"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop2571" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;"
|
||||
offset="0.58504134"
|
||||
id="stop2572" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2573" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1218"
|
||||
id="linearGradient1322"
|
||||
x1="77.599106"
|
||||
y1="20.687101"
|
||||
x2="53.030737"
|
||||
y2="114.57422"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1318"
|
||||
x1="59.491886"
|
||||
y1="30.563196"
|
||||
x2="33.266399"
|
||||
y2="58.199241"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1307"
|
||||
x1="0.45376351"
|
||||
y1="1.9347328"
|
||||
x2="0.41986585"
|
||||
y2="0.12454049"
|
||||
gradientTransform="scale(1.004208,0.995809)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1306"
|
||||
x1="0.45009527"
|
||||
y1="1.9667202"
|
||||
x2="0.41548476"
|
||||
y2="0.11846013"
|
||||
gradientTransform="scale(1.006361,0.993679)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1305"
|
||||
x1="0.45839140"
|
||||
y1="1.8676205"
|
||||
x2="0.42603236"
|
||||
y2="0.13959341"
|
||||
gradientTransform="scale(1.002016,0.997989)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1277"
|
||||
x1="11.967844"
|
||||
y1="119.11808"
|
||||
x2="51.413385"
|
||||
y2="80.482086"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1272"
|
||||
x1="118.66497"
|
||||
y1="45.70058"
|
||||
x2="90.28563"
|
||||
y2="62.493129"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1270" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1323"
|
||||
id="linearGradient1231"
|
||||
x1="17.696665"
|
||||
y1="120.74315"
|
||||
x2="94.698939"
|
||||
y2="120.74315"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1221"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1219" />
|
||||
<stop
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;"
|
||||
offset="0.073255815"
|
||||
id="stop1321" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.65260679"
|
||||
id="stop1320" />
|
||||
<stop
|
||||
style="stop-color:#fff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop1220" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop1223" />
|
||||
<stop
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;"
|
||||
offset="0.50000000"
|
||||
id="stop1722" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1224" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1274" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1275" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;"
|
||||
offset="0.00000000"
|
||||
id="stop1324" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1325" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient829"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
r="248.40302"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;"
|
||||
offset="0.00000000"
|
||||
id="stop827" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;"
|
||||
offset="0.36585677"
|
||||
id="stop830" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;"
|
||||
offset="0.47107276"
|
||||
id="stop847" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop828" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient909"
|
||||
id="linearGradient907"
|
||||
x1="0.50000000"
|
||||
y1="0.66667551"
|
||||
x2="0.50000000"
|
||||
y2="-1.7333326" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="0.00000000"
|
||||
id="stop910" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;"
|
||||
offset="1.0000000"
|
||||
id="stop913" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1309"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2570"
|
||||
id="linearGradient1308"
|
||||
x1="-0.0028122679"
|
||||
y1="1365.4825"
|
||||
x2="64.30938"
|
||||
y2="1365.4825"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient37145"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient37147"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient37149"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient37151"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient37153"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient37155"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient37157"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.70710678"
|
||||
inkscape:cx="372.43198"
|
||||
inkscape:cy="354.2857"
|
||||
inkscape:window-width="968"
|
||||
inkscape:window-height="821"
|
||||
inkscape:window-x="133"
|
||||
inkscape:window-y="71"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Background"
|
||||
style="display:block">
|
||||
<rect
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
|
||||
id="topbluebox"
|
||||
width="853.33331"
|
||||
height="120"
|
||||
x="0"
|
||||
y="1.8947807e-15" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
id="path654"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1085"
|
||||
transform="translate(689.36448,-10.40511)">
|
||||
<g
|
||||
id="g1394"
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
|
||||
<ellipse
|
||||
id="path898"
|
||||
style="opacity:0.69398911;fill:url(#radialGradient37145);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
id="ball1"
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
id="g1310"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
style="fill:url(#linearGradient1221)">
|
||||
<path
|
||||
style="fill:url(#linearGradient37147);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
id="path1278"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient37149);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
id="path1283"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient37151);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
id="path1286"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient37153);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
id="path1295"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient37155);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
id="path1300"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient37157);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
id="path1304"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
id="path1217"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
id="path1269"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
id="path1271"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
id="path1276"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
id="path1317"
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Title">
|
||||
<text
|
||||
x="48"
|
||||
y="74.666664"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text48">
|
||||
<tspan
|
||||
id="tspan415"
|
||||
sodipodi:role="line"
|
||||
y="74.666664"
|
||||
x="48"
|
||||
style="stroke-width:3.20000017pt">main() Process Flow</tspan>
|
||||
</text>
|
||||
<rect
|
||||
y="176.8922"
|
||||
x="325.83481"
|
||||
height="70.899239"
|
||||
width="150.84944"
|
||||
id="rect1"
|
||||
style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text74"
|
||||
y="220.63853"
|
||||
x="356.0047"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="220.63853"
|
||||
x="356.0047"
|
||||
id="tspan75"
|
||||
sodipodi:role="line"
|
||||
style="stroke-width:1.06666669pt">main()</tspan></text>
|
||||
<text
|
||||
id="text77"
|
||||
y="256.08817"
|
||||
x="641.11017"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan150"
|
||||
sodipodi:role="line"
|
||||
y="256.08817"
|
||||
x="641.11017"
|
||||
style="stroke-width:1.06666669pt">WinMain()</tspan></text>
|
||||
<rect
|
||||
y="207.06209"
|
||||
x="606.41479"
|
||||
height="85.984169"
|
||||
width="197.61299"
|
||||
id="rect79"
|
||||
style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path151"
|
||||
d="M 609.43177,249.29994 484.22673,213.09606"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33333333, 5.33333333;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
y="330.00439"
|
||||
x="27.152899"
|
||||
height="70.899239"
|
||||
width="297.1734"
|
||||
id="rect311"
|
||||
style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text312"
|
||||
y="373.7507"
|
||||
x="57.322788"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan317"
|
||||
sodipodi:role="line"
|
||||
y="373.7507"
|
||||
x="57.322788"
|
||||
style="stroke-width:1.06666669pt">sp_main_console()</tspan></text>
|
||||
<rect
|
||||
y="330.00439"
|
||||
x="469.14175"
|
||||
height="70.899239"
|
||||
width="238.34212"
|
||||
id="rect314"
|
||||
style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text315"
|
||||
y="373.75076"
|
||||
x="499.31165"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan318"
|
||||
sodipodi:role="line"
|
||||
y="373.75076"
|
||||
x="499.31165"
|
||||
style="stroke-width:1.06666669pt">sp_main_gui()</tspan></text>
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path321"
|
||||
d="m 367.3184,247.79143 -99.56063,73.91623"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path393"
|
||||
d="m 443.49739,248.5457 99.56063,73.91622"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path400"
|
||||
d="m 480.07836,401.24433 -99.56063,73.91622"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path401"
|
||||
d="m 559.27433,400.49009 99.56062,73.91622"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
y="483.83582"
|
||||
x="72.40773"
|
||||
height="128.22203"
|
||||
width="383.15768"
|
||||
id="rect402"
|
||||
style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text403"
|
||||
y="527.58215"
|
||||
x="103.88267"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:150%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan420"
|
||||
sodipodi:role="line"
|
||||
y="527.58215"
|
||||
x="103.88267"
|
||||
style="stroke-width:1.06666669pt">slideshow mode</tspan><tspan
|
||||
id="tspan421"
|
||||
sodipodi:role="line"
|
||||
y="565.98218"
|
||||
x="103.88267"
|
||||
style="stroke-width:1.06666669pt">sp_slideshow_new(files)</tspan></text>
|
||||
<rect
|
||||
y="483.83582"
|
||||
x="507.71597"
|
||||
height="126.71353"
|
||||
width="291.13947"
|
||||
id="rect408"
|
||||
style="color:#000000;visibility:visible;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text409"
|
||||
y="527.58215"
|
||||
x="536.29291"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:150%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan418"
|
||||
sodipodi:role="line"
|
||||
y="527.58215"
|
||||
x="536.29291"
|
||||
style="stroke-width:1.06666669pt">editor mode</tspan><tspan
|
||||
id="tspan419"
|
||||
sodipodi:role="line"
|
||||
y="565.98218"
|
||||
x="536.29291"
|
||||
style="stroke-width:1.06666669pt">sp_file_open(files)</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Drawing Area" />
|
||||
</svg>
|
After Width: | Height: | Size: 46 KiB |
1270
doc/NewAppArchitecture/05-current-objects.svg
Normal file
After Width: | Height: | Size: 70 KiB |
785
doc/NewAppArchitecture/06-current-desktop-view.svg
Normal file
|
@ -0,0 +1,785 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="06-current-desktop-view.svg"
|
||||
height="480pt"
|
||||
width="640pt"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
sodipodi:version="0.32"
|
||||
id="svg586"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker791"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path792"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker719"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path720"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker717"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path718"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker714"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path715"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker712"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path713"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker709"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path710"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker707"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path708"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker704"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path705"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker702"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path703"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleOutL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path2817"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleInL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path2823"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow2L"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2L">
|
||||
<path
|
||||
d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
|
||||
id="path2863"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
id="stop2571"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2572"
|
||||
offset="0.58504134"
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop2573"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="114.57422"
|
||||
x2="53.030737"
|
||||
y1="20.687101"
|
||||
x1="77.599106"
|
||||
id="linearGradient1322"
|
||||
xlink:href="#linearGradient1218"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="58.199241"
|
||||
x2="33.266399"
|
||||
y1="30.563196"
|
||||
x1="59.491886"
|
||||
id="linearGradient1318"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.004208,0.995809)"
|
||||
y2="0.12454049"
|
||||
x2="0.41986585"
|
||||
y1="1.9347328"
|
||||
x1="0.45376351"
|
||||
id="linearGradient1307"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.006361,0.993679)"
|
||||
y2="0.11846013"
|
||||
x2="0.41548476"
|
||||
y1="1.9667202"
|
||||
x1="0.45009527"
|
||||
id="linearGradient1306"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.002016,0.997989)"
|
||||
y2="0.13959341"
|
||||
x2="0.42603236"
|
||||
y1="1.8676205"
|
||||
x1="0.45839140"
|
||||
id="linearGradient1305"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="80.482086"
|
||||
x2="51.413385"
|
||||
y1="119.11808"
|
||||
x1="11.967844"
|
||||
id="linearGradient1277"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="62.493129"
|
||||
x2="90.28563"
|
||||
y1="45.70058"
|
||||
x1="118.66497"
|
||||
id="linearGradient1272"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1270"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="120.74315"
|
||||
x2="94.698939"
|
||||
y1="120.74315"
|
||||
x1="17.696665"
|
||||
id="linearGradient1231"
|
||||
xlink:href="#linearGradient1323"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="28.120696"
|
||||
x2="130.70353"
|
||||
y1="170.27164"
|
||||
x1="27.318817"
|
||||
id="linearGradient1221"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
id="stop1219"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1321"
|
||||
offset="0.073255815"
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1320"
|
||||
offset="0.65260679"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1220"
|
||||
offset="1"
|
||||
style="stop-color:#fff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
id="stop1223"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1722"
|
||||
offset="0.50000000"
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop1224"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
id="stop1274"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1275"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
id="stop1324"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;" />
|
||||
<stop
|
||||
id="stop1325"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
fy="93.75"
|
||||
fx="303.7037"
|
||||
r="248.40302"
|
||||
cy="281.25"
|
||||
cx="296.2963"
|
||||
id="radialGradient829"
|
||||
xlink:href="#linearGradient826"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
id="stop827"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;" />
|
||||
<stop
|
||||
id="stop830"
|
||||
offset="0.36585677"
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;" />
|
||||
<stop
|
||||
id="stop847"
|
||||
offset="0.47107276"
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;" />
|
||||
<stop
|
||||
id="stop828"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="-1.7333326"
|
||||
x2="0.50000000"
|
||||
y1="0.66667551"
|
||||
x1="0.50000000"
|
||||
id="linearGradient907"
|
||||
xlink:href="#linearGradient909" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
id="stop910"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
<stop
|
||||
id="stop913"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1309"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="1365.4825"
|
||||
x2="64.30938"
|
||||
y1="1365.4825"
|
||||
x1="-0.0028122679"
|
||||
id="linearGradient1308"
|
||||
xlink:href="#linearGradient2570"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient38209"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38211"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38213"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38215"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38217"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38219"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38221"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:grid-points="true"
|
||||
gridtolerance="50.000000pt"
|
||||
inkscape:guide-points="true"
|
||||
showgrid="true"
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:guide-bbox="false"
|
||||
showguides="true"
|
||||
inkscape:window-y="105"
|
||||
inkscape:window-x="190"
|
||||
inkscape:window-height="845"
|
||||
inkscape:window-width="984"
|
||||
inkscape:cy="320"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:zoom="0.978125"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
id="GridFromPre046Settings"
|
||||
type="xygrid"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="7.1111111"
|
||||
spacingy="7.1111111"
|
||||
color="#3f3fff"
|
||||
empcolor="#3f3fff"
|
||||
opacity="0.15"
|
||||
empopacity="0.38"
|
||||
empspacing="5" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:block"
|
||||
inkscape:label="Background"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
y="1.8947807e-15"
|
||||
x="0"
|
||||
height="120"
|
||||
width="853.33331"
|
||||
id="topbluebox"
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path654"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="translate(689.36448,-10.40511)"
|
||||
id="g1085">
|
||||
<g
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
|
||||
id="g1394">
|
||||
<ellipse
|
||||
style="opacity:0.69398911;fill:url(#radialGradient38209);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
id="path898"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
id="ball1"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:url(#linearGradient1221)"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
id="g1310">
|
||||
<path
|
||||
id="path1278"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
style="fill:url(#linearGradient38211);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1283"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
style="fill:url(#linearGradient38213);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1286"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
style="fill:url(#linearGradient38215);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1295"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
style="fill:url(#linearGradient38217);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1300"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
style="fill:url(#linearGradient38219);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1304"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
style="fill:url(#linearGradient38221);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1217"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1269"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1271"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1276"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
id="path1317"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Title"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<text
|
||||
id="text48"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
y="74.666664"
|
||||
x="48">
|
||||
<tspan
|
||||
x="48"
|
||||
y="74.666664"
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="stroke-width:3.20000017pt">Views and Desktops</tspan>
|
||||
</text>
|
||||
<rect
|
||||
rx="25.859905"
|
||||
ry="25.859905"
|
||||
y="373.33334"
|
||||
x="34.35228"
|
||||
height="83.326271"
|
||||
width="100.56628"
|
||||
id="rect153"
|
||||
style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text803"
|
||||
y="420.35898"
|
||||
x="44.791668"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan804"
|
||||
sodipodi:role="line"
|
||||
y="420.35898"
|
||||
x="44.791668"
|
||||
style="stroke-width:1.06666669pt">Desktop</tspan></text>
|
||||
<rect
|
||||
rx="25.859905"
|
||||
ry="25.859905"
|
||||
y="140.89519"
|
||||
x="34.35228"
|
||||
height="83.326271"
|
||||
width="100.56628"
|
||||
id="rect2"
|
||||
style="color:#000000;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<text
|
||||
id="text3"
|
||||
y="189.463"
|
||||
x="62.172916"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:100%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
x="62.172916"
|
||||
y="189.463"
|
||||
sodipodi:role="line"
|
||||
id="tspan5"
|
||||
style="stroke-width:1.06666669pt">View</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.33333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||
d="M 80.253968,224.50794 80,373.33333"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
id="text80"
|
||||
y="186.42291"
|
||||
x="199.75626"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
x="199.75626"
|
||||
y="186.42291"
|
||||
sodipodi:role="line"
|
||||
id="tspan82"
|
||||
style="stroke-width:1.06666669pt">SPView</tspan><tspan
|
||||
x="199.75626"
|
||||
y="209.46292"
|
||||
sodipodi:role="line"
|
||||
id="tspan83"
|
||||
style="stroke-width:1.06666669pt"> - Base class for SVG views</tspan><tspan
|
||||
x="199.75626"
|
||||
y="232.50291"
|
||||
sodipodi:role="line"
|
||||
id="tspan84"
|
||||
style="stroke-width:1.06666669pt"> - Has a pointer to a doc (SPDocument)</tspan><tspan
|
||||
x="199.75626"
|
||||
y="255.54292"
|
||||
sodipodi:role="line"
|
||||
id="tspan85"
|
||||
style="stroke-width:1.06666669pt"> - Contains message stack and message context</tspan><tspan
|
||||
x="199.75626"
|
||||
y="278.58292"
|
||||
sodipodi:role="line"
|
||||
id="tspan86"
|
||||
style="stroke-width:1.06666669pt"> - Handles status messages</tspan><tspan
|
||||
x="199.75626"
|
||||
y="301.62292"
|
||||
sodipodi:role="line"
|
||||
id="tspan87"
|
||||
style="stroke-width:1.06666669pt"> - Handles redrawing screen</tspan><tspan
|
||||
x="199.75626"
|
||||
y="324.66293"
|
||||
sodipodi:role="line"
|
||||
id="tspan88"
|
||||
style="stroke-width:1.06666669pt"> - Emits signals on view changes</tspan><tspan
|
||||
x="199.75626"
|
||||
y="347.70291"
|
||||
sodipodi:role="line"
|
||||
id="tspan89"
|
||||
style="stroke-width:1.06666669pt"> - Provides sp_desktop_widget_new()</tspan></text>
|
||||
<text
|
||||
id="text90"
|
||||
y="420.87918"
|
||||
x="199.05313"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
x="199.05313"
|
||||
y="420.87918"
|
||||
sodipodi:role="line"
|
||||
id="tspan106"
|
||||
style="stroke-width:1.06666669pt">SPDesktop</tspan><tspan
|
||||
x="199.05313"
|
||||
y="443.91919"
|
||||
sodipodi:role="line"
|
||||
id="tspan107"
|
||||
style="stroke-width:1.06666669pt"> - Subclass of SPView</tspan><tspan
|
||||
x="199.05313"
|
||||
y="466.9592"
|
||||
sodipodi:role="line"
|
||||
id="tspan108"
|
||||
style="stroke-width:1.06666669pt"> - Implements an "Editable view"</tspan><tspan
|
||||
x="199.05313"
|
||||
y="489.99918"
|
||||
sodipodi:role="line"
|
||||
id="tspan109"
|
||||
style="stroke-width:1.06666669pt"> - Holds pointer to Inkscape::Application</tspan><tspan
|
||||
x="199.05313"
|
||||
y="513.03918"
|
||||
sodipodi:role="line"
|
||||
id="tspan110"
|
||||
style="stroke-width:1.06666669pt"> - Contains scrollbar, ruler, canvas, guides, etc.</tspan><tspan
|
||||
x="199.05313"
|
||||
y="536.07916"
|
||||
sodipodi:role="line"
|
||||
id="tspan111"
|
||||
style="stroke-width:1.06666669pt"> - Defines scroll limits, zoom min/max, fullscreen</tspan><tspan
|
||||
x="199.05313"
|
||||
y="559.1192"
|
||||
sodipodi:role="line"
|
||||
id="tspan112"
|
||||
style="stroke-width:1.06666669pt"> - Manages event contexts, coordinate systems, zooming, etc.</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Drawing Area"
|
||||
id="layer3"
|
||||
inkscape:groupmode="layer" />
|
||||
</svg>
|
After Width: | Height: | Size: 47 KiB |
729
doc/NewAppArchitecture/07-current-problems.svg
Normal file
|
@ -0,0 +1,729 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg586"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
width="640pt"
|
||||
height="480pt"
|
||||
sodipodi:docname="07-current-problems.svg"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker791"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path792"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker719"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path720"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleInL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker717"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path718"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker714"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path715"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleInL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker712"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path713"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker709"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path710"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleInL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker707"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path708"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker704"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path705"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleInL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker702"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path703"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2817"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleInL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleInL"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2823"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2L"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow2L"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2863"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
|
||||
d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop2571" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;"
|
||||
offset="0.58504134"
|
||||
id="stop2572" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2573" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1218"
|
||||
id="linearGradient1322"
|
||||
x1="77.599106"
|
||||
y1="20.687101"
|
||||
x2="53.030737"
|
||||
y2="114.57422"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1318"
|
||||
x1="59.491886"
|
||||
y1="30.563196"
|
||||
x2="33.266399"
|
||||
y2="58.199241"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1307"
|
||||
x1="0.45376351"
|
||||
y1="1.9347328"
|
||||
x2="0.41986585"
|
||||
y2="0.12454049"
|
||||
gradientTransform="scale(1.004208,0.995809)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1306"
|
||||
x1="0.45009527"
|
||||
y1="1.9667202"
|
||||
x2="0.41548476"
|
||||
y2="0.11846013"
|
||||
gradientTransform="scale(1.006361,0.993679)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1305"
|
||||
x1="0.45839140"
|
||||
y1="1.8676205"
|
||||
x2="0.42603236"
|
||||
y2="0.13959341"
|
||||
gradientTransform="scale(1.002016,0.997989)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1277"
|
||||
x1="11.967844"
|
||||
y1="119.11808"
|
||||
x2="51.413385"
|
||||
y2="80.482086"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1272"
|
||||
x1="118.66497"
|
||||
y1="45.70058"
|
||||
x2="90.28563"
|
||||
y2="62.493129"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1270" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1323"
|
||||
id="linearGradient1231"
|
||||
x1="17.696665"
|
||||
y1="120.74315"
|
||||
x2="94.698939"
|
||||
y2="120.74315"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1221"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1219" />
|
||||
<stop
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;"
|
||||
offset="0.073255815"
|
||||
id="stop1321" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.65260679"
|
||||
id="stop1320" />
|
||||
<stop
|
||||
style="stop-color:#fff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop1220" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop1223" />
|
||||
<stop
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;"
|
||||
offset="0.50000000"
|
||||
id="stop1722" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1224" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1274" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1275" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;"
|
||||
offset="0.00000000"
|
||||
id="stop1324" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1325" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient829"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
r="248.40302"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;"
|
||||
offset="0.00000000"
|
||||
id="stop827" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;"
|
||||
offset="0.36585677"
|
||||
id="stop830" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;"
|
||||
offset="0.47107276"
|
||||
id="stop847" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop828" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient909"
|
||||
id="linearGradient907"
|
||||
x1="0.50000000"
|
||||
y1="0.66667551"
|
||||
x2="0.50000000"
|
||||
y2="-1.7333326" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="0.00000000"
|
||||
id="stop910" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;"
|
||||
offset="1.0000000"
|
||||
id="stop913" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1309"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2570"
|
||||
id="linearGradient1308"
|
||||
x1="-0.0028122679"
|
||||
y1="1365.4825"
|
||||
x2="64.30938"
|
||||
y2="1365.4825"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient38495"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38497"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38499"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38501"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38503"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38505"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38507"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.978125"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:cy="320"
|
||||
inkscape:window-width="984"
|
||||
inkscape:window-height="845"
|
||||
inkscape:window-x="190"
|
||||
inkscape:window-y="105"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="false"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="true"
|
||||
inkscape:guide-points="true"
|
||||
gridtolerance="50.000000pt"
|
||||
inkscape:grid-points="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
id="GridFromPre046Settings"
|
||||
type="xygrid"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="7.1111111"
|
||||
spacingy="7.1111111"
|
||||
color="#3f3fff"
|
||||
empcolor="#3f3fff"
|
||||
opacity="0.15"
|
||||
empopacity="0.38"
|
||||
empspacing="5" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Background"
|
||||
style="display:block">
|
||||
<rect
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
|
||||
id="topbluebox"
|
||||
width="853.33331"
|
||||
height="120"
|
||||
x="0"
|
||||
y="1.8947807e-15" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
id="path654"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1085"
|
||||
transform="translate(689.36448,-10.40511)">
|
||||
<g
|
||||
id="g1394"
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
|
||||
<ellipse
|
||||
id="path898"
|
||||
style="opacity:0.69398911;fill:url(#radialGradient38495);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
id="ball1"
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
id="g1310"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
style="fill:url(#linearGradient1221)">
|
||||
<path
|
||||
style="fill:url(#linearGradient38497);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
id="path1278"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38499);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
id="path1283"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38501);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
id="path1286"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38503);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
id="path1295"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38505);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
id="path1300"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38507);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
id="path1304"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
id="path1217"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
id="path1269"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
id="path1271"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
id="path1276"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
id="path1317"
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Title">
|
||||
<text
|
||||
x="48"
|
||||
y="74.666664"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text48">
|
||||
<tspan
|
||||
x="48"
|
||||
y="74.666664"
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="stroke-width:3.20000017pt">Problems</tspan>
|
||||
</text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.20000076px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="39.053123"
|
||||
y="188.08769"
|
||||
id="text80"><tspan
|
||||
id="tspan16"
|
||||
sodipodi:role="line"
|
||||
y="188.08769"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt">* Inkscape seems to want to have "run modes"</tspan><tspan
|
||||
id="tspan17"
|
||||
sodipodi:role="line"
|
||||
y="211.1277"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> + editor, viewer, cmdline, more...?</tspan><tspan
|
||||
id="tspan18"
|
||||
sodipodi:role="line"
|
||||
y="234.16769"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> + If we needed a new mode, it would be hard to fit in except as hacks</tspan><tspan
|
||||
id="tspan19"
|
||||
sodipodi:role="line"
|
||||
y="257.2077"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> + Currently, these modes implemented as exceptions, but it's buggy</tspan><tspan
|
||||
id="tspan20"
|
||||
sodipodi:role="line"
|
||||
y="280.24771"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> - popping up warning dialogs in cmdline mode</tspan><tspan
|
||||
id="tspan21"
|
||||
sodipodi:role="line"
|
||||
y="303.28769"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> - inconsistent URI / UTF handling</tspan><tspan
|
||||
id="tspan22"
|
||||
sodipodi:role="line"
|
||||
y="326.3277"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> - duplication of code for different modes may lead to divergences</tspan><tspan
|
||||
id="tspan23"
|
||||
sodipodi:role="line"
|
||||
y="349.36771"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan24"
|
||||
sodipodi:role="line"
|
||||
y="372.40771"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt">* main() has too much code in it (>750 lines)</tspan><tspan
|
||||
id="tspan25"
|
||||
sodipodi:role="line"
|
||||
y="395.44772"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt"> + cmdline handling code needs broken out separately</tspan><tspan
|
||||
id="tspan26"
|
||||
sodipodi:role="line"
|
||||
y="418.4877"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan27"
|
||||
sodipodi:role="line"
|
||||
y="441.52771"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt">* winmain() is not well integrated (Q's listed in makefiles)</tspan><tspan
|
||||
id="tspan28"
|
||||
sodipodi:role="line"
|
||||
y="464.56772"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan29"
|
||||
sodipodi:role="line"
|
||||
y="487.60773"
|
||||
x="39.053123"
|
||||
style="stroke-width:1.06666669pt">* Current architecture is C / Gtk+; we need C++ / Gtkmm</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Drawing Area" />
|
||||
</svg>
|
After Width: | Height: | Size: 44 KiB |
576
doc/NewAppArchitecture/08-inkscape-gtkmm.svg
Normal file
|
@ -0,0 +1,576 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg586"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
width="640pt"
|
||||
height="480pt"
|
||||
sodipodi:docname="08-inkscape-gtkmm.svg"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2817"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleInL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleInL"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2823"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2L"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow2L"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2863"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
|
||||
d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop2571" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;"
|
||||
offset="0.58504134"
|
||||
id="stop2572" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2573" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1218"
|
||||
id="linearGradient1322"
|
||||
x1="77.599106"
|
||||
y1="20.687101"
|
||||
x2="53.030737"
|
||||
y2="114.57422"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1318"
|
||||
x1="59.491886"
|
||||
y1="30.563196"
|
||||
x2="33.266399"
|
||||
y2="58.199241"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1307"
|
||||
x1="0.45376351"
|
||||
y1="1.9347328"
|
||||
x2="0.41986585"
|
||||
y2="0.12454049"
|
||||
gradientTransform="scale(1.004208,0.995809)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1306"
|
||||
x1="0.45009527"
|
||||
y1="1.9667202"
|
||||
x2="0.41548476"
|
||||
y2="0.11846013"
|
||||
gradientTransform="scale(1.006361,0.993679)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1305"
|
||||
x1="0.45839140"
|
||||
y1="1.8676205"
|
||||
x2="0.42603236"
|
||||
y2="0.13959341"
|
||||
gradientTransform="scale(1.002016,0.997989)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1277"
|
||||
x1="11.967844"
|
||||
y1="119.11808"
|
||||
x2="51.413385"
|
||||
y2="80.482086"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1272"
|
||||
x1="118.66497"
|
||||
y1="45.70058"
|
||||
x2="90.28563"
|
||||
y2="62.493129"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1270" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1323"
|
||||
id="linearGradient1231"
|
||||
x1="17.696665"
|
||||
y1="120.74315"
|
||||
x2="94.698939"
|
||||
y2="120.74315"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1221"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1219" />
|
||||
<stop
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;"
|
||||
offset="0.073255815"
|
||||
id="stop1321" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.65260679"
|
||||
id="stop1320" />
|
||||
<stop
|
||||
style="stop-color:#fff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop1220" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop1223" />
|
||||
<stop
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;"
|
||||
offset="0.50000000"
|
||||
id="stop1722" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1224" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1274" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1275" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;"
|
||||
offset="0.00000000"
|
||||
id="stop1324" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1325" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient829"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
r="248.40302"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;"
|
||||
offset="0.00000000"
|
||||
id="stop827" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;"
|
||||
offset="0.36585677"
|
||||
id="stop830" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;"
|
||||
offset="0.47107276"
|
||||
id="stop847" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop828" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient909"
|
||||
id="linearGradient907"
|
||||
x1="0.50000000"
|
||||
y1="0.66667551"
|
||||
x2="0.50000000"
|
||||
y2="-1.7333326" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="0.00000000"
|
||||
id="stop910" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;"
|
||||
offset="1.0000000"
|
||||
id="stop913" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1309"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2570"
|
||||
id="linearGradient1308"
|
||||
x1="-0.0028122679"
|
||||
y1="1365.4825"
|
||||
x2="64.30938"
|
||||
y2="1365.4825"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient38856"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38858"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38860"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38862"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38864"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38866"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient38868"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.9390625"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:cy="320"
|
||||
inkscape:window-width="973"
|
||||
inkscape:window-height="820"
|
||||
inkscape:window-x="293"
|
||||
inkscape:window-y="105"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Background"
|
||||
style="display:block">
|
||||
<rect
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
|
||||
id="topbluebox"
|
||||
width="853.33331"
|
||||
height="120"
|
||||
x="0"
|
||||
y="1.8947807e-15" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
id="path654"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1085"
|
||||
transform="translate(689.36448,-10.40511)">
|
||||
<g
|
||||
id="g1394"
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
|
||||
<ellipse
|
||||
id="path898"
|
||||
style="opacity:0.69398911;fill:url(#radialGradient38856);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
id="ball1"
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
id="g1310"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
style="fill:url(#linearGradient1221)">
|
||||
<path
|
||||
style="fill:url(#linearGradient38858);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
id="path1278"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38860);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
id="path1283"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38862);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
id="path1286"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38864);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
id="path1295"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38866);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
id="path1300"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient38868);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
id="path1304"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
id="path1217"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
id="path1269"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
id="path1271"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
id="path1276"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
id="path1317"
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Title">
|
||||
<text
|
||||
x="48"
|
||||
y="74.666664"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text48">
|
||||
<tspan
|
||||
id="tspan1"
|
||||
sodipodi:role="line"
|
||||
y="74.666664"
|
||||
x="48"
|
||||
style="stroke-width:3.20000017pt">inkscape_gtkmm Architecture</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text3025"
|
||||
y="168.88889"
|
||||
x="57.142857"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:139.99999762%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan68"
|
||||
sodipodi:role="line"
|
||||
y="168.88889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt">* Very much a work-in-progress</tspan><tspan
|
||||
id="tspan69"
|
||||
sodipodi:role="line"
|
||||
y="204.72888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + top level architecture still incomplete</tspan><tspan
|
||||
id="tspan70"
|
||||
sodipodi:role="line"
|
||||
y="240.56888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan71"
|
||||
sodipodi:role="line"
|
||||
y="276.40887"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt">* Inkscape::Application</tspan><tspan
|
||||
id="tspan72"
|
||||
sodipodi:role="line"
|
||||
y="312.24887"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Modelled after current Inkscape::Application struct</tspan><tspan
|
||||
id="tspan73"
|
||||
sodipodi:role="line"
|
||||
y="348.0889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Inkscape::ApplicationImpl allows 'interface hiding'</tspan><tspan
|
||||
id="tspan74"
|
||||
sodipodi:role="line"
|
||||
y="383.92889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> - Helps keep *.h include hierarchy trim and clean</tspan><tspan
|
||||
id="tspan75"
|
||||
sodipodi:role="line"
|
||||
y="419.76889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> - Subclasses Gtk::Window</tspan><tspan
|
||||
id="tspan76"
|
||||
sodipodi:role="line"
|
||||
y="455.60889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> !! problem, only one Window per application</tspan><tspan
|
||||
id="tspan77"
|
||||
sodipodi:role="line"
|
||||
y="491.44888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> - No code for creating/managing documents</tspan><tspan
|
||||
id="tspan78"
|
||||
sodipodi:role="line"
|
||||
y="527.28888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan79"
|
||||
sodipodi:role="line"
|
||||
y="563.12891"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt" /></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Drawing Area" />
|
||||
</svg>
|
After Width: | Height: | Size: 40 KiB |
591
doc/NewAppArchitecture/09-future-capabilities.svg
Normal file
|
@ -0,0 +1,591 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="09-future-capabilities.svg"
|
||||
height="480pt"
|
||||
width="640pt"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
sodipodi:version="0.32"
|
||||
id="svg586"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleOutL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path2817"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleInL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleInL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M -4.9237333,0 2.4576,-4.2666667 v 8.5333334 z"
|
||||
id="path2823"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow2L"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2L">
|
||||
<path
|
||||
d="M 4.363143,4.732916 -8.456553,0.01878889 4.3631437,-4.6953372 c -2.0480514,2.7832182 -2.0362505,6.5911436 -7e-7,9.4282532 z"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.73333335;stroke-linejoin:round"
|
||||
id="path2863"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
id="stop2571"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2572"
|
||||
offset="0.58504134"
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop2573"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="114.57422"
|
||||
x2="53.030737"
|
||||
y1="20.687101"
|
||||
x1="77.599106"
|
||||
id="linearGradient1322"
|
||||
xlink:href="#linearGradient1218"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="58.199241"
|
||||
x2="33.266399"
|
||||
y1="30.563196"
|
||||
x1="59.491886"
|
||||
id="linearGradient1318"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.004208,0.995809)"
|
||||
y2="0.12454049"
|
||||
x2="0.41986585"
|
||||
y1="1.9347328"
|
||||
x1="0.45376351"
|
||||
id="linearGradient1307"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.006361,0.993679)"
|
||||
y2="0.11846013"
|
||||
x2="0.41548476"
|
||||
y1="1.9667202"
|
||||
x1="0.45009527"
|
||||
id="linearGradient1306"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.002016,0.997989)"
|
||||
y2="0.13959341"
|
||||
x2="0.42603236"
|
||||
y1="1.8676205"
|
||||
x1="0.45839140"
|
||||
id="linearGradient1305"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="80.482086"
|
||||
x2="51.413385"
|
||||
y1="119.11808"
|
||||
x1="11.967844"
|
||||
id="linearGradient1277"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="62.493129"
|
||||
x2="90.28563"
|
||||
y1="45.70058"
|
||||
x1="118.66497"
|
||||
id="linearGradient1272"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1270"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="120.74315"
|
||||
x2="94.698939"
|
||||
y1="120.74315"
|
||||
x1="17.696665"
|
||||
id="linearGradient1231"
|
||||
xlink:href="#linearGradient1323"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="28.120696"
|
||||
x2="130.70353"
|
||||
y1="170.27164"
|
||||
x1="27.318817"
|
||||
id="linearGradient1221"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
id="stop1219"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1321"
|
||||
offset="0.073255815"
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1320"
|
||||
offset="0.65260679"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1220"
|
||||
offset="1"
|
||||
style="stop-color:#fff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
id="stop1223"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1722"
|
||||
offset="0.50000000"
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop1224"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
id="stop1274"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1275"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
id="stop1324"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;" />
|
||||
<stop
|
||||
id="stop1325"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
fy="93.75"
|
||||
fx="303.7037"
|
||||
r="248.40302"
|
||||
cy="281.25"
|
||||
cx="296.2963"
|
||||
id="radialGradient829"
|
||||
xlink:href="#linearGradient826"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
id="stop827"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;" />
|
||||
<stop
|
||||
id="stop830"
|
||||
offset="0.36585677"
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;" />
|
||||
<stop
|
||||
id="stop847"
|
||||
offset="0.47107276"
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;" />
|
||||
<stop
|
||||
id="stop828"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="-1.7333326"
|
||||
x2="0.50000000"
|
||||
y1="0.66667551"
|
||||
x1="0.50000000"
|
||||
id="linearGradient907"
|
||||
xlink:href="#linearGradient909" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
id="stop910"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
<stop
|
||||
id="stop913"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1309"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="1365.4825"
|
||||
x2="64.30938"
|
||||
y1="1365.4825"
|
||||
x1="-0.0028122679"
|
||||
id="linearGradient1308"
|
||||
xlink:href="#linearGradient2570"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient39108"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39110"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39112"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39114"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39116"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39118"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39120"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:guide-bbox="true"
|
||||
showguides="true"
|
||||
inkscape:window-y="105"
|
||||
inkscape:window-x="293"
|
||||
inkscape:window-height="820"
|
||||
inkscape:window-width="973"
|
||||
inkscape:cy="320"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:zoom="0.9390625"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:block"
|
||||
inkscape:label="Background"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
y="1.8947807e-15"
|
||||
x="0"
|
||||
height="120"
|
||||
width="853.33331"
|
||||
id="topbluebox"
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path654"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="translate(689.36448,-10.40511)"
|
||||
id="g1085">
|
||||
<g
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
|
||||
id="g1394">
|
||||
<ellipse
|
||||
style="opacity:0.69398911;fill:url(#radialGradient39108);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
id="path898"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
id="ball1"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:url(#linearGradient1221)"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
id="g1310">
|
||||
<path
|
||||
id="path1278"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
style="fill:url(#linearGradient39110);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1283"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
style="fill:url(#linearGradient39112);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1286"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
style="fill:url(#linearGradient39114);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1295"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
style="fill:url(#linearGradient39116);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1300"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
style="fill:url(#linearGradient39118);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1304"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
style="fill:url(#linearGradient39120);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1217"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1269"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1271"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1276"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
id="path1317"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Title"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<text
|
||||
id="text48"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
y="74.666664"
|
||||
x="48">
|
||||
<tspan
|
||||
id="tspan2"
|
||||
sodipodi:role="line"
|
||||
y="74.666664"
|
||||
x="48"
|
||||
style="stroke-width:3.20000017pt">Future Capabilities Desired</tspan>
|
||||
</text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:139.99999762%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="57.142857"
|
||||
y="168.88889"
|
||||
id="text3025"><tspan
|
||||
id="tspan92"
|
||||
sodipodi:role="line"
|
||||
y="168.88889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt">* Make it easier to have multiple run-modes</tspan><tspan
|
||||
id="tspan93"
|
||||
sodipodi:role="line"
|
||||
y="204.72888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Commandline mode (--no-gui)</tspan><tspan
|
||||
id="tspan94"
|
||||
sodipodi:role="line"
|
||||
y="240.56888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Presentation mode (inkview *.svg)</tspan><tspan
|
||||
id="tspan95"
|
||||
sodipodi:role="line"
|
||||
y="276.40887"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Old Gtk+ interface (--old-gui)</tspan><tspan
|
||||
id="tspan96"
|
||||
sodipodi:role="line"
|
||||
y="312.24887"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + New Gtkmm interface (--new-gui)</tspan><tspan
|
||||
id="tspan97"
|
||||
sodipodi:role="line"
|
||||
y="348.0889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Whiteboard interface (inkboard)</tspan><tspan
|
||||
id="tspan98"
|
||||
sodipodi:role="line"
|
||||
y="383.92889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Gimp-style interface?</tspan><tspan
|
||||
id="tspan99"
|
||||
sodipodi:role="line"
|
||||
y="419.76889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + GUI testing mode?</tspan><tspan
|
||||
id="tspan100"
|
||||
sodipodi:role="line"
|
||||
y="455.60889"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Animation playing mode?</tspan><tspan
|
||||
id="tspan101"
|
||||
sodipodi:role="line"
|
||||
y="491.44888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + More...?</tspan><tspan
|
||||
id="tspan102"
|
||||
sodipodi:role="line"
|
||||
y="527.28888"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan103"
|
||||
sodipodi:role="line"
|
||||
y="563.12891"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt">* Inkscape::Application should be run-mode neutral</tspan><tspan
|
||||
id="tspan104"
|
||||
sodipodi:role="line"
|
||||
y="598.96887"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt"> + Provide high level services / registries for all run modes</tspan><tspan
|
||||
id="tspan105"
|
||||
sodipodi:role="line"
|
||||
y="634.8089"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan106"
|
||||
sodipodi:role="line"
|
||||
y="670.64886"
|
||||
x="57.142857"
|
||||
style="stroke-width:1.06666669pt" /></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Drawing Area"
|
||||
id="layer3"
|
||||
inkscape:groupmode="layer" />
|
||||
</svg>
|
After Width: | Height: | Size: 40 KiB |
609
doc/NewAppArchitecture/10-future-main.svg
Normal file
|
@ -0,0 +1,609 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="10-future-main.svg"
|
||||
height="480pt"
|
||||
width="640pt"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
sodipodi:version="0.32"
|
||||
id="svg586"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker396"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path397"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker394"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path395"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker391"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path392"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker319"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path320"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleOutL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path224"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
id="stop2571"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2572"
|
||||
offset="0.58504134"
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop2573"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="114.57422"
|
||||
x2="53.030737"
|
||||
y1="20.687101"
|
||||
x1="77.599106"
|
||||
id="linearGradient1322"
|
||||
xlink:href="#linearGradient1218"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="58.199241"
|
||||
x2="33.266399"
|
||||
y1="30.563196"
|
||||
x1="59.491886"
|
||||
id="linearGradient1318"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.004208,0.995809)"
|
||||
y2="0.12454049"
|
||||
x2="0.41986585"
|
||||
y1="1.9347328"
|
||||
x1="0.45376351"
|
||||
id="linearGradient1307"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.006361,0.993679)"
|
||||
y2="0.11846013"
|
||||
x2="0.41548476"
|
||||
y1="1.9667202"
|
||||
x1="0.45009527"
|
||||
id="linearGradient1306"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.002016,0.997989)"
|
||||
y2="0.13959341"
|
||||
x2="0.42603236"
|
||||
y1="1.8676205"
|
||||
x1="0.45839140"
|
||||
id="linearGradient1305"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="80.482086"
|
||||
x2="51.413385"
|
||||
y1="119.11808"
|
||||
x1="11.967844"
|
||||
id="linearGradient1277"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="62.493129"
|
||||
x2="90.28563"
|
||||
y1="45.70058"
|
||||
x1="118.66497"
|
||||
id="linearGradient1272"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1270"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="120.74315"
|
||||
x2="94.698939"
|
||||
y1="120.74315"
|
||||
x1="17.696665"
|
||||
id="linearGradient1231"
|
||||
xlink:href="#linearGradient1323"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="28.120696"
|
||||
x2="130.70353"
|
||||
y1="170.27164"
|
||||
x1="27.318817"
|
||||
id="linearGradient1221"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
id="stop1219"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1321"
|
||||
offset="0.073255815"
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1320"
|
||||
offset="0.65260679"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1220"
|
||||
offset="1"
|
||||
style="stop-color:#fff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
id="stop1223"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1722"
|
||||
offset="0.50000000"
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop1224"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
id="stop1274"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1275"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
id="stop1324"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;" />
|
||||
<stop
|
||||
id="stop1325"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
fy="93.75"
|
||||
fx="303.7037"
|
||||
r="248.40302"
|
||||
cy="281.25"
|
||||
cx="296.2963"
|
||||
id="radialGradient829"
|
||||
xlink:href="#linearGradient826"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
id="stop827"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;" />
|
||||
<stop
|
||||
id="stop830"
|
||||
offset="0.36585677"
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;" />
|
||||
<stop
|
||||
id="stop847"
|
||||
offset="0.47107276"
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;" />
|
||||
<stop
|
||||
id="stop828"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="-1.7333326"
|
||||
x2="0.50000000"
|
||||
y1="0.66667551"
|
||||
x1="0.50000000"
|
||||
id="linearGradient907"
|
||||
xlink:href="#linearGradient909" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
id="stop910"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
<stop
|
||||
id="stop913"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1309"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="1365.4825"
|
||||
x2="64.30938"
|
||||
y1="1365.4825"
|
||||
x1="-0.0028122679"
|
||||
id="linearGradient1308"
|
||||
xlink:href="#linearGradient2570"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient39364"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39366"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39368"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39370"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39372"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39374"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39376"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:guide-bbox="true"
|
||||
showguides="true"
|
||||
inkscape:window-y="71"
|
||||
inkscape:window-x="133"
|
||||
inkscape:window-height="821"
|
||||
inkscape:window-width="968"
|
||||
inkscape:cy="320"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:zoom="0.940625"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:block"
|
||||
inkscape:label="Background"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
y="1.8947807e-15"
|
||||
x="0"
|
||||
height="120"
|
||||
width="853.33331"
|
||||
id="topbluebox"
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path654"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="translate(689.36448,-10.40511)"
|
||||
id="g1085">
|
||||
<g
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
|
||||
id="g1394">
|
||||
<ellipse
|
||||
style="opacity:0.69398911;fill:url(#radialGradient39364);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
id="path898"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
id="ball1"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:url(#linearGradient1221)"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
id="g1310">
|
||||
<path
|
||||
id="path1278"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
style="fill:url(#linearGradient39366);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1283"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
style="fill:url(#linearGradient39368);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1286"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
style="fill:url(#linearGradient39370);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1295"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
style="fill:url(#linearGradient39372);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1300"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
style="fill:url(#linearGradient39374);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1304"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
style="fill:url(#linearGradient39376);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1217"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1269"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1271"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1276"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
id="path1317"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Title"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<text
|
||||
id="text48"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
y="74.666664"
|
||||
x="48">
|
||||
<tspan
|
||||
id="tspan1"
|
||||
sodipodi:role="line"
|
||||
y="74.666664"
|
||||
x="48"
|
||||
style="stroke-width:3.20000017pt">Future main()</tspan>
|
||||
</text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="68.004684"
|
||||
y="204.63853"
|
||||
id="text74"><tspan
|
||||
id="tspan46"
|
||||
sodipodi:role="line"
|
||||
y="204.63853"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">int main(int argc, char *argv[])</tspan><tspan
|
||||
id="tspan47"
|
||||
sodipodi:role="line"
|
||||
y="235.35854"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">{</tspan><tspan
|
||||
id="tspan48"
|
||||
sodipodi:role="line"
|
||||
y="266.07855"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> Inkscape::Application app(argc, argv);</tspan><tspan
|
||||
id="tspan49"
|
||||
sodipodi:role="line"
|
||||
y="296.79855"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan50"
|
||||
sodipodi:role="line"
|
||||
y="327.51855"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> return app.run();</tspan><tspan
|
||||
id="tspan51"
|
||||
sodipodi:role="line"
|
||||
y="358.23856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">}</tspan><tspan
|
||||
id="tspan52"
|
||||
sodipodi:role="line"
|
||||
y="388.95856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan53"
|
||||
sodipodi:role="line"
|
||||
y="419.67856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan54"
|
||||
sodipodi:role="line"
|
||||
y="450.39856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">* All logic moved inside Inkscape::Application</tspan><tspan
|
||||
id="tspan55"
|
||||
sodipodi:role="line"
|
||||
y="481.11856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + popt, homedir path detection, prefs, extensions, etc.</tspan><tspan
|
||||
id="tspan56"
|
||||
sodipodi:role="line"
|
||||
y="511.83856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Run mode handling</tspan><tspan
|
||||
id="tspan57"
|
||||
sodipodi:role="line"
|
||||
y="542.55853"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan58"
|
||||
sodipodi:role="line"
|
||||
y="573.27856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">* Could also include a definition of WinMain here if needed</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Drawing Area"
|
||||
id="layer3"
|
||||
inkscape:groupmode="layer" />
|
||||
</svg>
|
After Width: | Height: | Size: 40 KiB |
614
doc/NewAppArchitecture/11-future-ink-app.svg
Normal file
|
@ -0,0 +1,614 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg586"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
width="640pt"
|
||||
height="480pt"
|
||||
sodipodi:docname="11-future-ink-app.svg"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker396"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path397"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker394"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path395"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker391"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path392"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker319"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path320"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="TriangleOutL"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="TriangleOutL"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path224"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop2571" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;"
|
||||
offset="0.58504134"
|
||||
id="stop2572" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop2573" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1218"
|
||||
id="linearGradient1322"
|
||||
x1="77.599106"
|
||||
y1="20.687101"
|
||||
x2="53.030737"
|
||||
y2="114.57422"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1318"
|
||||
x1="59.491886"
|
||||
y1="30.563196"
|
||||
x2="33.266399"
|
||||
y2="58.199241"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1307"
|
||||
x1="0.45376351"
|
||||
y1="1.9347328"
|
||||
x2="0.41986585"
|
||||
y2="0.12454049"
|
||||
gradientTransform="scale(1.004208,0.995809)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1306"
|
||||
x1="0.45009527"
|
||||
y1="1.9667202"
|
||||
x2="0.41548476"
|
||||
y2="0.11846013"
|
||||
gradientTransform="scale(1.006361,0.993679)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1305"
|
||||
x1="0.45839140"
|
||||
y1="1.8676205"
|
||||
x2="0.42603236"
|
||||
y2="0.13959341"
|
||||
gradientTransform="scale(1.002016,0.997989)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1277"
|
||||
x1="11.967844"
|
||||
y1="119.11808"
|
||||
x2="51.413385"
|
||||
y2="80.482086"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1273"
|
||||
id="linearGradient1272"
|
||||
x1="118.66497"
|
||||
y1="45.70058"
|
||||
x2="90.28563"
|
||||
y2="62.493129"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1270" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1323"
|
||||
id="linearGradient1231"
|
||||
x1="17.696665"
|
||||
y1="120.74315"
|
||||
x2="94.698939"
|
||||
y2="120.74315"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1221"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1219" />
|
||||
<stop
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;"
|
||||
offset="0.073255815"
|
||||
id="stop1321" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||
offset="0.65260679"
|
||||
id="stop1320" />
|
||||
<stop
|
||||
style="stop-color:#fff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop1220" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop1223" />
|
||||
<stop
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;"
|
||||
offset="0.50000000"
|
||||
id="stop1722" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1224" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.00000000"
|
||||
id="stop1274" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1275" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;"
|
||||
offset="0.00000000"
|
||||
id="stop1324" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop1325" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient829"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
r="248.40302"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;"
|
||||
offset="0.00000000"
|
||||
id="stop827" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;"
|
||||
offset="0.36585677"
|
||||
id="stop830" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;"
|
||||
offset="0.47107276"
|
||||
id="stop847" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;"
|
||||
offset="1.0000000"
|
||||
id="stop828" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient909"
|
||||
id="linearGradient907"
|
||||
x1="0.50000000"
|
||||
y1="0.66667551"
|
||||
x2="0.50000000"
|
||||
y2="-1.7333326" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;"
|
||||
offset="0.00000000"
|
||||
id="stop910" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;"
|
||||
offset="1.0000000"
|
||||
id="stop913" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient1309"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2570"
|
||||
id="linearGradient1308"
|
||||
x1="-0.0028122679"
|
||||
y1="1365.4825"
|
||||
x2="64.30938"
|
||||
y2="1365.4825"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient39622"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39624"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39626"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39628"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39630"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39632"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient39634"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.940625"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:cy="320"
|
||||
inkscape:window-width="968"
|
||||
inkscape:window-height="821"
|
||||
inkscape:window-x="291"
|
||||
inkscape:window-y="25"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Background"
|
||||
style="display:block">
|
||||
<rect
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt"
|
||||
id="topbluebox"
|
||||
width="853.33331"
|
||||
height="120"
|
||||
x="0"
|
||||
y="1.8947807e-15" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
id="path654"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1085"
|
||||
transform="translate(689.36448,-10.40511)">
|
||||
<g
|
||||
id="g1394"
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)">
|
||||
<ellipse
|
||||
id="path898"
|
||||
style="opacity:0.69398911;fill:url(#radialGradient39622);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
id="ball1"
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
id="g1310"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
style="fill:url(#linearGradient1221)">
|
||||
<path
|
||||
style="fill:url(#linearGradient39624);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
id="path1278"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient39626);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
id="path1283"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient39628);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
id="path1286"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient39630);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
id="path1295"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient39632);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
id="path1300"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient39634);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
id="path1304"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
id="path1217"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
id="path1269"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
id="path1271"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
id="path1276"
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
id="path1317"
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Title">
|
||||
<text
|
||||
x="48"
|
||||
y="74.666664"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text48">
|
||||
<tspan
|
||||
id="tspan1"
|
||||
sodipodi:role="line"
|
||||
y="74.666664"
|
||||
x="48"
|
||||
style="stroke-width:3.20000017pt">Future Inkscape::Application</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text74"
|
||||
y="204.63853"
|
||||
x="68.004684"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan15"
|
||||
sodipodi:role="line"
|
||||
y="204.63853"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">Inkscape::Application </tspan><tspan
|
||||
id="tspan16"
|
||||
sodipodi:role="line"
|
||||
y="235.35854"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Option handling</tspan><tspan
|
||||
id="tspan17"
|
||||
sodipodi:role="line"
|
||||
y="266.07855"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> - Select run mode from $arg[0] and/or opts given</tspan><tspan
|
||||
id="tspan18"
|
||||
sodipodi:role="line"
|
||||
y="296.79855"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Paths (homedir, config file dir, share dir, etc.)</tspan><tspan
|
||||
id="tspan19"
|
||||
sodipodi:role="line"
|
||||
y="327.51855"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Preferences</tspan><tspan
|
||||
id="tspan20"
|
||||
sodipodi:role="line"
|
||||
y="358.23856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Extensions registry</tspan><tspan
|
||||
id="tspan21"
|
||||
sodipodi:role="line"
|
||||
y="388.95856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Primary Run Mode object creation/maintenance</tspan><tspan
|
||||
id="tspan22"
|
||||
sodipodi:role="line"
|
||||
y="419.67856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> Inkscape::Application::RunMode* runmode;</tspan><tspan
|
||||
id="tspan23"
|
||||
sodipodi:role="line"
|
||||
y="450.39856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan24"
|
||||
sodipodi:role="line"
|
||||
y="481.11856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt">Inkscape::Application::RunMode</tspan><tspan
|
||||
id="tspan25"
|
||||
sodipodi:role="line"
|
||||
y="511.83856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Each run mode will subclass this base class</tspan><tspan
|
||||
id="tspan26"
|
||||
sodipodi:role="line"
|
||||
y="542.55853"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> + Provides an 'implementation hiding' ability similar</tspan><tspan
|
||||
id="tspan27"
|
||||
sodipodi:role="line"
|
||||
y="573.27856"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt"> to Inkscape::ApplicationImpl in inkscape_gtkmm</tspan><tspan
|
||||
id="tspan28"
|
||||
sodipodi:role="line"
|
||||
y="603.99854"
|
||||
x="68.004684"
|
||||
style="stroke-width:1.06666669pt" /></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Drawing Area" />
|
||||
</svg>
|
After Width: | Height: | Size: 41 KiB |
1048
doc/NewAppArchitecture/12-future-run-modes.svg
Normal file
After Width: | Height: | Size: 59 KiB |
1549
doc/NewAppArchitecture/13-future-ink-app-editor.svg
Normal file
After Width: | Height: | Size: 83 KiB |
619
doc/NewAppArchitecture/14-evolving.svg
Normal file
|
@ -0,0 +1,619 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="14-evolving.svg"
|
||||
height="480pt"
|
||||
width="640pt"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
sodipodi:version="0.32"
|
||||
id="svg586"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs588">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker396"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path397"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker394"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path395"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker391"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path392"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker319"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path320"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="TriangleOutL"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutL">
|
||||
<path
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
|
||||
d="M 4.9237333,0 -2.4576,4.2666667 v -8.5333334 z"
|
||||
id="path224"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<linearGradient
|
||||
id="linearGradient2570">
|
||||
<stop
|
||||
id="stop2571"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop2572"
|
||||
offset="0.58504134"
|
||||
style="stop-color:#000000;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop2573"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="114.57422"
|
||||
x2="53.030737"
|
||||
y1="20.687101"
|
||||
x1="77.599106"
|
||||
id="linearGradient1322"
|
||||
xlink:href="#linearGradient1218"
|
||||
gradientTransform="matrix(1.3228549,0,0,1.2809931,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="58.199241"
|
||||
x2="33.266399"
|
||||
y1="30.563196"
|
||||
x1="59.491886"
|
||||
id="linearGradient1318"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.7409899,0,0,0.97333594,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.004208,0.995809)"
|
||||
y2="0.12454049"
|
||||
x2="0.41986585"
|
||||
y1="1.9347328"
|
||||
x1="0.45376351"
|
||||
id="linearGradient1307"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.006361,0.993679)"
|
||||
y2="0.11846013"
|
||||
x2="0.41548476"
|
||||
y1="1.9667202"
|
||||
x1="0.45009527"
|
||||
id="linearGradient1306"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
gradientTransform="scale(1.002016,0.997989)"
|
||||
y2="0.13959341"
|
||||
x2="0.42603236"
|
||||
y1="1.8676205"
|
||||
x1="0.45839140"
|
||||
id="linearGradient1305"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="80.482086"
|
||||
x2="51.413385"
|
||||
y1="119.11808"
|
||||
x1="11.967844"
|
||||
id="linearGradient1277"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.8036348,0,0,1.2393329,-37.611189,-4.4599008)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="62.493129"
|
||||
x2="90.28563"
|
||||
y1="45.70058"
|
||||
x1="118.66497"
|
||||
id="linearGradient1272"
|
||||
xlink:href="#linearGradient1273"
|
||||
gradientTransform="matrix(1.4554449,0,0,1.1642956,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1270"
|
||||
xlink:href="#linearGradient1222" />
|
||||
<linearGradient
|
||||
y2="120.74315"
|
||||
x2="94.698939"
|
||||
y1="120.74315"
|
||||
x1="17.696665"
|
||||
id="linearGradient1231"
|
||||
xlink:href="#linearGradient1323"
|
||||
gradientTransform="matrix(1.8150579,0,0,0.9336165,-21.540736,7.7941685)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="28.120696"
|
||||
x2="130.70353"
|
||||
y1="170.27164"
|
||||
x1="27.318817"
|
||||
id="linearGradient1221"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(1.0211162,0.97932047)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient1218">
|
||||
<stop
|
||||
id="stop1219"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1321"
|
||||
offset="0.073255815"
|
||||
style="stop-color:#323232;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1320"
|
||||
offset="0.65260679"
|
||||
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1220"
|
||||
offset="1"
|
||||
style="stop-color:#fff;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1222">
|
||||
<stop
|
||||
id="stop1223"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#0081ac;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1722"
|
||||
offset="0.50000000"
|
||||
style="stop-color:#006d91;stop-opacity:0.62745100;" />
|
||||
<stop
|
||||
id="stop1224"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1273">
|
||||
<stop
|
||||
id="stop1274"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop1275"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1323">
|
||||
<stop
|
||||
id="stop1324"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.77685952;" />
|
||||
<stop
|
||||
id="stop1325"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
fy="93.75"
|
||||
fx="303.7037"
|
||||
r="248.40302"
|
||||
cy="281.25"
|
||||
cx="296.2963"
|
||||
id="radialGradient829"
|
||||
xlink:href="#linearGradient826"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.29936853,0,0,0.15858773,4.3548661,98.117152)" />
|
||||
<linearGradient
|
||||
id="linearGradient826">
|
||||
<stop
|
||||
id="stop827"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.95294118;" />
|
||||
<stop
|
||||
id="stop830"
|
||||
offset="0.36585677"
|
||||
style="stop-color:#000000;stop-opacity:0.76078433;" />
|
||||
<stop
|
||||
id="stop847"
|
||||
offset="0.47107276"
|
||||
style="stop-color:#000000;stop-opacity:0.52941179;" />
|
||||
<stop
|
||||
id="stop828"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ffffff;stop-opacity:0.00000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="-1.7333326"
|
||||
x2="0.50000000"
|
||||
y1="0.66667551"
|
||||
x1="0.50000000"
|
||||
id="linearGradient907"
|
||||
xlink:href="#linearGradient909" />
|
||||
<linearGradient
|
||||
id="linearGradient909">
|
||||
<stop
|
||||
id="stop910"
|
||||
offset="0.00000000"
|
||||
style="stop-color:#000000;stop-opacity:0.00000000;" />
|
||||
<stop
|
||||
id="stop913"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#000000;stop-opacity:0.17000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1309"
|
||||
xlink:href="#linearGradient1222"
|
||||
gradientTransform="scale(2.8444445,0.4)"
|
||||
x1="0"
|
||||
y1="4.7369516e-15"
|
||||
x2="300"
|
||||
y2="4.7369516e-15"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
y2="1365.4825"
|
||||
x2="64.30938"
|
||||
y1="1365.4825"
|
||||
x1="-0.0028122679"
|
||||
id="linearGradient1308"
|
||||
xlink:href="#linearGradient2570"
|
||||
gradientTransform="scale(13.227991,0.0860129)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient826"
|
||||
id="radialGradient40804"
|
||||
cx="296.2963"
|
||||
cy="281.25"
|
||||
fx="303.7037"
|
||||
fy="93.75"
|
||||
r="248.40302"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.4203424,0,0,0.08699077,-33.810677,100.89451)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient40806"
|
||||
x1="33.344169"
|
||||
y1="164.17808"
|
||||
x2="131.82116"
|
||||
y2="28.775105"
|
||||
gradientTransform="scale(1.0839555,1.0496536)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient40808"
|
||||
x1="31.731446"
|
||||
y1="165.85049"
|
||||
x2="131.57971"
|
||||
y2="28.562063"
|
||||
gradientTransform="scale(1.0848907,1.0487488)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient40810"
|
||||
x1="35.171777"
|
||||
y1="162.0032"
|
||||
x2="131.8238"
|
||||
y2="29.109513"
|
||||
gradientTransform="scale(1.0846262,1.0490045)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient40812"
|
||||
x1="37.676606"
|
||||
y1="159.47478"
|
||||
x2="132.33793"
|
||||
y2="29.318235"
|
||||
gradientTransform="scale(1.0823063,1.051253)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient40814"
|
||||
x1="29.920773"
|
||||
y1="167.66146"
|
||||
x2="131.16846"
|
||||
y2="28.448861"
|
||||
gradientTransform="scale(1.0869998,1.0467139)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1222"
|
||||
id="linearGradient40816"
|
||||
x1="27.318817"
|
||||
y1="170.27164"
|
||||
x2="130.70353"
|
||||
y2="28.120696"
|
||||
gradientTransform="scale(1.0891906,1.0446085)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:guide-bbox="true"
|
||||
showguides="true"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-x="291"
|
||||
inkscape:window-height="821"
|
||||
inkscape:window-width="968"
|
||||
inkscape:cy="320"
|
||||
inkscape:cx="426.66667"
|
||||
inkscape:zoom="0.940625"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:block"
|
||||
inkscape:label="Background"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
y="1.8947807e-15"
|
||||
x="0"
|
||||
height="120"
|
||||
width="853.33331"
|
||||
id="topbluebox"
|
||||
style="font-size:12px;fill:url(#linearGradient1309);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.20000017pt" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path654"
|
||||
d="M -0.03652902,117.55657 850.68323,117.34163"
|
||||
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:5.31674433;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="translate(689.36448,-10.40511)"
|
||||
id="g1085">
|
||||
<g
|
||||
transform="matrix(0.875802,0,0,0.869278,1.1184885,-8.4967275)"
|
||||
id="g1394">
|
||||
<ellipse
|
||||
style="opacity:0.69398911;fill:url(#radialGradient40804);stroke-width:0.84729707;stroke-dashoffset:0"
|
||||
id="path898"
|
||||
cx="92.292046"
|
||||
cy="126.99174"
|
||||
rx="126.10272"
|
||||
ry="26.097233" />
|
||||
<ellipse
|
||||
style="fill:url(#radialGradient829);stroke-width:0.96546245;stroke-dashoffset:0"
|
||||
id="ball1"
|
||||
cx="94.165428"
|
||||
cy="145.69347"
|
||||
rx="89.810562"
|
||||
ry="47.576321" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:url(#linearGradient1221)"
|
||||
transform="matrix(1.822197,0,0,1.662749,-192.00875,13.084299)"
|
||||
id="g1310">
|
||||
<path
|
||||
id="path1278"
|
||||
d="m 148.55614,11.815593 c -2.18769,1e-6 -4.39029,0.823628 -6.06667,2.5 l -29.76666,29.8 c -1.64308,1.643032 -2.50068,3.78929 -2.53334,5.933333 -4.6e-4,0.03598 0,0.09736 0,0.133333 h 0.0667 c 0.57027,2.16974 15.28934,4.922713 16.93333,6.566667 2.48272,2.482738 -9.51602,4.317248 -7.03333,6.8 2.48271,2.482709 15.01704,4.783915 17.5,7.266669 2.48273,2.48272 -5.08275,5.11728 -2.6,7.6 2.48272,2.482753 10.81047,-0.609259 9.3,5.866667 3.35273,3.352736 10.34963,1.752736 15.03333,-1.6 2.48272,-2.482721 -4.74941,-2.250614 -2.26666,-4.733334 2.48272,-2.482752 8.75277,-2.494421 14.03333,-8.433335 -2.12548,-3.305654 -9.08274,-4.717259 -6.6,-7.2 2.48272,-2.482715 7.28509,-1.236886 17.7,-5.966667 5.08413,-2.309024 4.68613,-4.040355 4.66667,-6.166667 -4.1e-4,-0.04475 0,-0.08825 0,-0.133333 h -0.0333 c -0.0326,-2.144041 -0.85698,-4.290298 -2.5,-5.933333 l -29.8,-29.8 c -1.67637,-1.67637 -3.84565,-2.5 -6.03334,-2.5 z m -0.26667,3.866666 c 0.97256,0.02533 1.75986,0.768324 3.3,1.766667 l 14.06667,10.433333 c 0.15408,0.09991 0.29855,0.192996 0.43333,0.3 0.1348,0.10699 0.28452,0.220015 0.4,0.333334 0.11548,0.113111 0.20364,0.248218 0.3,0.366666 0.0961,0.118429 0.18984,0.244093 0.26667,0.366667 0.077,0.122774 0.14229,0.240765 0.2,0.366667 0.0577,0.126131 0.0949,0.238188 0.13333,0.366666 0.0386,0.128282 0.0808,0.270352 0.1,0.4 0.0193,0.12988 0.0333,0.269763 0.0333,0.4 l -8.33333,-4.033333 -0.83334,6.3 -4.6,-2.166667 -7.06666,4.733334 -2.73334,-9.333334 -3.46666,8.166667 -9.76667,0.966667 0.1,-4.333334 c 0,-1.042224 5.64516,-8.329604 9.06666,-10.066666 l 6.26667,-4.5 c 0.92408,-0.599006 1.54979,-0.848535 2.13333,-0.833334 z m -12.93333,42.6 c 4.43676,1.15063 9.37288,2.639674 13.33333,2.666667 l 0.16667,1.8 c -3.39138,-0.349579 -10.57471,-2.002379 -12.26667,-2.866667 z m 46.23333,7.9 c -0.67728,-0.02171 -1.31822,0.0462 -1.8,0.166667 -0.90833,0.226965 -5.321,0.331531 -4.96666,3.166667 3.89845,1.416876 9.92489,2.502007 10.63333,-0.333334 0.53176,-2.12593 -1.83484,-2.93489 -3.86667,-3 z m -50.96666,5.766669 c -0.61333,-0.07148 -1.21336,0.0042 -1.8,0.3 -2.34598,1.183349 -3.92502,3.81264 -1.73334,4.9 2.19191,1.08736 3.74516,-0.150741 5.66667,-1.5 1.92173,-1.349045 1.87228,-1.612875 1.73333,-2.133333 -0.26601,0.07094 -2.02669,-1.352235 -3.86666,-1.566667 z m 42.86666,0.466667 c -1.77199,0.708629 -1.75118,3.170389 -0.33333,4.233333 1.41748,1.063157 3.19156,0.375499 3.9,-0.333333 0.70902,-0.70863 -0.023,-3.19136 -3.56667,-3.9 z"
|
||||
style="fill:url(#linearGradient40806);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1283"
|
||||
d="m 147.16667,11.433333 c -3.48238,0.364902 -5.88303,3.345755 -8.33158,5.570373 -8.94544,9.133798 -18.09349,18.101949 -26.95799,27.294024 -1.44334,1.84378 -2.03035,4.015468 -2.31043,6.30227 5.03542,3.678658 11.71157,3.699536 17.06666,6.766667 -1.50817,2.381747 -5.17846,2.289571 -6.84097,4.663825 -1.44519,0.973702 0.60698,2.569614 1.6838,2.93719 4.47582,2.259905 9.5207,3.127075 13.9674,5.505719 2.30619,0.164974 2.15073,2.483836 0.6201,3.623175 -1.21232,1.221254 -3.08705,3.249751 -1.23288,4.771441 2.26675,1.575369 5.27199,1.144095 7.80255,2.065316 1.77826,0.975122 0.51639,2.738136 1.73334,3.966667 3.05603,2.396513 7.28787,1.973693 10.69445,0.606201 1.75151,-0.515126 3.34201,-1.653286 4.87221,-2.539534 1.47613,-1.720326 -0.82595,-2.9513 -2.13333,-3.666667 -0.85913,-1.425274 2.00009,-1.997097 2.97462,-2.675578 3.73665,-1.514529 7.36553,-3.267329 10.23683,-6.143331 1.79011,-1.105032 -0.83882,-2.676851 -1.67812,-3.547758 -1.55141,-1.15048 -3.58938,-1.860548 -4.56666,-3.633333 2.52043,-2.7807 6.7319,-2.262194 9.98204,-3.687561 3.90317,-0.992642 7.61596,-2.729652 11.05532,-4.741974 2.26951,-1.69135 1.67257,-4.636557 1.22998,-7.021773 -1.61839,-5.025589 -6.41885,-8.01283 -9.81146,-11.814386 -7.61983,-7.514247 -15.1255,-15.17228 -22.81612,-22.597384 -2.05244,-1.578655 -4.64151,-2.423668 -7.23976,-2.003589 z M 149.5,16.766667 c 5.52064,4.046284 11.05387,8.077891 16.56667,12.133333 0.11539,1.103552 -2.90244,-1.172627 -4.0558,-1.481882 -1.41219,-0.420198 -3.8964,-2.894916 -3.5025,0.03341 -0.60562,1.192982 0.31151,5.203671 -1.4377,4.28052 -1.58183,-0.849857 -3.68447,-2.113891 -5.18058,-0.378679 -1.61892,1.082213 -3.23783,2.164425 -4.85676,3.246637 -0.9783,-3.377623 -1.95211,-6.756554 -2.93333,-10.133333 -1.34602,3.127884 -2.66477,6.267483 -4,9.4 -2.92222,0.288888 -5.84445,0.577778 -8.76667,0.866667 -0.20184,-2.166309 0.27133,-4.341771 1.77562,-5.878158 3.25057,-5.211552 8.66632,-8.395371 13.54451,-11.865011 0.95273,-0.564092 1.80847,-0.493262 2.84654,-0.223498 z m -8.63333,43.566666 c 2.34366,0.607254 4.78296,0.727797 7.16666,1.133334 -0.90625,1.084587 -3.14277,-0.32439 -4.56523,-0.371058 -1.8583,-0.406252 -3.7163,-0.80007 -5.4681,-1.562276 0.95555,0.266667 1.91111,0.533334 2.86667,0.8 z m 38.86666,5.4 c -2.15488,0.501536 -5.22675,0.793815 -5.5,3.566667 0.70833,1.029809 2.96093,1.412478 4.40801,1.688268 2.27503,0.363118 5.38493,1.181831 6.97878,-0.937576 1.36135,-1.898234 -0.67459,-4.313995 -2.78769,-4.178768 -1.02575,-0.350017 -2.04343,-0.268702 -3.0991,-0.138591 z m -51.03333,5.9 c -1.57612,1.085018 -3.71575,2.720281 -3.03333,4.9 1.61184,2.339234 4.94529,1.683368 6.78753,-0.0057 1.2184,-0.692559 3.25469,-2.021692 2.31247,-3.560997 -1.93436,-0.840999 -3.87915,-2.117169 -6.06667,-1.333334 z m 44.36667,0.333334 c -1.34895,0.891833 -1.89168,2.759628 -0.95675,4.109348 0.71622,1.795233 3.11379,1.982508 4.57991,1.004604 1.95986,-0.600235 1.10016,-3.109938 -0.33003,-3.844913 -0.72045,-0.899439 -2.36482,-1.335642 -3.29313,-1.269039 z"
|
||||
style="fill:url(#linearGradient40808);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1286"
|
||||
d="m 146.23333,12.866667 c -3.88385,1.702193 -6.61189,5.324961 -9.67052,8.210746 -7.86956,8.018198 -15.90416,15.90198 -23.69161,23.983409 -1.11331,1.428597 -1.72615,3.060044 -2.00453,4.839178 4.36,3.072638 10.04495,3.23545 14.7573,5.603266 1.5625,0.15548 3.26141,1.73801 1.81635,3.072207 -1.86501,1.91956 -5.15011,2.084779 -6.70699,4.291194 4.05269,2.923397 9.10625,3.602288 13.58014,5.613093 1.52915,1.119169 4.28812,1.21833 4.3532,3.553573 -0.41298,2.06712 -2.47344,3.267809 -3.36667,5.133334 1.94434,2.744072 5.94438,1.261888 8.50547,3.040805 1.3908,0.857738 1.00828,2.693049 1.62108,3.831047 3.2048,2.344549 7.71164,1.319869 10.94656,-0.558135 1.04365,-0.353733 3.89943,-1.626855 1.76272,-2.556043 -1.55651,-0.349067 -2.86028,-2.213166 -1.35103,-3.402938 3.84858,-2.931245 9.10998,-3.601158 12.55258,-7.214396 1.79927,-1.361045 -1.31628,-2.560541 -2.24828,-3.336495 -1.41778,-1.044797 -3.86698,-2.048091 -3.55577,-4.137179 2.35965,-3.274836 6.88107,-2.833411 10.31383,-4.263585 3.90311,-0.957377 7.67689,-2.630842 11.10878,-4.611597 2.18816,-1.940094 1.07405,-5.046756 0.32835,-7.371909 -3.93266,-5.513287 -9.35396,-9.75581 -13.9708,-14.686024 -5.91778,-5.783657 -11.65452,-11.813723 -17.68454,-17.444607 -2.14828,-1.370565 -4.63208,-2.556154 -7.20805,-1.62333 z m 2.3,2.233333 c 5.45973,2.578599 9.80753,6.890051 14.73244,10.347527 1.85084,1.664819 5.00363,2.778901 4.9009,5.71914 -1.78479,0.428996 -3.34725,-1.396857 -5.04898,-1.86837 -1.54021,-0.520034 -4.1213,-2.963549 -3.68846,0.16232 -0.54825,1.127161 0.22527,4.775461 -1.23798,4.170178 -1.53672,-0.653008 -3.2567,-1.905943 -4.87859,-1.758173 -2.31413,1.577535 -4.63724,3.142054 -6.94599,4.727378 -0.87266,-2.83558 -1.68407,-5.690403 -2.53334,-8.533333 -1.12707,2.260756 -1.98302,4.959333 -3.26666,6.966666 -3.47777,0.344565 -6.95563,0.688221 -10.43334,1.033334 0.0287,-2.531437 -0.43925,-5.398577 1.54821,-7.372648 3.13073,-5.303181 8.62883,-8.494145 13.35179,-12.127352 1.15867,-0.426692 2.35212,-1.253526 3.5,-1.466667 z m -13.76666,42.4 c 4.77393,1.272573 9.58904,2.318786 14.5,2.9 0.93608,1.872033 -0.34236,3.482335 -2.33168,2.565935 -3.62332,-0.734316 -7.25018,-1.727438 -10.80166,-2.699268 -0.26564,-0.514085 -3.09159,-3.378118 -1.36666,-2.766667 z m 45.16666,9.433333 c -1.51493,0.422114 -3.72691,0.290818 -4.26666,2.133334 2.90995,0.556827 6.05202,2.002088 8.9,0.466666 0.978,-1.977585 -1.92783,-2.538134 -3.31385,-2.645499 -0.43983,0.01517 -0.87966,0.03034 -1.31949,0.0455 z m -50.9,5.866667 c -1.16024,0.90047 -3.46737,3.083937 -1.02728,3.858837 2.25255,0.543858 3.96147,-1.380385 5.62728,-2.558837 -1.18522,-1.161836 -2.98479,-1.601218 -4.6,-1.3 z m 44.03334,0.733333 c -1.04902,2.027564 1.90687,4.021482 3.28133,2.230908 0.70415,-1.13156 -2.36473,-3.118333 -3.28133,-2.230908 z"
|
||||
style="fill:url(#linearGradient40810);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1295"
|
||||
d="m 146.66667,13.4 c -6.33172,3.543401 -10.68888,9.547281 -15.90063,14.447274 -5.8861,6.073656 -12.00588,11.974663 -17.74737,18.155152 -0.7305,1.178656 -2.18908,3.828459 -0.0714,4.248788 4.9013,2.576465 10.86092,2.972757 15.3194,6.215453 1.00861,2.475215 -2.05916,3.484953 -3.70454,4.477414 -1.7373,0.545523 -3.75405,2.175563 -0.84454,2.774326 4.83335,2.60598 10.58594,3.28132 15.01575,6.64826 1.43136,2.33294 -1.26292,4.394234 -2.23809,6.238069 0.0119,1.908953 2.8242,1.486185 4.14874,2.002826 2.29679,0.177914 4.75661,1.464231 4.98406,3.992952 0.7695,2.00242 3.5144,2.068656 5.37195,2.066153 2.47607,-0.312856 4.61313,-1.6278 6.86667,-2.6 -0.11425,-1.550102 -2.69456,-1.700315 -2.36667,-3.6 1.99363,-3.193298 6.06476,-3.869656 9.11608,-5.707796 1.73236,-0.750835 3.28599,-1.893245 4.45059,-3.392204 -1.92497,-2.280272 -5.74204,-3.012313 -6.11314,-6.406102 0.39022,-1.188208 2.2736,-2.314015 3.60639,-2.891301 5.6785,-2.143002 11.88985,-2.970298 17.10185,-6.270592 2.74324,-1.108432 1.83527,-4.538836 1.0317,-6.686009 -2.29624,-3.22589 -5.40132,-6.000174 -8.00828,-9.052576 -2.68656,-2.760044 -5.48876,-5.408427 -8.21852,-8.126754 1.12365,1.634362 -0.99109,2.422313 -2.21269,1.401868 -2.03118,-0.886068 -4.05629,-1.760173 -6.12064,-2.568534 C 160.05314,30.54272 159.67649,32.269964 159.3,34 c -2.55377,0.684822 -5.03322,-2.683187 -7.35336,-0.501311 -1.91379,1.060257 -3.40719,2.847058 -5.45058,3.513153 -1.46281,-0.265507 -1.26699,-3.243895 -2.01992,-4.618246 -0.44179,-3.083731 -1.2118,-2.404985 -2.14312,0.123134 -0.85365,1.59882 -1.21984,3.834303 -3.53335,3.298267 -3.08878,0.306225 -6.17762,0.611598 -9.26633,0.918336 0.0202,-3.177717 -0.28551,-6.766 2.22768,-9.171123 3.51639,-4.960964 8.70856,-8.341185 13.55479,-11.782731 1.62219,-0.752906 3.63701,-1.872712 5.13828,-0.273654 3.97373,2.727514 8.02021,5.285521 11.74591,8.327508 -3.19568,-3.018643 -6.19482,-6.317986 -9.51099,-9.164539 -1.87897,-0.938934 -3.8675,-2.092901 -6.02238,-1.268794 z m -11.83334,43.5 c 5.00075,0.984495 9.99566,2.003225 15,2.966667 0.20732,1.45664 0.46427,3.886308 -1.67313,3.831478 -4.16789,-0.795987 -8.38205,-1.956384 -12.49353,-3.031478 -0.61549,-0.980519 -2.50897,-2.472939 -1.9,-3.466667 0.35063,-0.05103 0.72399,-0.354699 1.06666,-0.3 z m 42.8,11.166667 c -1.73875,1.086025 2.33789,1.138186 3.27372,1.439238 1.30579,0.375237 4.48185,-0.551342 2.02628,-1.672572 -1.83243,-0.401834 -3.50784,-0.360679 -5.3,0.233334 z M 128.86667,73.8 c -2.17346,1.397366 -0.18414,3.053084 1.5865,1.699463 2.04828,-0.249261 2.08866,-2.343116 -0.17211,-2.051831 -0.54677,-0.07524 -0.99718,-0.0549 -1.41439,0.352368 z m 44.76666,1.133333 c 2.4133,2.30436 1.83777,-1.778179 0,-0.492892 0,0.102368 0,0.430964 0,0.492892 z"
|
||||
style="fill:url(#linearGradient40812);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1300"
|
||||
d="m 146.4,11 c -2.85517,0.532698 -4.88261,2.920832 -7.04143,4.696624 -9.46036,9.318687 -18.69953,18.903094 -28.02524,28.336709 -1.28513,2.140689 -2.02923,4.453081 -2.46666,6.9 4.02374,2.003945 8.08967,3.86007 12.47179,4.935568 1.05804,0.665393 4.69014,0.890135 3.49487,2.397766 -2.29866,1.221998 -5.17006,2.048868 -6.16666,4.733333 1.94556,3.411999 6.27529,3.61226 9.48467,5.236915 2.69399,1.065471 5.388,2.130945 8.08199,3.196418 0.0835,2.815831 -0.6308,1.873266 -2.05017,0.611648 -2.17089,-1.1027 -5.39205,-2.114404 -7.09766,0.274746 -1.55046,0.944625 -2.75719,3.349765 -1.57432,4.866099 2.21286,2.398176 6.00771,1.27668 8.06067,-0.779037 0.17795,-0.191378 -0.29693,2.877758 1.42073,3.193938 2.34275,1.346613 5.33929,0.970157 7.67409,2.299273 0.45283,1.979683 1.2508,4.221333 3.5739,4.531638 3.66844,1.48315 7.80683,0.39212 11.09794,-1.541311 1.39792,-0.760174 4.07797,-1.323747 3.46357,-3.423687 -0.0478,-1.38074 -3.42818,-2.212653 -1.53541,-3.499973 4.53006,-2.016167 9.17312,-4.142848 12.66666,-7.733334 0.85723,-2.253596 -2.25712,-3.193724 -3.46666,-4.566666 -1.4517,-1.221069 -3.87877,-2.524433 -0.81856,-3.364818 5.62839,-2.111859 11.87228,-2.940184 17.03456,-6.263438 2.72995,-0.86584 3.85371,-3.957742 3.06767,-6.564064 -0.0255,-2.62475 -1.76154,-4.797622 -3.22224,-6.835657 C 179.45289,36.856816 173.58197,31.828345 168.24204,26.291461 163.60188,21.818095 159.14228,17.065484 154.39198,12.762657 151.99166,11.220691 149.22884,10.717147 146.4,11 Z m 3.36667,6.733333 c 4.24058,2.976224 8.38139,6.129328 12.6,9.166667 -1.29937,-0.797366 -2.67486,-1.290978 -4.2,-1.4 -0.21287,1.824575 -0.47054,3.643999 -0.7,5.466667 -1.97534,-0.587625 -4.21204,-1.778592 -5.97773,-0.09263 -1.30676,0.402533 -3.52226,3.290581 -4.25972,2.135968 -0.99915,-3.447628 -1.99405,-6.896491 -2.99589,-10.343339 -1.52265,3.539479 -3.02044,7.089652 -4.53333,10.633333 -2.56667,0.255555 -5.13333,0.511111 -7.7,0.766667 -0.0148,-3.662276 2.83591,-6.395601 5.07235,-8.959274 3.30461,-2.837611 6.75708,-5.60858 10.52338,-7.756865 0.7316,-0.360909 1.44586,0.250944 2.17094,0.382806 z m 26.36666,48.333334 C 174.87994,66.86218 172.84987,68.441375 174.2,70 c 2.62772,1.71982 5.90645,1.835937 8.93343,1.934762 2.25075,-0.06272 4.4688,-2.726652 2.93663,-4.770688 -1.42803,-2.456455 -4.67977,-1.908377 -7.06627,-1.883005 -0.95681,0.261868 -1.91364,0.523732 -2.87046,0.785598 z m -3.3,5.433333 c -1.27562,1.033534 -1.85687,2.841465 -1.35231,4.508785 0.43077,1.899535 2.6256,2.385569 4.29198,1.849858 2.50838,0.201444 3.52565,-3.378484 1.43654,-4.628378 -1.24197,-1.050288 -2.64377,-2.095016 -4.37621,-1.730265 z"
|
||||
style="fill:url(#linearGradient40814);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1304"
|
||||
d="m 146,10.2 c -5.57009,2.353735 -9.31153,7.276932 -13.56394,11.364379 -7.26121,7.360863 -14.57305,14.685571 -21.80273,22.068954 -0.92375,2.588329 -1.83526,5.181133 -2.76666,7.766667 5.12606,2.235525 10.28103,4.361596 15.6,6.1 -0.32712,1.554459 -2.93579,1.371077 -3.74338,2.860476 -1.43416,0.914482 -2.37188,3.411157 -0.36803,4.245199 3.1673,2.975582 7.51398,4.048213 11.44474,5.660992 -3.09041,-0.89746 -5.13867,2.363507 -6.33333,4.666666 -0.72155,2.880448 2.58866,4.694489 5.06851,4.276737 1.54135,0.553684 3.66,-2.522746 3.86807,-0.13866 2.29497,2.607941 6.70581,1.993255 9.10076,4.436609 0.7749,2.147771 2.55461,3.943898 4.94541,3.965707 2.15881,0.621481 4.27216,0.328386 6.35476,-0.418515 2.43249,-0.54992 4.74804,-1.764623 6.87594,-2.976017 1.61013,-1.140622 1.25617,-3.709454 -0.21345,-4.812527 -0.21701,-1.714746 2.45466,-1.738353 3.54015,-2.659077 2.92458,-1.339302 5.49291,-3.216603 7.95985,-5.240923 -1.09048,1.568168 -1.50221,3.637034 -0.89348,5.420276 1.02957,2.431889 4.09705,1.779572 6.16014,1.64639 C 179.29546,77.451445 180.09314,74.273508 178,72.9 c -3.03927,-1.879702 -0.42819,-1.002977 1.49692,-0.460891 2.38484,0.141742 5.36949,0.891675 6.99369,-1.418947 1.80089,-1.737129 0.66941,-4.475043 -1.05728,-5.820162 -2.14881,-1.14371 -4.72742,-0.810973 -7.057,-0.699886 -2.09119,0.370608 -3.67839,1.613047 -4.97633,3.233219 -1.58756,1.272788 1.82748,3.61782 -0.0532,3.147933 -1.36163,0.234395 0.30799,-2.483632 -1.32358,-3.36862 -1.06348,-1.560896 -2.85826,-2.534055 -4.1899,-3.879313 6.43141,-3.110773 13.94477,-3.952924 19.7,-8.433333 2.10991,-2.5028 1.15052,-5.815831 0.53333,-8.666667 C 184.23156,39.549156 177.84192,34.54079 172.35319,28.898191 166.50884,23.205036 160.69939,17.462459 154.83333,11.8 152.27799,10.77259 149.66457,10.063772 146.88646,10.206305 146.60075,10.233991 146.27214,10.101959 146,10.2 Z m 7.6,11.266667 c 1.51374,1.165288 3.04586,2.309495 4.56667,3.466666 -1.39718,1.06872 -0.90296,3.127104 -1.4,4.633334 -2.08576,-0.566112 -4.35694,-0.641822 -6.05767,0.905733 -1.05102,0.888519 -3.01815,1.872214 -3.17799,-0.196242 -0.93874,-3.234383 -1.83,-6.48501 -2.79768,-9.709491 1.63294,-0.494373 3.30094,-3.132711 4.90134,-1.63781 1.32178,0.845937 2.64355,1.691873 3.96533,2.53781 z m -14.36667,10.966666 c -1.96666,0.2 -3.93333,0.4 -5.9,0.6 0.75323,-3.751583 3.85837,-6.37712 6.49928,-8.892012 1.44608,-1.049755 2.80293,-2.240606 4.30072,-3.207988 -1.63333,3.833334 -3.26666,7.666667 -4.9,11.5 z"
|
||||
style="fill:url(#linearGradient40816);fill-opacity:0.07438019;fill-rule:evenodd;stroke-width:1.06666669pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1217"
|
||||
d="m 80.606138,21.093974 c -3.986404,2e-6 -7.999981,1.500815 -11.054664,4.555494 L 15.31073,79.950952 c -2.994002,2.993929 -4.556718,6.904836 -4.616235,10.811705 -8.35e-4,0.06557 0,0.177392 0,0.24296 h 0.12148 c 1.039149,3.953694 27.860205,8.970154 30.855878,11.965763 4.524006,4.52404 -17.340071,7.86688 -12.816122,12.39094 4.523986,4.52399 27.364021,8.71724 31.888455,13.2413 4.524026,4.52402 -9.261778,9.3247 -4.737714,13.8487 4.524006,4.52407 19.69882,-1.11018 16.946437,10.69023 6.109347,6.10935 18.859073,3.19383 27.393701,-2.91552 4.52401,-4.524 -8.654358,-4.10106 -4.130314,-8.62506 4.524004,-4.52406 15.949294,-4.54533 25.571504,-15.3672 -3.87306,-6.02355 -16.55055,-8.59578 -12.0265,-13.11982 4.524,-4.524 13.27486,-2.25385 32.25288,-10.87245 9.26429,-4.207497 8.53905,-7.362324 8.50359,-11.236883 -7.4e-4,-0.08153 0,-0.160805 0,-0.24296 h -0.0608 c -0.0595,-3.906866 -1.56157,-7.817769 -4.55549,-10.811705 L 91.600063,25.649468 C 88.5454,22.594793 84.592543,21.093974 80.606138,21.093974 Z M 56.553132,105.76542 c 8.084647,2.09667 17.079247,4.81 24.295966,4.85919 l 0.3037,3.27996 c -6.179767,-0.63701 -19.269208,-3.64874 -22.352289,-5.22364 z m 84.246258,14.39535 c -1.23415,-0.0395 -2.40206,0.0842 -3.27996,0.3037 -1.65516,0.41359 -9.69592,0.60412 -9.05025,5.7703 7.10376,2.58184 18.08512,4.55915 19.37604,-0.6074 0.96897,-3.87387 -3.34345,-5.34795 -7.04583,-5.4666 z m -92.871326,10.50801 c -1.117595,-0.13024 -2.210972,0.008 -3.279956,0.54666 -4.274826,2.15631 -7.152149,6.94739 -3.158474,8.92877 3.99408,1.98139 6.824425,-0.27467 10.325785,-2.7333 3.501767,-2.45822 3.411658,-2.93897 3.158475,-3.88735 -0.484734,0.12928 -3.693025,-2.46403 -7.04583,-2.85478 z m 78.111516,0.85036 c -3.22891,1.29126 -3.19098,5.77708 -0.60739,7.71397 2.58293,1.93728 5.81565,0.68424 7.10657,-0.6074 1.29198,-1.29126 -0.042,-5.81528 -6.49918,-7.10657 z"
|
||||
style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
id="path1269"
|
||||
d="m 11.977124,84.576671 c -0.883927,1.953959 -1.36513,4.04141 -1.397018,6.134731 -8.33e-4,0.06556 0,0.177399 0,0.24296 h 0.12148 c 0.994358,3.78327 25.07956,8.512878 29.823299,11.540588 2.091809,-1.24429 3.465756,-2.547484 2.065157,-3.948099 C 39.594368,95.551236 12.773315,90.53478 11.734165,86.581087 h -0.12148 c 0,-0.06558 -8.33e-4,-0.177399 0,-0.242958 0.0091,-0.601939 0.284168,-1.162709 0.364439,-1.761458 z M 150.34262,92.47286 c -1.0612,1.680115 -3.10061,3.387829 -7.41026,5.345111 -18.97801,8.618589 -27.72886,6.348449 -32.25287,10.872439 -1.37053,1.37052 -0.88153,2.54264 0.18222,3.70513 4.78924,-3.38639 13.4115,-2.19944 31.03808,-10.20429 8.00504,-3.635614 8.46503,-6.511246 8.44283,-9.71839 z m -92.871299,8.86803 2.247377,2.9155 c 3.08308,1.57491 16.17252,4.58665 22.352289,5.22364 l -0.303699,-3.27996 c -7.216719,-0.0492 -16.21132,-2.7625 -24.295967,-4.85918 z M 30.685018,111.4237 c -2.022925,1.2244 -3.320206,2.51079 -1.943676,3.88736 4.523988,4.52399 27.364021,8.71723 31.888455,13.2413 0.198962,0.19895 0.17245,0.40741 0.3037,0.6074 1.405197,-1.67236 2.355425,-3.35413 0.728879,-4.98067 -4.359755,-4.3594 -25.379991,-8.41841 -30.977358,-12.75539 z m 100.220842,10.75097 c -1.55381,0.80713 -2.80902,1.9449 -2.55108,4.00882 7.10375,2.58184 18.08511,4.55915 19.37603,-0.60738 0.25122,-1.00435 0.11312,-1.85114 -0.24296,-2.55108 -3.06888,2.47706 -10.66085,1.09402 -16.58199,-0.85036 z m -11.17612,2.18664 c -8.90094,7.91694 -18.52655,8.74738 -22.595255,12.81612 -1.63664,1.63663 -0.713263,2.53048 0.6074,3.34069 5.191475,-3.47749 15.190165,-4.50342 23.931535,-14.33463 -0.44804,-0.69679 -1.30027,-1.20938 -1.94368,-1.82218 z m 5.0414,8.01767 c -1.86829,1.81567 -1.62997,5.17107 0.54666,6.80287 2.58292,1.93727 5.81565,0.68422 7.10656,-0.6074 0.66392,-0.66356 0.57592,-2.15087 -0.48592,-3.6444 -1.57518,0.81115 -3.6457,1.33536 -5.58806,-0.12148 -0.82081,-0.61535 -1.29544,-1.48388 -1.57924,-2.42959 z m -71.612353,0.24296 c -0.216533,0.15768 -0.17254,0.18708 -0.42518,0.36444 -3.501359,2.45861 -6.331704,4.7147 -10.325785,2.73329 -0.835138,-0.41433 -1.173493,-1.0297 -1.457758,-1.63998 -1.775949,2.19005 -2.210285,4.70572 0.425179,6.01325 3.994085,1.98138 6.824427,-0.27468 10.325787,-2.73329 3.50177,-2.45823 3.411658,-2.93899 3.158475,-3.88735 -0.166315,0.0444 -0.997334,-0.45265 -1.700718,-0.85036 z m 3.462175,4.79845 c -1.405193,1.67235 -2.355439,3.35411 -0.728879,4.98066 4.524009,4.52407 19.69882,-1.11019 16.946437,10.69022 6.109348,6.10935 18.859078,3.19384 27.39371,-2.91551 1.66654,-1.66656 0.69997,-2.58291 -0.668148,-3.40144 -8.458362,5.3473 -19.957869,7.67884 -25.692984,1.94368 2.752384,-11.8004 -12.422431,-6.16613 -16.946436,-10.69021 -0.198964,-0.19896 -0.172449,-0.40742 -0.3037,-0.6074 z"
|
||||
style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1271"
|
||||
d="m 107.57531,47.365247 32.87711,35.325423 c 0,0 9.7932,10.492701 2.09856,14.68978 -7.69466,4.19708 -31.12834,10.4927 -31.12834,10.4927 L 68.830422,46.540402 Z"
|
||||
style="fill:url(#linearGradient1272);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
id="path1276"
|
||||
d="M 56.944037,42.006087 26.165461,77.3315 c 0,0 -11.891721,10.4927 -4.197076,14.689777 7.694644,4.197078 58.409343,21.335153 94.084505,15.039533 L 75.13138,45.853409 Z"
|
||||
style="fill:url(#linearGradient1277);fill-opacity:0.75;fill-rule:evenodd;stroke-width:1.49509335pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccczz"
|
||||
id="path1317"
|
||||
d="m 82.042498,27.12255 c 4.504479,0.03329 23.422692,18.434639 28.837322,22.230809 5.41464,3.796171 4.14478,6.285951 4.14478,6.523269 L 99.839631,48.527099 98.321133,60.006943 89.939024,56.058848 77.062155,64.683915 72.081482,47.67674 65.76453,62.558018 47.967732,64.319476 48.149952,56.423287 74.438456,30.540688 c 1.907291,-1.877842 3.182156,-3.451427 7.604042,-3.418138 z"
|
||||
style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.30175579pt"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Title"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<text
|
||||
id="text48"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:51.20000076px;line-height:100%;font-family:Arial;writing-mode:lr-tb;text-anchor:start;display:block;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.20000017pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
y="74.666664"
|
||||
x="48">
|
||||
<tspan
|
||||
id="tspan1"
|
||||
sodipodi:role="line"
|
||||
y="74.666664"
|
||||
x="48"
|
||||
style="stroke-width:3.20000017pt">Evolving inkscape_gtkmm</tspan>
|
||||
</text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25.60000038px;line-height:120.00000477%;font-family:Sans;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="58.404686"
|
||||
y="181.17188"
|
||||
id="text74"><tspan
|
||||
id="tspan9"
|
||||
sodipodi:role="line"
|
||||
y="181.17188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt">* Expand Inkscape::Application</tspan><tspan
|
||||
id="tspan10"
|
||||
sodipodi:role="line"
|
||||
y="211.89188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + High level services (GC, args, paths)</tspan><tspan
|
||||
id="tspan11"
|
||||
sodipodi:role="line"
|
||||
y="242.61188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Registries (extensions, prefs, etc.)</tspan><tspan
|
||||
id="tspan12"
|
||||
sodipodi:role="line"
|
||||
y="273.33188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan13"
|
||||
sodipodi:role="line"
|
||||
y="304.05188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt">* Create new Inkscape::Application::RunMode</tspan><tspan
|
||||
id="tspan14"
|
||||
sodipodi:role="line"
|
||||
y="334.77188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Abstract base class</tspan><tspan
|
||||
id="tspan15"
|
||||
sodipodi:role="line"
|
||||
y="365.49188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan16"
|
||||
sodipodi:role="line"
|
||||
y="396.21188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt">* Refactor Inkscape::Application::ApplicationImpl</tspan><tspan
|
||||
id="tspan17"
|
||||
sodipodi:role="line"
|
||||
y="426.93188"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Rename it to Inkscape::Application::Editor</tspan><tspan
|
||||
id="tspan18"
|
||||
sodipodi:role="line"
|
||||
y="457.65189"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Make it subclass I::A::RunMode</tspan><tspan
|
||||
id="tspan19"
|
||||
sodipodi:role="line"
|
||||
y="488.37189"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Move items from SPDesktop into here</tspan><tspan
|
||||
id="tspan20"
|
||||
sodipodi:role="line"
|
||||
y="519.09192"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt" /><tspan
|
||||
id="tspan21"
|
||||
sodipodi:role="line"
|
||||
y="549.81189"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt">* Create new Inkscape::Application::Cmdline</tspan><tspan
|
||||
id="tspan22"
|
||||
sodipodi:role="line"
|
||||
y="580.53192"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Make it subclass I::A::RunMode</tspan><tspan
|
||||
id="tspan23"
|
||||
sodipodi:role="line"
|
||||
y="611.25189"
|
||||
x="58.404686"
|
||||
style="stroke-width:1.06666669pt"> + Move stuff from main.cpp into here</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Drawing Area"
|
||||
id="layer3"
|
||||
inkscape:groupmode="layer" />
|
||||
</svg>
|
After Width: | Height: | Size: 41 KiB |
BIN
doc/PDF Feature Matrix.ods
Normal file
568
doc/PDF Feature Matrix.svg
Normal file
|
@ -0,0 +1,568 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="816"
|
||||
height="1056"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
sodipodi:docname="PDF Feature Matrix.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.0"
|
||||
sodipodi:modified="true">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient9302">
|
||||
<stop
|
||||
id="stop9304"
|
||||
offset="0"
|
||||
style="stop-color:red;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#7f7f00;stop-opacity:0;"
|
||||
offset="0.5"
|
||||
id="stop9308" />
|
||||
<stop
|
||||
id="stop9306"
|
||||
offset="1"
|
||||
style="stop-color:lime;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5722">
|
||||
<stop
|
||||
style="stop-color:red;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5724" />
|
||||
<stop
|
||||
style="stop-color:lime;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop5726" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="linearGradient5728"
|
||||
x1="337.36264"
|
||||
y1="80.384155"
|
||||
x2="467.03296"
|
||||
y2="80.384155"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0666667,0,0,1.0666667,51.2,192)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="linearGradient5734"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.94889067,0,0,0.83895573,272.70379,210.30432)"
|
||||
x1="337.36264"
|
||||
y1="80.384155"
|
||||
x2="467.03296"
|
||||
y2="80.384155" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="radialGradient8399"
|
||||
cx="81.318687"
|
||||
cy="227.63692"
|
||||
fx="81.318687"
|
||||
fy="227.63692"
|
||||
r="60.439564"
|
||||
gradientTransform="matrix(1.0666667,0,0,0.82424213,51.2,247.18475)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="radialGradient8409"
|
||||
cx="245.05495"
|
||||
cy="227.63692"
|
||||
fx="245.05495"
|
||||
fy="227.63692"
|
||||
r="64.598351"
|
||||
gradientTransform="matrix(1.0666667,0,0,0.78541333,51.2,256.02368)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9302"
|
||||
id="linearGradient8413"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
|
||||
x1="337.36264"
|
||||
y1="80.384155"
|
||||
x2="467.03296"
|
||||
y2="80.384155" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="linearGradient10205"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
|
||||
x1="56.043961"
|
||||
y1="184.77975"
|
||||
x2="138.46153"
|
||||
y2="254.01053" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="linearGradient10209"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
|
||||
x1="230.00603"
|
||||
y1="200.08302"
|
||||
x2="258.77368"
|
||||
y2="229.91617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="linearGradient10211"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
|
||||
x1="230.00603"
|
||||
y1="200.08302"
|
||||
x2="258.77368"
|
||||
y2="229.91617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5722"
|
||||
id="linearGradient4993"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0666667,0,0,1.0666667,54.716491,346.72523)"
|
||||
x1="56.043961"
|
||||
y1="184.77975"
|
||||
x2="138.46153"
|
||||
y2="254.01053" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.69246595"
|
||||
inkscape:cx="440.14605"
|
||||
inkscape:cy="524.81516"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
width="765px"
|
||||
height="990px"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:14.71767521;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
d="m 244.22204,228.71274 h 77.43187 v 66.19174 h -77.43187 z"
|
||||
id="rect2160"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path3059"
|
||||
d="m 274.90754,260.53475 h 77.43187 v 66.19174 h -77.43187 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:14.71767521;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path3061"
|
||||
d="m 81.212465,224.33827 h 86.195655 v 73.68337 H 81.212465 Z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:27.62665558;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:0.50196078;fill-rule:nonzero;stroke:none;stroke-width:27.62665558;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
d="m 115.37098,259.76191 h 86.19564 v 73.68337 h -86.19564 z"
|
||||
id="path3063"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient5728);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect4835"
|
||||
width="128.93773"
|
||||
height="99.633698"
|
||||
x="411.0535"
|
||||
y="227.92625" />
|
||||
<rect
|
||||
y="238.56108"
|
||||
x="592.82385"
|
||||
height="78.364021"
|
||||
width="114.70103"
|
||||
id="rect5730"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5734);stroke-width:23.10879707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
|
||||
<rect
|
||||
y="384.99582"
|
||||
x="73.471062"
|
||||
height="99.633698"
|
||||
width="128.93773"
|
||||
id="rect7506"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient8399);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient8409);stroke-width:23.10879707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect7508"
|
||||
width="114.70103"
|
||||
height="78.364021"
|
||||
x="255.24144"
|
||||
y="395.63071" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect9310"
|
||||
width="164.10257"
|
||||
height="22.271063"
|
||||
x="399.33188"
|
||||
y="423.67715" />
|
||||
<rect
|
||||
y="382.65152"
|
||||
x="414.56995"
|
||||
height="99.633698"
|
||||
width="128.93773"
|
||||
id="rect8411"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient8413);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient10209);stroke-width:17.06666756;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
d="m 261.34031,527.05124 h 77.43187 v 66.19177 h -77.43187 z"
|
||||
id="path10197"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path10199"
|
||||
d="m 292.02581,558.87327 h 77.43188 V 625.065 h -77.43188 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient10211);stroke-width:17.06666756;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.50196078;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path10201"
|
||||
d="m 98.330731,522.67679 h 86.195659 v 73.68337 H 98.330731 Z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient10205);fill-opacity:0.5;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient4993);fill-opacity:0.5;fill-rule:nonzero;stroke:none;stroke-width:27.62666702;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
d="M 132.48924,558.10043 H 218.6849 V 631.7838 H 132.48924 Z"
|
||||
id="path10203"
|
||||
inkscape:connector-curvature="0" />
|
||||
<image
|
||||
sodipodi:absref="/home/nicolas/dev/bzr/inkscape/0.92-stable/doc/../share/tutorials/oldguitar.jpg"
|
||||
xlink:href="../share/tutorials/oldguitar.jpg"
|
||||
width="90.654945"
|
||||
height="126.05669"
|
||||
id="image12884"
|
||||
x="611.9754"
|
||||
y="372.06854" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="298.526"
|
||||
y="213.86032"
|
||||
id="text12887"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12889"
|
||||
x="298.526"
|
||||
y="213.86032"
|
||||
style="stroke-width:1.06666672">stroke-opacity (solid)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="127.39048"
|
||||
y="215.03249"
|
||||
id="text12891"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12893"
|
||||
x="127.39048"
|
||||
y="215.03249"
|
||||
style="stroke-width:1.06666672">fill-opacity (solid)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="474.35019"
|
||||
y="217.3768"
|
||||
id="text12895"><tspan
|
||||
sodipodi:role="line"
|
||||
x="474.35019"
|
||||
y="217.3768"
|
||||
id="tspan12899"
|
||||
style="stroke-width:1.06666672">linearGradient (fill)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="650.17438"
|
||||
y="218.54898"
|
||||
id="text12903"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12905"
|
||||
x="650.17438"
|
||||
y="218.54898"
|
||||
style="stroke-width:1.06666672">linearGradient (stroke)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="136.76778"
|
||||
y="377.96289"
|
||||
id="text12907"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12909"
|
||||
x="136.76778"
|
||||
y="377.96289"
|
||||
style="stroke-width:1.06666672">radialGradient (fill)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="309.07547"
|
||||
y="374.44641"
|
||||
id="text12911"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12913"
|
||||
x="309.07547"
|
||||
y="374.44641"
|
||||
style="stroke-width:1.06666672">radialGradient (stroke)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="470.83368"
|
||||
y="373.27423"
|
||||
id="text12915"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12917"
|
||||
x="470.83368"
|
||||
y="373.27423"
|
||||
style="stroke-width:1.06666672">stop-opacity</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="653.6908"
|
||||
y="362.72479"
|
||||
id="text12919"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12921"
|
||||
x="653.6908"
|
||||
y="362.72479"
|
||||
style="stroke-width:1.06666672">image</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="130.90697"
|
||||
y="512.76141"
|
||||
id="text12923"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12925"
|
||||
x="130.90697"
|
||||
y="512.76141"
|
||||
style="stroke-width:1.06666672">fill-opacity (gradient)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="302.04251"
|
||||
y="510.41708"
|
||||
id="text12927"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12929"
|
||||
x="302.04251"
|
||||
y="510.41708"
|
||||
style="stroke-width:1.06666672">stroke-opacity (gradient)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36.12400436px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="480.3414"
|
||||
y="589.09479"
|
||||
id="text13816"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13818"
|
||||
x="480.3414"
|
||||
y="589.09479"
|
||||
style="stroke-width:1.06666672">text</tspan></text>
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot13820"
|
||||
style="font-size:36.12400818px;stroke-width:3.01033378"><flowRegion
|
||||
id="flowRegion13822"
|
||||
style="stroke-width:3.01033378"><rect
|
||||
id="rect13824"
|
||||
width="251.41251"
|
||||
height="119.09013"
|
||||
x="590.67609"
|
||||
y="551.11725"
|
||||
style="stroke-width:9.06210995" /></flowRegion><flowPara
|
||||
id="flowPara13826"
|
||||
style="stroke-width:3.01033378">flowText</flowPara></flowRoot> <rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect13828"
|
||||
width="100.80586"
|
||||
height="78.534798"
|
||||
x="134.84541"
|
||||
y="712.38049" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect13830"
|
||||
width="107.83883"
|
||||
height="77.36264"
|
||||
x="84.442497"
|
||||
y="678.38776" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="138.45567"
|
||||
y="664.9314"
|
||||
id="text15602"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan15604"
|
||||
x="138.45567"
|
||||
y="664.9314"
|
||||
style="stroke-width:1.06666672">opacity (path)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="308.86444"
|
||||
y="667.0647"
|
||||
id="text15606"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan15608"
|
||||
x="308.86444"
|
||||
y="667.0647"
|
||||
style="stroke-width:1.06666672">opacity (image)*</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="489.58829"
|
||||
y="663.97015"
|
||||
id="text15610"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan15612"
|
||||
x="489.58829"
|
||||
y="663.97015"
|
||||
style="stroke-width:1.06666672">opacity (fill+stroke)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="666.58466"
|
||||
y="659.28156"
|
||||
id="text15614"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan15616"
|
||||
x="666.58466"
|
||||
y="659.28156"
|
||||
style="stroke-width:1.06666672">opacity (group)</tspan></text>
|
||||
<image
|
||||
sodipodi:absref="/home/nicolas/dev/bzr/inkscape/0.92-stable/doc/../share/tutorials/oldguitar.jpg"
|
||||
xlink:href="../share/tutorials/oldguitar.jpg"
|
||||
width="90.654945"
|
||||
height="126.05669"
|
||||
id="image15622"
|
||||
x="293.14755"
|
||||
y="719.02826" />
|
||||
<image
|
||||
sodipodi:absref="/home/nicolas/dev/bzr/inkscape/0.92-stable/doc/../share/tutorials/oldguitar.jpg"
|
||||
xlink:href="../share/tutorials/oldguitar.jpg"
|
||||
style="opacity:0.5"
|
||||
y="685.03552"
|
||||
x="259.15488"
|
||||
id="image15618"
|
||||
height="126.05669"
|
||||
width="90.654945" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
d="m 539.99119,753.64055 c 0,26.85188 -22.84307,48.64471 -50.98901,48.64471 -28.14592,0 -50.989,-21.79283 -50.989,-48.64471 0,-26.85186 22.84308,-48.64469 50.989,-48.64469 28.14594,0 50.98901,21.79283 50.98901,48.64469 z"
|
||||
id="path2323"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g4989"
|
||||
style="opacity:0.5"
|
||||
transform="translate(51.2,192)">
|
||||
<rect
|
||||
y="526.62439"
|
||||
x="586.08051"
|
||||
height="79.409546"
|
||||
width="104.32235"
|
||||
id="rect4987"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect3215"
|
||||
width="104.32235"
|
||||
height="79.409546"
|
||||
x="546.22711"
|
||||
y="493.80389" />
|
||||
</g>
|
||||
<rect
|
||||
style="color:#000000;font-family:'Bitstream Vera Sans';text-align:start;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
id="rect5013"
|
||||
width="114.67231"
|
||||
height="66.236717"
|
||||
x="120.19363"
|
||||
y="851.8985" />
|
||||
<flowRoot
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.88000011px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.57333332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
id="flowRoot5015"><flowRegion
|
||||
id="flowRegion5017"
|
||||
style="stroke-width:0.57333332px"><use
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#rect5013"
|
||||
id="use5019"
|
||||
transform="matrix(1.860465,0,0,1.860465,-143.2108,-713.9307)"
|
||||
width="765"
|
||||
height="990"
|
||||
style="stroke-width:0.57333332px" /></flowRegion><flowPara
|
||||
id="flowPara5025"
|
||||
style="stroke-width:0.57333332px">*inkscape's rendering is slightly incorrect due to issues with alpha premultiplication. The important thing is that the upper left image should only be partly opaque, while the lower right image should be fully opaque.</flowPara></flowRoot> <text
|
||||
xml:space="preserve"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:normal;font-family:'Bitstream Vera Sans';text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:middle;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
|
||||
x="650.17438"
|
||||
y="62.815639"
|
||||
id="text2364"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2366"
|
||||
x="650.17438"
|
||||
y="62.815639"
|
||||
style="stroke-width:1.06666672">stroke-dasharray</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66666667, 5.33333333, 2.66666667, 5.33333333;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 569.17359,77.853229 H 734.76537"
|
||||
id="path4316"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66666667, 5.33333333, 2.66666667, 5.33333333;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 569.17359,90.653229 H 734.76537"
|
||||
id="path4318"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.66666667, 5.33333333, 2.66666667, 5.33333333;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 569.17359,103.45323 H 734.76537"
|
||||
id="path4320"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.33333333, 21.33333333;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 569.17359,133.31989 H 734.76537"
|
||||
id="path4322"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.33333333, 21.33333333;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 569.17359,146.11989 H 734.76537"
|
||||
id="path4324"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.33333349;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.33333333, 21.33333333;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 569.17359,158.91989 H 734.76537"
|
||||
id="path4326"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 37 KiB |
77
doc/README.document
Normal file
|
@ -0,0 +1,77 @@
|
|||
31.03.2000
|
||||
|
||||
Well, we end with 2 basic objects:
|
||||
|
||||
SPDocument - the base of all nongraphical wizardry.
|
||||
Although you can well do all things via repr tree, Document will have some
|
||||
neat features:
|
||||
Undo stack managing: start_undo_step, end_undo_step
|
||||
Selection grabbing - we can select via reprs, which is otherwise impossible
|
||||
NB! SPDocument is SPRepr ref holder NB!
|
||||
|
||||
SPDesktop - the base of all graphical wizardry
|
||||
|
||||
What follows, is outdated...
|
||||
|
||||
Document hierarchy
|
||||
|
||||
This is currently in active rewrite. Structure should be something like:
|
||||
|
||||
SPApp - main application thing, probably GnomeMDI in future
|
||||
SPDesktop - one view to one document
|
||||
SPDocument - SPItem tree rootmost element
|
||||
|
||||
SPItem tree refers to xml backbone (currently reprs) and Canvas trees.
|
||||
Backbone does not know anything about other items/classes/objects. There
|
||||
can be more than one canvas tree (desktop) associated with document.
|
||||
|
||||
There is (and should be more) event interconnection between different
|
||||
objects.
|
||||
|
||||
Editing can be done to all three levels, but should end up with modifying
|
||||
reprs. No other change will be saved.
|
||||
1. Non-interactive modifications (for example changing object color)
|
||||
These should be done directly to backbone. Probably I'll implement a separate
|
||||
wrapper thing (sp-app-repr-interface.h or similar) to minimize the need
|
||||
to include lot of headers for such modules. These will be also probably the
|
||||
first interface to plugins.
|
||||
Such modifications will instantly propagate to all items and views and will
|
||||
be preserved when saving, duplicating & so on.
|
||||
|
||||
2. Interactive modifications to SPItems
|
||||
These are a bit faster (no need of coding/decoding, allocing, freeing xml
|
||||
attributes). Changes will display instantly to all views, but WILL NOT
|
||||
propagate back to xml. The right way to use such things is:
|
||||
When button pressed, grab mouse pointer
|
||||
Do modifications to SPItem
|
||||
When button released, write modifications to SPRepr
|
||||
|
||||
3. Interactive modifications to GnomeCanvasItems
|
||||
These affect only the current display (desktop) and DO NOT propagate back
|
||||
neither to SPItems, nor SPReprs. Use with same caution, as the class above.
|
||||
|
||||
Undo/Redo, when implemented, will be probably extracted from xml
|
||||
|
||||
There are several more things, like
|
||||
SPSelection - a per desktop selection (selection.h)
|
||||
Handful of canvas groups for grid, guidelines & so on (desktop.h)
|
||||
Intermediate holders of currently modified data (all contexts)
|
||||
SPNodepath (nodepath.h)
|
||||
|
||||
---------------------
|
||||
|
||||
Document == SPRoot
|
||||
Provides convenience constructors
|
||||
|
||||
Selection { /* opaque */ }
|
||||
Per desktop structure, pointing to selected items
|
||||
|
||||
Desktop {
|
||||
Selection selection
|
||||
Document document
|
||||
}
|
||||
|
||||
macro ACTIVE_DESKTOP ;) gives current active desktop ;-)
|
||||
There will be probably several macros to deduce affected desktop from
|
||||
UI events (menus & so on)
|
||||
|
826
doc/architecture.svg
Normal file
|
@ -0,0 +1,826 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg1"
|
||||
sodipodi:version="0.32"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
sodipodi:docname="architecture.svg"
|
||||
inkscape:version="0.92.0 r15304"
|
||||
xlink:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1">
|
||||
<metadata
|
||||
id="metadata35627">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3">
|
||||
<marker
|
||||
id="mArrow"
|
||||
markerWidth="8"
|
||||
markerHeight="10"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
d="M 10.666667,4.2666667 C 10.666667,4.2666667 0,0 0,0 0,0 10.666667,-4.2666667 10.666667,-4.2666667"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="arrowMarkerPath"
|
||||
sodipodi:nodetypes="cs"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
showborder="false"
|
||||
showgrid="true"
|
||||
snaptogrid="true"
|
||||
inkscape:zoom="0.60132576"
|
||||
inkscape:cx="396.85039"
|
||||
inkscape:cy="361.70079"
|
||||
inkscape:window-width="1261"
|
||||
inkscape:window-height="894"
|
||||
inkscape:window-x="15"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg1">
|
||||
<inkscape:grid
|
||||
id="GridFromPre046Settings"
|
||||
type="xygrid"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="10.07874"
|
||||
spacingy="10.07874"
|
||||
color="#3f3fff"
|
||||
empcolor="#3f3fff"
|
||||
opacity="0.15"
|
||||
empopacity="0.38"
|
||||
empspacing="5" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
style="font-size:12px;fill:#ff0000;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
|
||||
d="m 982.67707,451.65333 v 122.8352 h -28.34666 l 9.4496,18.89707 h -37.79627 l 9.4496,-18.89707 H 614.17361 l 9.44853,18.89707 h -37.7952 l 9.44853,-18.89707 -377.95306,-10e-4 9.44853,18.89813 h -37.7952 l 9.4496,-18.89813 -179.527786,-0.002 1.06e-4,-122.832 z"
|
||||
id="path290"
|
||||
sodipodi:nodetypes="ccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="font-size:12px;fill:#a80000;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
|
||||
d="m 396.85035,574.48779 v 28.34773 l -18.89814,-9.4496 v 37.7952 l 18.89814,-9.44853 v 47.24266 l 198.4256,0.001 -9.4496,18.89813 h 37.7952 l -9.44854,-18.89813 h 179.52747 v -37.7952 l 18.89813,9.44853 v -37.7952 l -18.89813,9.44854 v -37.79414 l -179.52747,-10e-4 9.44854,18.89813 h -37.7952 l 9.4496,-18.89813 z"
|
||||
id="path814"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="406.29922"
|
||||
y="590.91705"
|
||||
id="text230">
|
||||
<tspan
|
||||
x="406.29922"
|
||||
y="590.91705"
|
||||
sodipodi:role="line"
|
||||
id="tspan305"
|
||||
style="stroke-width:1.06666669pt">Module subsystem</tspan>
|
||||
<tspan
|
||||
x="406.29922"
|
||||
y="603.71704"
|
||||
sodipodi:role="line"
|
||||
id="tspan307"
|
||||
style="stroke-width:1.06666669pt">(src/modules/*)</tspan>
|
||||
<tspan
|
||||
x="406.29922"
|
||||
y="616.51703"
|
||||
sodipodi:role="line"
|
||||
id="tspan309"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="415.74805"
|
||||
y="625.47028"
|
||||
id="text566">
|
||||
<tspan
|
||||
x="415.74805"
|
||||
y="625.47028"
|
||||
sodipodi:role="line"
|
||||
id="tspan587"
|
||||
style="stroke-width:1.06666669pt">SPModules (aka plugins) handle filtering, input and export of</tspan>
|
||||
<tspan
|
||||
x="415.74805"
|
||||
y="636.13696"
|
||||
sodipodi:role="line"
|
||||
id="tspan589"
|
||||
style="stroke-width:1.06666669pt">SPModuleDocs (wrapped SPDocuments) and to eventually</tspan>
|
||||
<tspan
|
||||
x="415.74805"
|
||||
y="646.80359"
|
||||
sodipodi:role="line"
|
||||
id="tspan591"
|
||||
style="stroke-width:1.06666669pt">encompass more functionality like e.g. providing tool</tspan>
|
||||
<tspan
|
||||
x="415.74805"
|
||||
y="657.47028"
|
||||
sodipodi:role="line"
|
||||
id="tspan593"
|
||||
style="stroke-width:1.06666669pt">implementations.</tspan>
|
||||
</text>
|
||||
<path
|
||||
style="font-size:12px;fill:#a85500;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
|
||||
d="m 396.85013,574.48853 v 28.3456 l -18.89706,-9.44853 v 37.7952 l 18.89706,-9.44853 v 103.93706 l 18.89814,-9.44853 v 37.7952 l -18.89814,-9.44853 V 820.1568 H 217.32267 l 9.44853,18.89813 H 188.976 L 198.4256,820.1568 18.897813,820.1548 18.8976,574.48866 h 179.528 l -9.4496,18.89707 h 37.7952 l -9.44853,-18.89707 z"
|
||||
id="path810"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="font-size:12px;fill:#0055a9;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
|
||||
d="m 396.85013,1009.1339 v 28.3477 l -18.89706,-9.4507 v 37.7963 l 18.89706,-9.4485 v 28.3466 h 396.85014 v -75.5914 H 519.68533 l 9.44854,18.8981 h -37.7952 l 9.44853,-18.8981 z"
|
||||
id="path806"
|
||||
sodipodi:nodetypes="ccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="font-size:12px;fill:#00a7a8;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
|
||||
d="M 793.70027,895.74827 V 1009.1339 H 519.68533 l 9.44854,18.8981 h -37.7952 l 9.44853,-18.8981 H 217.32267 l 9.44853,18.8981 H 188.976 l 9.4496,-18.8981 H 18.897813 L 18.8976,895.75047 h 179.528 l -9.4496,18.89706 h 37.7952 l -9.44853,-18.89706 h 387.4016 l -9.44854,18.89706 h 37.7952 l -9.44853,-18.89706 z"
|
||||
id="path804"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="font-size:12px;fill:#5400a8;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
|
||||
d="m 396.85013,1084.7253 v -28.3477 l -18.89706,9.4496 v -37.7952 l 18.89706,9.4485 v -28.3466 H 217.32267 l 9.44853,18.8981 H 188.976 l 9.4496,-18.8981 H 18.897813 l -2.13e-4,75.5914 z"
|
||||
id="path802"
|
||||
sodipodi:nodetypes="ccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="32.301373"
|
||||
y="1026.1064"
|
||||
id="text15">
|
||||
<tspan
|
||||
x="32.301373"
|
||||
y="1026.1064"
|
||||
sodipodi:role="line"
|
||||
id="tspan835"
|
||||
style="stroke-width:1.06666669pt">New Renderer</tspan>
|
||||
<tspan
|
||||
x="32.301373"
|
||||
y="1038.9065"
|
||||
sodipodi:role="line"
|
||||
id="tspan837"
|
||||
style="stroke-width:1.06666669pt">(src/libnr/*)</tspan>
|
||||
<tspan
|
||||
x="32.301373"
|
||||
y="1051.7064"
|
||||
sodipodi:role="line"
|
||||
id="tspan839"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="406.4422"
|
||||
y="1044.6467"
|
||||
id="text25">
|
||||
<tspan
|
||||
x="406.4422"
|
||||
y="1044.6467"
|
||||
sodipodi:role="line"
|
||||
id="tspan797"
|
||||
style="stroke-width:1.06666669pt">New Renderer Typesetting (src/libnr/libnrtype/*)</tspan>
|
||||
<tspan
|
||||
x="406.4422"
|
||||
y="1057.4468"
|
||||
sodipodi:role="line"
|
||||
id="tspan799"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="27.821459"
|
||||
y="918.27454"
|
||||
id="text28">
|
||||
<tspan
|
||||
x="27.821459"
|
||||
y="918.27454"
|
||||
sodipodi:role="line"
|
||||
id="tspan821"
|
||||
style="stroke-width:1.06666669pt">Display Glue</tspan>
|
||||
<tspan
|
||||
x="27.821459"
|
||||
y="931.07452"
|
||||
sodipodi:role="line"
|
||||
id="tspan823"
|
||||
style="stroke-width:1.06666669pt">(src/display/*)</tspan>
|
||||
<tspan
|
||||
x="27.821459"
|
||||
y="943.87451"
|
||||
sodipodi:role="line"
|
||||
id="tspan825"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="29.362036"
|
||||
y="593.8811"
|
||||
id="text189">
|
||||
<tspan
|
||||
x="29.362036"
|
||||
y="593.8811"
|
||||
sodipodi:role="line"
|
||||
id="tspan815"
|
||||
style="stroke-width:1.06666669pt">View subsystem</tspan>
|
||||
<tspan
|
||||
x="29.362036"
|
||||
y="606.68109"
|
||||
sodipodi:role="line"
|
||||
id="tspan817"
|
||||
style="stroke-width:1.06666669pt">(src/view.*, src/desktop*.*, src/svg-view.* and others)</tspan>
|
||||
<tspan
|
||||
x="29.362036"
|
||||
y="619.48108"
|
||||
sodipodi:role="line"
|
||||
id="tspan819"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="37.347359"
|
||||
y="652.9516"
|
||||
id="text685">
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="652.9516"
|
||||
sodipodi:role="line"
|
||||
id="tspan642"
|
||||
style="stroke-width:1.06666669pt">SPView is an abstract class representing a "view" of an SPDocument. It</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="663.61829"
|
||||
sodipodi:role="line"
|
||||
id="tspan644"
|
||||
style="stroke-width:1.06666669pt">has a companion SPViewWidget class for the associated display widget.</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="674.28491"
|
||||
sodipodi:role="line"
|
||||
id="tspan646"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="684.9516"
|
||||
sodipodi:role="line"
|
||||
id="tspan648"
|
||||
style="stroke-width:1.06666669pt">SPDesktop is an editable SPView, and SPSVGView is a display-only view</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="695.61829"
|
||||
sodipodi:role="line"
|
||||
id="tspan650"
|
||||
style="stroke-width:1.06666669pt">(e.g. the about box). Both maintain an SPCanvas and provide an</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="706.28491"
|
||||
sodipodi:role="line"
|
||||
id="tspan652"
|
||||
style="stroke-width:1.06666669pt">SPCanvasArena for SPObjects to display on. They have associated</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="716.9516"
|
||||
sodipodi:role="line"
|
||||
id="tspan654"
|
||||
style="stroke-width:1.06666669pt">SPViewWidget subclasses: SPDesktopWidget and SPSVGViewWidget.</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="727.61829"
|
||||
sodipodi:role="line"
|
||||
id="tspan656"
|
||||
style="stroke-width:1.06666669pt">SPDesktop is also responsible for maintaining the current selection in</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="738.28491"
|
||||
sodipodi:role="line"
|
||||
id="tspan658"
|
||||
style="stroke-width:1.06666669pt">an SPSelection.</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="748.9516"
|
||||
sodipodi:role="line"
|
||||
id="tspan660"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="759.61829"
|
||||
sodipodi:role="line"
|
||||
id="tspan662"
|
||||
style="stroke-width:1.06666669pt">SPDesktopWidget isn't just a bare canvas; it includes the scrollbars and</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="770.28491"
|
||||
sodipodi:role="line"
|
||||
id="tspan664"
|
||||
style="stroke-width:1.06666669pt">other decorations.</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="780.9516"
|
||||
sodipodi:role="line"
|
||||
id="tspan666"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="791.61829"
|
||||
sodipodi:role="line"
|
||||
id="tspan668"
|
||||
style="stroke-width:1.06666669pt">SPEventContexts handle tool state and interaction.</tspan>
|
||||
<tspan
|
||||
x="37.347359"
|
||||
y="802.28491"
|
||||
sodipodi:role="line"
|
||||
id="tspan670"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="37.836384"
|
||||
y="948.54315"
|
||||
id="text730">
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="948.54315"
|
||||
sodipodi:role="line"
|
||||
id="tspan737"
|
||||
style="stroke-width:1.06666669pt">This subsystem provides a lightweight arena abstraction.</tspan>
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="959.20984"
|
||||
sodipodi:role="line"
|
||||
id="tspan739"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="969.87646"
|
||||
sodipodi:role="line"
|
||||
id="tspan741"
|
||||
style="stroke-width:1.06666669pt">NRArena - a collection of lightweight renderable NRArenaItems.</tspan>
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="980.54315"
|
||||
sodipodi:role="line"
|
||||
id="tspan743"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="991.20984"
|
||||
sodipodi:role="line"
|
||||
id="tspan745"
|
||||
style="stroke-width:1.06666669pt">SPCanvasArena - an SPCanvasItem that renders the contents of an</tspan>
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="1001.8765"
|
||||
sodipodi:role="line"
|
||||
id="tspan747"
|
||||
style="stroke-width:1.06666669pt">NRArena.</tspan>
|
||||
<tspan
|
||||
x="37.836384"
|
||||
y="1012.5432"
|
||||
sodipodi:role="line"
|
||||
id="tspan749"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="37.691109"
|
||||
y="1055.1531"
|
||||
id="text755">
|
||||
<tspan
|
||||
x="37.691109"
|
||||
y="1055.1531"
|
||||
sodipodi:role="line"
|
||||
id="tspan768"
|
||||
style="stroke-width:1.06666669pt">The new rendering subsystem mostly replaces libart. It renders</tspan>
|
||||
<tspan
|
||||
x="37.691109"
|
||||
y="1065.8197"
|
||||
sodipodi:role="line"
|
||||
id="tspan770"
|
||||
style="stroke-width:1.06666669pt">filled/stroked bezier curves and polygons into NRPixBlocks (image</tspan>
|
||||
<tspan
|
||||
x="37.691109"
|
||||
y="1076.4865"
|
||||
sodipodi:role="line"
|
||||
id="tspan772"
|
||||
style="stroke-width:1.06666669pt">buffers)</tspan>
|
||||
<tspan
|
||||
x="37.691109"
|
||||
y="1087.1531"
|
||||
sodipodi:role="line"
|
||||
id="tspan774"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666669pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="419.53137"
|
||||
y="1064.4839"
|
||||
id="text780">
|
||||
<tspan
|
||||
x="419.53137"
|
||||
y="1064.4839"
|
||||
sodipodi:role="line"
|
||||
id="tspan791"
|
||||
style="stroke-width:1.06666669pt">Adaptor routines for using Xft, Win32, Gnome, and Freetype 2 to manage</tspan>
|
||||
<tspan
|
||||
x="419.53137"
|
||||
y="1075.1505"
|
||||
sodipodi:role="line"
|
||||
id="tspan793"
|
||||
style="stroke-width:1.06666669pt">font metrics and outlines.</tspan>
|
||||
<tspan
|
||||
x="419.53137"
|
||||
y="1085.8173"
|
||||
sodipodi:role="line"
|
||||
id="tspan795"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<path
|
||||
style="font-size:12px;fill:#00a800;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
|
||||
d="m 396.85038,820.1568 v 75.5904 H 217.32292 l 9.44853,18.89813 h -37.7952 l 9.4496,-18.89813 -179.52736,-0.002 -8.53e-4,-75.58827 H 198.42585 l -9.4496,18.89707 h 37.7952 l -9.44853,-18.89707 z"
|
||||
id="path809"
|
||||
sodipodi:nodetypes="ccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="37.170525"
|
||||
y="873.45007"
|
||||
id="text22">
|
||||
<tspan
|
||||
x="37.170525"
|
||||
y="873.45007"
|
||||
sodipodi:role="line"
|
||||
id="tspan456"
|
||||
style="stroke-width:1.06666669pt">SPCanvas - handles input events</tspan>
|
||||
<tspan
|
||||
x="37.170525"
|
||||
y="884.11676"
|
||||
sodipodi:role="line"
|
||||
id="tspan458"
|
||||
style="stroke-width:1.06666669pt">SPCanvasItem - objects that can be displayed on SPCanvas</tspan>
|
||||
<tspan
|
||||
x="37.170525"
|
||||
y="894.78339"
|
||||
sodipodi:role="line"
|
||||
id="tspan460"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="29.741482"
|
||||
y="842.68378"
|
||||
id="text439">
|
||||
<tspan
|
||||
x="29.741482"
|
||||
y="842.68378"
|
||||
sodipodi:role="line"
|
||||
id="tspan827"
|
||||
style="stroke-width:1.06666669pt">SVG Canvas</tspan>
|
||||
<tspan
|
||||
x="29.741482"
|
||||
y="855.48376"
|
||||
sodipodi:role="line"
|
||||
id="tspan829"
|
||||
style="stroke-width:1.06666669pt">(src/helper/sp-canvas*)</tspan>
|
||||
<tspan
|
||||
x="29.741482"
|
||||
y="868.28375"
|
||||
sodipodi:role="line"
|
||||
id="tspan831"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="29.741482"
|
||||
y="881.0838"
|
||||
sodipodi:role="line"
|
||||
id="tspan833"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<path
|
||||
style="font-size:12px;fill:#a85555;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.30476589pt"
|
||||
d="m 793.70027,668.97635 v 56.69227 l 18.89813,-9.44853 v 37.7952 l -18.89813,-9.44854 10e-4,151.1808 H 623.6224 l 9.44853,18.89814 h -37.7952 l 9.44854,-18.89814 H 396.85038 l -5.3e-4,-151.17866 18.89767,9.4496 v -37.7952 l -18.89767,9.44853 v -56.69333 l 198.42588,-0.002 -9.4496,18.89707 h 37.7952 l -9.44853,-18.89707 z"
|
||||
id="path808"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
style="font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="412.71274"
|
||||
y="691.50287"
|
||||
id="text156">
|
||||
<tspan
|
||||
x="412.71274"
|
||||
y="691.50287"
|
||||
sodipodi:role="line"
|
||||
id="tspan841"
|
||||
style="stroke-width:1.06666669pt">SVG document model</tspan>
|
||||
<tspan
|
||||
x="412.71274"
|
||||
y="704.30286"
|
||||
sodipodi:role="line"
|
||||
id="tspan843"
|
||||
style="stroke-width:1.06666669pt">(src/sp-*.h and others)</tspan>
|
||||
<tspan
|
||||
x="412.71274"
|
||||
y="717.10284"
|
||||
sodipodi:role="line"
|
||||
id="tspan845"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="425.19684"
|
||||
y="723.18781"
|
||||
id="text468">
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="723.18781"
|
||||
sodipodi:role="line"
|
||||
id="tspan521"
|
||||
style="stroke-width:1.06666669pt">Enforces validity constraints on the SPRepr document.</tspan>
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="733.85449"
|
||||
sodipodi:role="line"
|
||||
id="tspan523"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="744.52112"
|
||||
sodipodi:role="line"
|
||||
id="tspan525"
|
||||
style="stroke-width:1.06666669pt">SPDocument - an SVG document containing SPObjects.</tspan>
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="755.18781"
|
||||
sodipodi:role="line"
|
||||
id="tspan527"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="765.85449"
|
||||
sodipodi:role="line"
|
||||
id="tspan529"
|
||||
style="stroke-width:1.06666669pt">SPObjects - handles short term changes & propagates</tspan>
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="776.52112"
|
||||
sodipodi:role="line"
|
||||
id="tspan531"
|
||||
style="stroke-width:1.06666669pt">longer term ones to the SPRepr</tspan>
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="787.18781"
|
||||
sodipodi:role="line"
|
||||
id="tspan533"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="797.85449"
|
||||
sodipodi:role="line"
|
||||
id="tspan535"
|
||||
style="stroke-width:1.06666669pt">SPItems - SPObjects that can be rendered. They have hide() and show()</tspan>
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="808.52112"
|
||||
sodipodi:role="line"
|
||||
id="tspan537"
|
||||
style="stroke-width:1.06666669pt">methods for creating an associated NRArenaItem in a given NRArena.</tspan>
|
||||
<tspan
|
||||
x="425.19684"
|
||||
y="819.18781"
|
||||
sodipodi:role="line"
|
||||
id="tspan539"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<path
|
||||
style="font-size:12px;fill:#a80055;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.29627947pt"
|
||||
d="m 793.70027,574.48853 v 37.79734 l 18.89706,-9.4496 v 37.7952 l -18.89706,-9.4496 v 94.48853 l 18.89813,-9.4496 v 37.7952 l -18.89813,-9.44853 V 895.7472 H 982.67733 V 574.48853 h -28.34666 l 9.44853,18.89707 H 925.984 l 9.4496,-18.89707 z"
|
||||
id="path813"
|
||||
sodipodi:nodetypes="ccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="821.74103"
|
||||
y="597.55847"
|
||||
id="text163">
|
||||
<tspan
|
||||
x="821.74103"
|
||||
y="597.55847"
|
||||
sodipodi:role="line"
|
||||
id="tspan341"
|
||||
style="stroke-width:1.06666669pt">XML doc model</tspan>
|
||||
<tspan
|
||||
x="821.74103"
|
||||
y="610.35846"
|
||||
sodipodi:role="line"
|
||||
id="tspan343"
|
||||
style="stroke-width:1.06666669pt">(src/xml/*)</tspan>
|
||||
<tspan
|
||||
x="821.74103"
|
||||
y="623.15845"
|
||||
sodipodi:role="line"
|
||||
id="tspan345"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="834.27472"
|
||||
y="636.00671"
|
||||
id="text541">
|
||||
<tspan
|
||||
x="834.27472"
|
||||
y="636.00671"
|
||||
sodipodi:role="line"
|
||||
id="tspan362"
|
||||
style="stroke-width:1.06666669pt">SPRepr - node in an XML</tspan>
|
||||
<tspan
|
||||
x="834.27472"
|
||||
y="646.6734"
|
||||
sodipodi:role="line"
|
||||
id="tspan364"
|
||||
style="stroke-width:1.06666669pt">document (elements,</tspan>
|
||||
<tspan
|
||||
x="834.27472"
|
||||
y="657.34003"
|
||||
sodipodi:role="line"
|
||||
id="tspan366"
|
||||
style="stroke-width:1.06666669pt">attributes, and text nodes).</tspan>
|
||||
<tspan
|
||||
x="834.27472"
|
||||
y="668.00671"
|
||||
sodipodi:role="line"
|
||||
id="tspan368"
|
||||
style="stroke-width:1.06666669pt">Transactions are logged</tspan>
|
||||
<tspan
|
||||
x="834.27472"
|
||||
y="678.6734"
|
||||
sodipodi:role="line"
|
||||
id="tspan370"
|
||||
style="stroke-width:1.06666669pt">for replaying/undoing</tspan>
|
||||
<tspan
|
||||
x="834.27472"
|
||||
y="689.34003"
|
||||
sodipodi:role="line"
|
||||
id="tspan372"
|
||||
style="stroke-width:1.06666669pt">changes.</tspan>
|
||||
</text>
|
||||
<text
|
||||
style="font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="802.54327"
|
||||
y="923.96442"
|
||||
id="text270">
|
||||
<tspan
|
||||
x="802.54327"
|
||||
y="923.96442"
|
||||
sodipodi:role="line"
|
||||
id="tspan714"
|
||||
style="stroke-width:1.06666669pt">Cruft subsystem - (src/svg/*)</tspan>
|
||||
<tspan
|
||||
x="802.54327"
|
||||
y="936.7644"
|
||||
sodipodi:role="line"
|
||||
id="tspan716"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';stroke-width:1.06666669pt"
|
||||
x="828.10785"
|
||||
y="948.66235"
|
||||
id="text723">
|
||||
<tspan
|
||||
x="828.10785"
|
||||
y="948.66235"
|
||||
sodipodi:role="line"
|
||||
id="tspan708"
|
||||
style="stroke-width:1.06666669pt">Assorted stuff left over from</tspan>
|
||||
<tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan794"
|
||||
x="828.10785"
|
||||
y="959.32904"
|
||||
style="stroke-width:1.06666669pt">when Sodipodi forked from</tspan>
|
||||
<tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan796"
|
||||
x="828.10785"
|
||||
y="969.99567"
|
||||
style="stroke-width:1.06666669pt">Gill which doesn't have a better</tspan>
|
||||
<tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan800"
|
||||
x="828.10785"
|
||||
y="980.66235"
|
||||
style="stroke-width:1.06666669pt">home.</tspan>
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:bold;font-size:12.80000019px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="27.533974"
|
||||
y="477.37494"
|
||||
id="text257">
|
||||
<tspan
|
||||
x="27.533974"
|
||||
y="477.37494"
|
||||
sodipodi:role="line"
|
||||
id="tspan358"
|
||||
style="stroke-width:1.06666669pt">Inkscape Graphical User Interface (src/widgets, src/dialogs)</tspan>
|
||||
<tspan
|
||||
x="27.533974"
|
||||
y="490.17493"
|
||||
sodipodi:role="line"
|
||||
id="tspan360"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="37.795277"
|
||||
y="532.19989"
|
||||
id="text676">
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="532.19989"
|
||||
sodipodi:role="line"
|
||||
id="tspan318"
|
||||
style="stroke-width:1.06666669pt">widgets/* - Utilities and custom widgets to assist in implementing</tspan>
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="542.86658"
|
||||
sodipodi:role="line"
|
||||
id="tspan320"
|
||||
style="stroke-width:1.06666669pt">the Inkscape GUI and to enforce a common look and feel style</tspan>
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="553.5332"
|
||||
sodipodi:role="line"
|
||||
id="tspan322"
|
||||
style="stroke-width:1.06666669pt">across the application.</tspan>
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="564.19989"
|
||||
sodipodi:role="line"
|
||||
id="tspan324"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="37.795277"
|
||||
y="494.40463"
|
||||
id="text326">
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="494.40463"
|
||||
sodipodi:role="line"
|
||||
id="tspan335"
|
||||
style="stroke-width:1.06666669pt">dialogs/* - Code for creating the various UI dialogs in the</tspan>
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="505.07129"
|
||||
sodipodi:role="line"
|
||||
id="tspan337"
|
||||
style="stroke-width:1.06666669pt">application.</tspan>
|
||||
<tspan
|
||||
x="37.795277"
|
||||
y="515.73798"
|
||||
sodipodi:role="line"
|
||||
id="tspan339"
|
||||
style="stroke-width:1.06666669pt" />
|
||||
</text>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:100%;font-family:'Luxi Sans';writing-mode:lr-tb;text-anchor:start;stroke-width:1.06666669pt"
|
||||
x="811.09766"
|
||||
y="514.38989"
|
||||
id="text347">
|
||||
<tspan
|
||||
x="811.09766"
|
||||
y="514.38989"
|
||||
sodipodi:role="line"
|
||||
id="tspan374"
|
||||
style="stroke-width:1.06666669pt">dialogs/xml-tree.* - Code for</tspan>
|
||||
<tspan
|
||||
x="811.09766"
|
||||
y="525.05658"
|
||||
sodipodi:role="line"
|
||||
id="tspan376"
|
||||
style="stroke-width:1.06666669pt">creating and maintaining an</tspan>
|
||||
<tspan
|
||||
x="811.09766"
|
||||
y="535.72321"
|
||||
sodipodi:role="line"
|
||||
id="tspan378"
|
||||
style="stroke-width:1.06666669pt">interface for editing XML trees.</tspan>
|
||||
</text>
|
||||
</svg>
|
After Width: | Height: | Size: 29 KiB |
490
doc/architecture.txt
Normal file
|
@ -0,0 +1,490 @@
|
|||
Sodipodi internal architecture
|
||||
|
||||
1. Overview
|
||||
|
||||
The Sodipodi display and editing engine is built using the
|
||||
"Model-View-Controller" (MVC) paradigm. Unlike "classic" MVC
|
||||
programs, we have further split model into two distinct layers,
|
||||
'backbone' and 'document'. This has proven to be extremely powerful
|
||||
technique, giving us clear and fast implementation, functional
|
||||
granularity and easy expandibility.
|
||||
|
||||
1.1. Agnostic XML backbone
|
||||
|
||||
The basis of the sodipodi document is its plain XML representation in
|
||||
memory. This is a tree-shaped structure, in which each node is
|
||||
represented by a lightweight typeless object (SPRepr). These objects
|
||||
implement a minimal interface of both control (methods) and mutation
|
||||
events (callbacks). We use the term 'agnostic' for describing that
|
||||
part of model, to underline the typeless nature of SPRepr. More or
|
||||
less, this is just an XML file representation in memory.
|
||||
|
||||
1.2. Typed SVG document
|
||||
|
||||
The most actively used part of the sodipodi document model is the SVG
|
||||
object tree. This is constructed on top of the XML tree, and reacts to
|
||||
all mutation events in the agnostic tree, thus always keeping its
|
||||
internal state synchronized with the backbone. The opposite is not
|
||||
true - the XML backbone is not aware of the SVG object tree, and thus
|
||||
does not react to its modifications. If writeback to the backbone is
|
||||
needed, it must be requested explicitly by the controller. The SVG
|
||||
tree is constructed of SPObject subclasses - in general there is one
|
||||
subclass for each SVG element type, plus abstract base classes.
|
||||
|
||||
1.3. NRArena view
|
||||
|
||||
NRarena is an abstract display engine that allows construction of
|
||||
'display caches' from NRArenaItem subclasses. These are lightweight,
|
||||
having only some basic object types, and used for most of the display
|
||||
needs of Sodipodi. Both the editing window, and the bitmap export
|
||||
code create special NRArena instances, and ask the SVG document to
|
||||
show itself to the given NRArena. There is a ::show virtual method,
|
||||
implemented by all visible object classes, that adds an NRArenaItem
|
||||
node to the display tree. The completed display cache is used for fast
|
||||
screen updates and stripe based bitmap exports. During the NRArena
|
||||
lifetime SVG objects keep all of the display cache elements constantly
|
||||
updated, thus ensuring the display is always up to date.
|
||||
|
||||
1.4. Controllers
|
||||
|
||||
Like the model suggests, controllers can be implemented acting on
|
||||
different layers. Which one is best depends on the type of action
|
||||
that the given controller performs. Usually very generic and
|
||||
single-shot operating controllers act on the SPRepr layer, while those
|
||||
providing visual feedback or tied to a certain object type act on the
|
||||
SPObject layer.
|
||||
|
||||
|
||||
|
||||
2. Detailed view
|
||||
|
||||
2.1. SPRepr
|
||||
|
||||
The most basic SVG (XML) document backbone is implemented as an
|
||||
in-memory tree of SPRepr objects, each object corresponding to a
|
||||
single node in the XML file. Currently there are only two types of
|
||||
SPReprs - normal element nodes and text nodes. More types may be
|
||||
added in the future, but the structure will probably always remain
|
||||
much simpler (and faster) than DOM.
|
||||
|
||||
SPRepr may have:
|
||||
- attributes (keyword/value) pairs
|
||||
- content (text)
|
||||
- child nodes
|
||||
|
||||
Attribute values are textual, and no checks are performed in that
|
||||
layer to ensure document validity. Also, CSS style strings are
|
||||
unparsed in that layer. The SPRepr tree is built during document
|
||||
loading or creation. As it is textual and always synchronized with the
|
||||
display, unfiltered saving involves just dumping it into a file.
|
||||
|
||||
The basic API acting on SPRepr level is really spartan.
|
||||
|
||||
SPRepr *sp_repr_new (const unsigned char *name)
|
||||
SPRepr *sp_repr_new_text (const unsigned char *content)
|
||||
SPRepr *sp_repr_ref (SPRepr *repr)
|
||||
SPRepr *sp_repr_unref (SPRepr *repr)
|
||||
SPRepr *sp_repr_duplicate (SPRepr *repr)
|
||||
|
||||
int sp_repr_set_content (SPRepr *repr, const unsigned char *content)
|
||||
int sp_repr_set_attr (SPRepr *repr, const unsigned char *key, const unsigned char *value)
|
||||
int sp_repr_add_child (SPRepr *repr, SPRepr *child, SPRepr *ref)
|
||||
int sp_repr_remove_child (SPRepr *repr, SPRepr *child)
|
||||
int sp_repr_change_order (SPRepr *repr, SPRepr *child, SPRepr *ref)
|
||||
|
||||
In addition there are some accessor methods and lot of convenience ones.
|
||||
|
||||
Each SPRepr can have one or many event vectors associated with it.
|
||||
Event vector is a block of callback pointers for different kind of
|
||||
mutation events.
|
||||
|
||||
void sp_repr_add_listener (SPRepr *repr, const SPReprEventVector *vector, void *data)
|
||||
void sp_repr_remove_listener_by_data (SPRepr *repr, void *data)
|
||||
|
||||
struct _SPReprEventVector {
|
||||
void (* destroy) (SPRepr *repr, gpointer data);
|
||||
gboolean (* add_child) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
|
||||
void (* child_added) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
|
||||
gboolean (* remove_child) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
|
||||
void (* child_removed) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data);
|
||||
gboolean (* change_attr) (SPRepr *repr, const guchar *key, const guchar *oldval, const guchar *newval, gpointer data);
|
||||
void (* attr_changed) (SPRepr *repr, const guchar *key, const guchar *oldval, const guchar *newval, gpointer data);
|
||||
gboolean (* change_content) (SPRepr *repr, const guchar *oldcontent, const guchar *newcontent, gpointer data);
|
||||
void (* content_changed) (SPRepr *repr, const guchar *oldcontent, const guchar *newcontent, gpointer data);
|
||||
gboolean (* change_order) (SPRepr *repr, SPRepr *child, SPRepr *oldref, SPRepr *newref, gpointer data);
|
||||
void (* order_changed) (SPRepr *repr, SPRepr *child, SPRepr *oldref, SPRepr *newref, gpointer data);
|
||||
}
|
||||
|
||||
All events, except destroys (which are unconditional), have pre- and
|
||||
post- event callbacks. The pre-event callback's return value is used to
|
||||
signal whether the given modification is allowed. If it is FALSE the
|
||||
operation will be cancelled and the invoking method will also return
|
||||
FALSE. Using callbacks in block is much more convenient than adding
|
||||
them one-by-one, as the listening code usually wants to install several
|
||||
handlers at once, and the same set of handlers for many different
|
||||
nodes. NULL pointers are allowed in event vector.
|
||||
|
||||
Although the most important functionality of the SPRepr tree is to
|
||||
serve as a document backbone, it has other functions besides
|
||||
that. SPReprs are also used to store preferences, the copy buffer and
|
||||
the undo stack.
|
||||
|
||||
|
||||
|
||||
2.2. SPObject
|
||||
|
||||
SPObject is an abstract base class of all of the document nodes at the
|
||||
SVG document level. Each SPObject subclass implements a certain SVG
|
||||
element node type, or is an abstract base class for different node
|
||||
types. The SPObject layer is bound to the SPRepr layer, closely
|
||||
following the SPRepr mutations via callbacks. During creation,
|
||||
SPObject parses and interprets all textual attributes and CSS style
|
||||
strings of the SPRepr, and later updates the internal state whenever
|
||||
it receives a signal about a change. The opposite is not true - there
|
||||
are methods manipulating SPObjects directly and such changes do not
|
||||
propagate to the SPRepr layer. This is important for implementation of
|
||||
the undo stack, animations and other features.
|
||||
|
||||
SPObjects are bound to the higher-level container SPDocument, which
|
||||
provides document level functionality such as the undo stack,
|
||||
dictionary and so on.
|
||||
|
||||
SPObjects are implemented using the Gtk object system (GObjects in gtk
|
||||
2 version), which provides an extremely powerful and flexible OO
|
||||
framework in pure C.
|
||||
|
||||
SPObject class hierarchy
|
||||
|
||||
SPObject ABSTRACT
|
||||
SPObjectGroup ABSTRACT
|
||||
SPNamedView <sodipodi:namedview>
|
||||
SPClipPath <clipPath>
|
||||
SPGuide <sodipodi:guide>
|
||||
SPPaintServer ABSTRACT
|
||||
SPGradient ABSTRACT
|
||||
SPLinearGradient <linearGradient>
|
||||
SPRadialGradient <radialGradient>
|
||||
SPPattern <pattern>
|
||||
SPDefs <defs>
|
||||
SPItem ABSTRACT
|
||||
SPGroup <g>
|
||||
SPRoot <svg>
|
||||
SPAnchor <a>
|
||||
SPImage <image>
|
||||
SPPath ABSTARCT
|
||||
SPShape <path>
|
||||
SPLine <line>
|
||||
SPPolyLine <polyline>
|
||||
SPPolygon <polygon>
|
||||
SPStar <sodipodi:star>
|
||||
SPRect <rect>
|
||||
SPSpiral <sodipodi:spiral>
|
||||
SPGenericEllipse ABSTRACT
|
||||
SPCircle <circle>
|
||||
SPEllipse <ellipse>
|
||||
SPArc <sodipodi:arc>
|
||||
SPChars ABSTRACT
|
||||
SPString TEXT NODE
|
||||
SPDefs <defs>
|
||||
SPText <text>
|
||||
SPTSpan <tspan>
|
||||
|
||||
SPObject internals
|
||||
|
||||
struct _SPObject {
|
||||
GtkObject object;
|
||||
unsigned int hrefcount;
|
||||
SPDocument *document;
|
||||
SPObject *parent;
|
||||
SPObject *next;
|
||||
SPRepr *repr;
|
||||
unsigned char *id;
|
||||
SPStyle *style;
|
||||
const unsigned char *title;
|
||||
const unsigned char *description;
|
||||
};
|
||||
|
||||
The basic refcounting is handled by the parent class
|
||||
(GtkObject). Hrefcount is used for weak references, for example, to
|
||||
determine whether any graphical element references a certain gradient
|
||||
node. The parent and next fields are used to establish the tree
|
||||
structure. Id is copy of the SPRepr 'id' attribute for normal nodes,
|
||||
and is used as a unique index of all objects in the given document.
|
||||
|
||||
Virtual methods
|
||||
|
||||
/******** Disclaimer *******/
|
||||
This will change a lot in the future
|
||||
|
||||
void ::build (SPObject *object, SPDocument *document, SPRepr *repr)
|
||||
|
||||
This has to be invoked immediately after creation of an SPObject. The
|
||||
frontend method ensures that the new object is properly attached to
|
||||
the document and repr; implementation then will parse all of the attributes,
|
||||
generate the children objects and so on. Invoking ::build on the SPRoot
|
||||
object results in creation of the whole document tree (this is, what
|
||||
SPDocument does after the creation of the XML tree).
|
||||
|
||||
void ::release (SPObject *object)
|
||||
|
||||
This is the opposite of ::build. It has to be invoked as soon as the
|
||||
object is removed from the tree, even if it is still alive according
|
||||
to reference count. The frontend unregisters the object from the
|
||||
document and releases the SPRepr bindings; implementations should free
|
||||
state data and release all child objects. Invoking ::release on
|
||||
SPRoot destroys the whole document tree.
|
||||
|
||||
void ::child_added (SPObject *object, SPRepr *child, SPRepr *ref)
|
||||
void ::remove_child (SPObject *object, SPRepr *child)
|
||||
void ::order_changed (SPObject *object, SPRepr *repr, SPRepr *oldref, SPRepr *newref)
|
||||
|
||||
These are invoked whenever the given mutation event happens in the XML
|
||||
tree. ::remove_child is invoked BEFORE removal from the XML tree
|
||||
happens, so grouping objects can safely release the child data. The
|
||||
other two will be invoked AFTER the actual XML tree mutation. Only
|
||||
grouping objects have to implement these.
|
||||
|
||||
void ::read_attr (SPObject *object, const unsigned char *key)
|
||||
|
||||
Signals object that the XML attribute is changed. The frontend checks
|
||||
for 'id' attribute; implementations have to read the actual attribute
|
||||
value and update the internal state.
|
||||
|
||||
void ::read_content (SPObject *object)
|
||||
|
||||
Signals object that the XML node content has changed. Only meaningful for
|
||||
SPString implementing XML TEXT node.
|
||||
|
||||
void ::modified (SPObject *object, unsigned int flags)
|
||||
|
||||
Virtual method AND signal implementing asynchronous state change
|
||||
notification. Whenever the object internal state changes, it requests
|
||||
that ::modified will be scheduled from the idle loop. Flags are given
|
||||
as hints as to what exactly changes. Read the relevant section for
|
||||
more information.
|
||||
|
||||
SPRepr ::write (SPObject *object, SPRepr *repr, unsigned int flags)
|
||||
|
||||
Requests SPObject internal state to be written back to the SPRepr. If
|
||||
the SP_OBJECT_WRITE_BUILD flag is set, SPRepr is created, if necessary.
|
||||
This is used at various places, most notably to generate a plain SVG
|
||||
document, and to complete certain GUI operations.
|
||||
|
||||
|
||||
|
||||
2.3. SPItem
|
||||
|
||||
SPItem is an abstract base class for all graphic (visible) SVG nodes. It
|
||||
is a subclass of SPObject, with great deal of specific functionality.
|
||||
|
||||
SPItem internals
|
||||
|
||||
struct _SPItem {
|
||||
SPObject object;
|
||||
unsigned int sensitive : 1;
|
||||
unsigned int stop_paint: 1;
|
||||
double affine[6];
|
||||
SPItemView *display;
|
||||
SPClipPath *clip;
|
||||
};
|
||||
|
||||
Affine is a 3x2 matrix describing transformation from the item to the
|
||||
parent local coordinate systems. Each display in linked list has a link
|
||||
to a single NRArenaItem that implements actual renderable image of
|
||||
the item.
|
||||
|
||||
Virtual methods
|
||||
|
||||
/******** Disclaimer *******/
|
||||
This will change a lot in the future
|
||||
Only the most important are listed
|
||||
|
||||
void ::bbox (SPItem *item, ArtDRect *bbox, const double *transform)
|
||||
|
||||
Calculates item's logical bounding box. The logical bbox does not
|
||||
take into account the stroke width, nor certain other visual
|
||||
properties. Transformation is a 3x2 matrix describing coordinate
|
||||
transform from the item's local coordinate system to the coordinate
|
||||
system of the bounding box.
|
||||
|
||||
void ::print (SPItem *item, SPPrintContext *ctx)
|
||||
|
||||
Prints the item's visual representation, using the internal printing
|
||||
frontend. In the future this may be turned into a more generic
|
||||
exporting method.
|
||||
|
||||
char ::description (SPItem *item)
|
||||
|
||||
Gives a short description of the item suitable for use in a statusbar,
|
||||
etc.
|
||||
|
||||
NRArenaItem ::show (SPItem *item, NRArena *arena)
|
||||
|
||||
Creates an NRArena display cache representation of the item. The
|
||||
frontend places the generated item into a hierarchy; implementations
|
||||
have to build a correct NRArenaItem and keep it up to date.
|
||||
|
||||
void (* hide) (SPitem *item, NRArena *arena)
|
||||
|
||||
The opposite of ::show.
|
||||
|
||||
void ::write_transform (SPItem *item, SPRepr *repr, double *transform)
|
||||
|
||||
Tries to remove the extra transformation by modifying other aspects of
|
||||
the item representation. For example, by changing the rectangle width
|
||||
and height, the scaling component of the transformation can be
|
||||
dropped. This is used to make the SVG file more human-readable.
|
||||
|
||||
void ::menu (SPItem *item, SPDesktop *desktop, GtkMenu *menu)
|
||||
|
||||
Appends item specific lines into the menu. This is used to generate
|
||||
the context menu, and will probably move into a separate module in
|
||||
the future.
|
||||
|
||||
|
||||
|
||||
2.4 SPDocument
|
||||
|
||||
SPDocument serves as the container of both model trees (agnostic XML
|
||||
and typed object tree), and implements all of the document-level
|
||||
functionality used by the program.
|
||||
|
||||
SPDocument implements undo and redo stacks and an id-based object
|
||||
dictionary. Thanks to unique id attributes, the latter can be used to
|
||||
map from the XML tree back to the object tree. Documents are
|
||||
themselves registered by the main program metaobject 'Sodipodi', which
|
||||
does elementary bookkeeping.
|
||||
|
||||
SPDocument performs the basic operations needed for asynchronous
|
||||
update notification (SPObject ::modified virtual method), and implements
|
||||
the 'modified' signal, as well.
|
||||
|
||||
Many document level operations, like load, save, print, export and so on,
|
||||
use SPDocument as their basic datatype.
|
||||
|
||||
2.4.1. Undo and Redo implementation
|
||||
|
||||
Using the split document model gives sodipodi a very simple and clean
|
||||
undo implementation. Whenever mutation occurs in the XML tree,
|
||||
SPObject invokes one of the five corresponding handlers of its
|
||||
container document. This writes down a generic description of the
|
||||
given action, and appends it to the recent action list, kept by the
|
||||
document. There will be as many action records as there are mutation
|
||||
events, which are all kept and processed together in the undo
|
||||
stack. Two methods exist to indicate that the given action is completed:
|
||||
|
||||
void sp_document_done (SPDocument *document)
|
||||
void sp_document_maybe_done (SPDocument *document, const unsigned char *key)
|
||||
|
||||
Both move the recent action list into the undo stack and clear the
|
||||
list afterwards. While the first method does an unconditional push,
|
||||
the second one first checks the key of the most recent stack entry. If
|
||||
the keys are identical, the current action list is appended to the
|
||||
existing stack entry, instead of pushing it onto its own. This
|
||||
behaviour can be used to collect multi-step actions (like winding the
|
||||
Gtk spinbutton) from the UI into a single undoable step.
|
||||
|
||||
For controls implemented by Sodipodi itself, implementing undo as a
|
||||
single step is usually done in a more efficient way. Most controls have
|
||||
the abstract model of grab, drag, release, and change user
|
||||
action. During the grab phase, all modifications are done to the
|
||||
SPObject directly - i.e. they do not change XML tree, and thus do not
|
||||
generate undo actions either. Only at the release phase (normally
|
||||
associated with releasing the mousebutton), changes are written back
|
||||
to the XML tree, thus generating only a single set of undo actions.
|
||||
|
||||
|
||||
2.5. SPView and SPviewWidget
|
||||
|
||||
SPView is an abstract base class of all UI document views. This
|
||||
includes both the editing window and the SVG preview, but does not
|
||||
include the non-UI RGBA buffer-based NRArenas nor the XML editor or
|
||||
similar views. The SPView base class has very little functionality of
|
||||
its own.
|
||||
|
||||
SPViewWidget is a GUI widget that contain a single SPView. It is also
|
||||
an abstract base class with little functionality of its own.
|
||||
|
||||
2.6. SPDesktop
|
||||
|
||||
SPDesktop is a subclass of SPView, implementing an editable document
|
||||
canvas. It is extensively used by many UI controls that need certain
|
||||
visual representations of their own.
|
||||
|
||||
SPDesktop provides a certain set of SPCanvasItems, serving as GUI
|
||||
layers of different control objects. The one containing the whole
|
||||
document is the drawing layer. In addition to it, there are grid,
|
||||
guide, sketch and control layers. The sketch layer is used for
|
||||
temporary drawing objects, before the real objects in document are
|
||||
created. The control layer contains editing knots, rubberband and
|
||||
similar non-document UI objects.
|
||||
|
||||
Each SPDesktop is associated with a SPNamedView node of the document
|
||||
tree. Currently, all desktops are created from a single main named
|
||||
view, but in the future there may be support for different ones.
|
||||
SPNamedView serves as an in-document container for desktop-related
|
||||
data, like grid and guideline placement, snapping options and so on.
|
||||
|
||||
Associated with each SPDesktop are the two most important editing
|
||||
related objects - SPSelection and SPEventContext.
|
||||
|
||||
Sodipodi keeps track of the active desktop and invokes notification
|
||||
signals whenever it changes. UI elements can use these to update their
|
||||
display to the selection of the currently active editing window.
|
||||
|
||||
2.7. SPSelection
|
||||
|
||||
This is a per-desktop object that keeps the list of selected objects
|
||||
at the given desktop. Both SPItem and SPRepr lists can be retrieved
|
||||
from the selection. Many actions operate on the selection, so it is
|
||||
widely used throughout the Sodipodi code.
|
||||
|
||||
SPSelection also implements its own asynchronous notification signals,
|
||||
that UI elements can listen to.
|
||||
|
||||
2.8. SPEventContext
|
||||
|
||||
SPEventContext is an abstract base class of all tools. As the name
|
||||
indicates, event context implementations process UI events (mouse
|
||||
movements and keypresses) and take actions (like creating or modifying
|
||||
objects). There is one event context implementation for each tool,
|
||||
plus few abstract base classes. Writing a new tool involves
|
||||
subclassing SPEventContext.
|
||||
|
||||
|
||||
|
||||
3. Some thoughts
|
||||
|
||||
3.1. Why do we need a two-level model tree?
|
||||
|
||||
The need for a typed object tree is obvious if we want to utilize OO
|
||||
programming - which we certainly want to do. Although implemented in pure C,
|
||||
Sodipodi uses the gtk (glib in future versions) type and object system,
|
||||
which gives us an extremely powerful set of OO functionality. As SVG is
|
||||
designed with inheritance in mind, using object subclassing to represent
|
||||
it is perfectly the right thing to do.
|
||||
|
||||
But there are also areas where typed object structure would make
|
||||
things more complex. For example, to implement the copy buffer we had
|
||||
to save the full state of copied objects. While this could be done
|
||||
with the separate virtual method of SPObject, we can use a much easier
|
||||
way and create the duplicate corresponding SPRepr. As our document
|
||||
model already has to implement generation of full object
|
||||
representation for SPRepr tree of nodes, generation of new objects
|
||||
during paste happens automatically when the given SPRepr is inserted
|
||||
into XML tree. The agnostic xml tree is also used for undo stack, as
|
||||
described earlier.
|
||||
|
||||
The main benefit comes from the extreme simplicity of the XML tree
|
||||
manipulation API. All operations can be done, using only around 10
|
||||
methods, which makes code much more robust, and is perfect for
|
||||
implementing compatibility sensitive things, like a plugin API.
|
||||
|
||||
The XML tree also makes implementing two SVG features - cloning and
|
||||
animations - much easier by providing an invariant backbone.
|
||||
|
||||
|
||||
|
||||
22. Novemebr 2002
|
||||
Lauris Kaplinski
|
||||
<lauris@kaplinski.com>
|
BIN
doc/class-hierarchy.dia
Normal file
53
doc/coordinates.txt
Normal file
|
@ -0,0 +1,53 @@
|
|||
Please note that the behavior documented here (from Sodipodi) should be considered a bug.
|
||||
|
||||
Inkscape should switch to the native SVG coordinate system.
|
||||
|
||||
-mental
|
||||
|
||||
Coordinate systems used by sodipodi
|
||||
|
||||
1. Desktop coordinates
|
||||
|
||||
Are the base coordinate system of all editing, UI etc.
|
||||
i.e. the ones user is directly seeing (maybe some time
|
||||
we'll make this configurable).
|
||||
|
||||
0,0 is at lower-left
|
||||
X grows to the right
|
||||
Y grows upwards
|
||||
Only valid units are real-world ones (mm, cm...) - i.e.
|
||||
there is no such unit as pixel etc.
|
||||
If printed, 1 desktop mm should be 1mm on paper
|
||||
|
||||
2. Document coordinates
|
||||
|
||||
As we all know, SVG Y grows downwards. So document is
|
||||
placed at 0,HEIGHT, mirrored vertically, where HEIGHT
|
||||
is viewport height in desktop coordinates.
|
||||
Moreover SVG coordinate space is scaled by 0.8, so
|
||||
1mm in SVG space equals 1mm in desktop space.
|
||||
|
||||
The full matrix looks like:
|
||||
|
||||
[ 0.8 0.0 0.0 ]
|
||||
[ 0.0 -0.8 HEIGHT ]
|
||||
|
||||
Where height equals SVG viewport height in real units
|
||||
i.e. if viewport is 210mmx297mm HEIGHT is also 297mm.
|
||||
|
||||
Document coordinates are stored in desktop object,
|
||||
as doc2dt[] matrix, and not directly accessible to
|
||||
document itself. I.e. document renders it just as any
|
||||
normal SVG viewer should do.
|
||||
|
||||
Technically SVG placement is achieved by specifying
|
||||
doc2dt transform to drawing parent canvas group.
|
||||
|
||||
3. user coordinates
|
||||
|
||||
These are as specified by SVG spec.
|
||||
1 px == 1 user unit
|
||||
1 pt == 1.25 px
|
||||
etc.
|
||||
|
||||
31/08/2002 Lauris Kaplinski <lauris@kaplinski.com>
|
411
doc/extension_system.txt
Normal file
|
@ -0,0 +1,411 @@
|
|||
== Inkscape Extensions ==
|
||||
|
||||
=== Introduction ===
|
||||
|
||||
The extensions system in Inkscape is a way for adding functionality to
|
||||
Inkscape, without affecting the core of the program itself. We want
|
||||
Inkscape to follow a core-plus-modules approach similar to that adopted
|
||||
by many successful open source projects such as the Linux kernel, Perl,
|
||||
Apache, Gimp, and so on. There are many different types of extension
|
||||
mechanisms, including file format conversion tools, filter scripts that
|
||||
process SVG, user interface elements that can be added at runtime, and
|
||||
so forth.
|
||||
|
||||
This proposal defines a design for handling this wide variety of
|
||||
extensions in a flexible manner. This document provides a way to
|
||||
understand the extensions system, and how extensions fit into this
|
||||
overall system.
|
||||
|
||||
Much of the documentation that will be useful for users of the extension
|
||||
system is not included in this document, it is autogenerated from the
|
||||
source code and placed on the Inkscape webpage. While this is less
|
||||
convenient, it is more correct, and maintained as the source code is
|
||||
modified. Please look aton the Inkscape webpage also.
|
||||
|
||||
|
||||
=== Terminology ===
|
||||
|
||||
*Extension* - An extension is something that extends the functionality
|
||||
of Inkscape without being directly part of the core. This implies
|
||||
that it should be easy to remove or add, and nothing in the core should
|
||||
depend on it directly.
|
||||
|
||||
*Extension Type* - Establishes the functional interface that the
|
||||
Extension provides, including the types of messages it handles and what
|
||||
is contained in its data structures.
|
||||
|
||||
*Extension Implementation* - Defines how the extension is accessed;
|
||||
i.e. through message passing, pipe/exec calls with commandline
|
||||
arguments, direct function calls, etc.
|
||||
|
||||
*Plug-in* - An extension that is implemented through a loadable library.
|
||||
This is a .so file on Unix-like systems or a .dll on Win32. The
|
||||
libraries should not be loaded until they are used.
|
||||
|
||||
*Script* - A script is a type of extension that is implemented through
|
||||
an external program that receives and sets SVG data through files and
|
||||
pipes. This allows Inkscape to use programs that handle SVG but are
|
||||
targeted differently, seamlessly inside of Inkscape.
|
||||
|
||||
*Language Binding* - A special type of plug-in that wraps a scripting
|
||||
language interpreter such as Perl, Python, Lisp, etc. A user
|
||||
interested in programmatic access to Inkscape's internals via one of
|
||||
these languages can install (or create) the relevant Language Binding
|
||||
Plug-in to achieve this.
|
||||
|
||||
*INX* - *'INkscape eXtension'* - The filename extension used for XML
|
||||
metadata files that describe each Inkscape Extension.
|
||||
|
||||
*Internal Extension* - A part of the Inkscape codebase which uses the
|
||||
extension system in order to make it more modular. This code is
|
||||
compiled into Inkscape, but appears as an extension to all other code
|
||||
in the codebase.
|
||||
|
||||
|
||||
=== Requirements ===
|
||||
|
||||
* Uses a general language binding system so it's easy to add new
|
||||
language binding support.
|
||||
* Allows direct interaction with the document object model including
|
||||
changing.
|
||||
* Allows some limited interaction with the Inkscape UI such as
|
||||
manipulating grids, overlays, etc.
|
||||
* Allows direct interaction with file load/save/export/print
|
||||
subsystem.
|
||||
* Guaranteed to work properly with the undo system, even if the
|
||||
extension is not written carefully.
|
||||
* Well documented so is easy for people to learn how to make new
|
||||
extensions.
|
||||
* Each extension can be implemented, distributed, and managed
|
||||
independently of the core project.
|
||||
* Icons, buttons, and other UI elements for extensions fit seamlessly
|
||||
into main application GUI.
|
||||
* User can easily select which extensions to automatically load into
|
||||
application at startup.
|
||||
* Loading of extensions shall not seriously slow startup time or make
|
||||
a major impact on memory footprint.
|
||||
* Failure of a extension shall not leave the drawing in an
|
||||
inconsistent state.
|
||||
* Main application must gracefully recover from extension crashes or
|
||||
other serious problems with extension execution.
|
||||
* Dependencies for particular extensions must be clearly identified for user if missing.
|
||||
|
||||
|
||||
=== Overview ===
|
||||
|
||||
Different kinds of extensions can be categorized in two ways. First,
|
||||
but what the extension does: File format converters, printing, SVG
|
||||
manipulation, symbol libraries, etc. Second, by how the extension is
|
||||
implemented: command-line scripts, dynamically loaded libraries,
|
||||
internal compiled-in code, etc.
|
||||
|
||||
The first kind of categorization is called the *Extension Type*. This
|
||||
essentially establishes a calling interface and the set of messages the
|
||||
extension must be able to receive and handle. For example, extensions
|
||||
of type Print must have a way to handle 'print' message.
|
||||
|
||||
The second is the *Extension Implementation*. This defines the
|
||||
mechanism Inkscape must use for passing messages to the extension. For
|
||||
example, commandline scripts would have messages passed as commandline
|
||||
arguments, whereas loadable plug-ins would have the messages passed to
|
||||
the plug-in's message handler routine.
|
||||
|
||||
The categories of both Extension Types and Extension Implementations are
|
||||
left open ended. This way, if someone comes up with new ideas for ways
|
||||
to extend Inkscape that doesn't fit within the existing models, they can
|
||||
add these mechanisms in a straightforward fashion.
|
||||
|
||||
For the purposes of this document, however, we focus on just the
|
||||
following Types and Implementations:
|
||||
|
||||
Extension
|
||||
"Input" - loading various file formats
|
||||
"Output" - saving as various file formats
|
||||
"Effect" - apply some sort of change to SVG elements in the doc
|
||||
"Print" - prints using different drivers or modes
|
||||
"Collection" - a group of objects that have thumbnails and images that
|
||||
can be used inside a document. Libraries can be
|
||||
searchable and may be presented in a hierarchical
|
||||
structure
|
||||
|
||||
"Extension Implementations"
|
||||
"Internal" - code that is internal to Inkscape which uses the
|
||||
extension system for some functionality
|
||||
"Script" - a cmdline program that takes an SVG document to its
|
||||
STDIN and emits a modified SVG document to its STDOUT,
|
||||
with control messages given as commandline parameters.
|
||||
|
||||
"Plug-in" - a loadable module with a message handler routine that
|
||||
receives messages and that operates on the Inkscape API
|
||||
functions directly.
|
||||
|
||||
=== Extension System Basics ===
|
||||
|
||||
Leaving the topic of Types and Implementations aside, we can make some
|
||||
generalizations about how all Extensions work, and behaviors or
|
||||
attributes that all Extensions share. This includes how they are
|
||||
registered, how they handle preferences, how dependency resolution is
|
||||
achieved, and versioning. These common behaviors are all established
|
||||
via a base class that all Extension Types derive from.
|
||||
|
||||
=== Extension Base Class ===
|
||||
|
||||
The Extension base class holds the attribute data that all extensions
|
||||
must have and establishes the base functionality that all extensions
|
||||
share. All extensions have the following properties:
|
||||
|
||||
"ID" - A unique identifier for this extension that is used for referring
|
||||
to the extension and naming its parameters in the configuration files.
|
||||
|
||||
"Name" - The textual name of the extension, it is used for user
|
||||
interaction with the extension. It is used for users to identify the
|
||||
extension.
|
||||
|
||||
"Parameters" - Each extension keeps a record of all of the parameters
|
||||
that it has. The can be changed internally, through a GUI, or by other
|
||||
extensions. Parameters can be found and adjusted using functions that
|
||||
are within the base class.
|
||||
|
||||
=== Extension Registry ===
|
||||
|
||||
Inkscape maintains a data structure of all the registered extensions.
|
||||
This registry can be queried against to retrieve lists of extensions
|
||||
meeting various conditions (such as all Input extensions).
|
||||
|
||||
The Extension Registry contains all extensions whether or not they
|
||||
failed their dependency checking on startup. This allows for additional
|
||||
information to be displayed on the reasoning behind marking the
|
||||
extension as disabled.
|
||||
|
||||
The registry can be reloaded from the Inkscape GUI while Inkscape is
|
||||
running. This can be used to add new extensions into the system, or
|
||||
help debug new extensions. When the registry is reloaded all extensions
|
||||
are first unloaded, then they're specification files are re-read.
|
||||
|
||||
=== Handling Preferences ===
|
||||
|
||||
Individual extensions can have their own preferences which are used by
|
||||
the extension. These are typically attributes of the operation that can
|
||||
be modified by the user through a dialog. It is also possible to have
|
||||
other extensions modify these values when they are using an extension.
|
||||
For most extensions, these will be edited by a dialog that relates to
|
||||
the preferences of the user.
|
||||
|
||||
The preferences themselves are defined in the inx file that describes
|
||||
the extension. In this definition there is the name, the type, and the
|
||||
default value. The types are: boolean, integer, float and string.
|
||||
Other types can be developed using these as a basis. If there is no
|
||||
custom value set the default value is used.
|
||||
|
||||
When a value is written to a preference for an extension, that value is
|
||||
saved in the global preferences for Inkscape using the ID of the module
|
||||
as the basis for the naming. At next use (including after restarting
|
||||
the application) this value is used instead of the default. This allows
|
||||
user preferences on a extension to remain persistent throughout uses of
|
||||
Inkscape.
|
||||
|
||||
=== INX Files ===
|
||||
|
||||
The INX file is the description of the Inkscape Extension. It provides
|
||||
all of the information that is used to identify the extension, and
|
||||
determine what type of extension it is. This file is loaded on startup
|
||||
of Inkscape, and the objects relating to the extension are created. All
|
||||
extensions have an inx file, but many internal extensions compile this
|
||||
file into the codebase (to reduce dependencies).
|
||||
|
||||
The INX file also contains information on the dependencies that are
|
||||
required for the extension to operate. These dependencies can be
|
||||
everything from required files, required libraries or other extensions
|
||||
that help this one. The dependencies are checked as the file is loaded,
|
||||
and an extension is marked as dead if they are not met. Also
|
||||
dependencies can check different versions of particular objects to see
|
||||
if they are met.
|
||||
|
||||
|
||||
=== Extension Types ===
|
||||
|
||||
Each Extension is identified by it's 'Type'. This determines the type
|
||||
of programmatic interface that it adheres to, enabling Inkscape to know
|
||||
what functionality it can expect from the extension.
|
||||
|
||||
=== Input ===
|
||||
|
||||
An input extension provides a way to get data into Inkscape. This type
|
||||
of extension creates a document given a filename. This is done by using
|
||||
the 'open' method within the class. Also, there is a 'prefs' function
|
||||
which will generate a GtkDialog. This dialog is then used to get any
|
||||
settings that the incoming file and extension may use. This function is
|
||||
executed, and the dialog returns, before the open method is called.
|
||||
|
||||
There are also several other settings stored in an Input extension.
|
||||
This includes information on the type of file the input module can take
|
||||
in including its filename extension and mime type. Also, there is a
|
||||
space to store a tooltip for additional information on the file type in
|
||||
the file dialog. Lastly, there is the key of which Output extension is
|
||||
recommended for saving this filetype. This is useful, as there is no
|
||||
other direct links between the Input and Output functions, and a user
|
||||
expects to be able to open and save without using the 'Save As...'
|
||||
dialog.
|
||||
|
||||
=== Output ===
|
||||
|
||||
An output extension controls how SVG documents are exported from
|
||||
Inkscape. This type of extension creates a file given a document
|
||||
object. This is done using the 'save' method within the class.
|
||||
|
||||
The method for how files are exported depends on what type of
|
||||
Implementation is used. For Scripts, the file is first saved as a
|
||||
temporary SVG file, and then processed by calling the commandline
|
||||
programs to convert it. For Plug-ins, the document object is passed to
|
||||
the extension with a 'save' message and a filename, and the extension
|
||||
program performs the file save operation itself.
|
||||
|
||||
=== Effect ===
|
||||
|
||||
Effect extensions cause a modification of a loaded document. For
|
||||
example, it might add a new shape to the drawing, or change all selected
|
||||
objects to be purple with green dotted borders.
|
||||
|
||||
=== Print ===
|
||||
|
||||
The Print Extension Type is for extensions that interface with printing
|
||||
subsystems. Examples would be Win32, postscript, and GNOME Print.
|
||||
|
||||
=== Collection ===
|
||||
|
||||
|
||||
=== Creating Extensions ===
|
||||
|
||||
In this chapter, we discuss how to create an extension from scratch,
|
||||
incorporate into Inkscape, and release it for the general Inkscape
|
||||
community to use. This chapter can be read independently of the rest of
|
||||
the document, using the rest as reference material.
|
||||
|
||||
=== Selecting an Extension Strategy ===
|
||||
|
||||
First of all, you will need to select the method you'll use for creating your extension.
|
||||
|
||||
Scripts are the simplest extensions to create, because they work through
|
||||
STDIN/STDOUT, so you need to know very little about Inkscape internals
|
||||
to make them work. However, their ability to interact with the Inkscape
|
||||
internals is limited compared with other approaches. For file format
|
||||
converters, this is usually fine. You can also create filters programs
|
||||
that take the entire document to its STDIN, process it, and return a
|
||||
modified copy to STDOUT. Some control of the extension is possible via
|
||||
its commandline arguments.
|
||||
|
||||
One of the nice things about Scripts is that they can be written in any
|
||||
language. It need not even be a scripting language - as long as it
|
||||
handles STDIN and STDOUT and uses commandline arguments, you can write
|
||||
it however you wish.
|
||||
|
||||
Plug-ins are more powerful than Scripts, but require more knowledge of
|
||||
Inkscape internals, and must be written according to specific criteria.
|
||||
Generally, since these are loaded as dynamic objects, they'll need to be
|
||||
written in a language that can generate them, such as C or C++.
|
||||
|
||||
The best of both worlds can be available through Language Bindings,
|
||||
which are Plug-ins that wrapper a script interpreter. This enables you
|
||||
to call various Inkscape internal routines through your scripting
|
||||
language's functions. If someone has created a Language Binding for
|
||||
your language of choice, you're all set, otherwise you'll have to create
|
||||
a Plug-in for it. Language Binding Plug-ins have a few more
|
||||
requirements than ordinary Plug-ins, and require a greater amount of
|
||||
knowledge of the Inkscape internals, so it can take quite some time to
|
||||
do properly.
|
||||
|
||||
Internal Extensions are in a way the reverse of a normal Extension, in
|
||||
that instead of providing a way to hook into Inkscape from the outside,
|
||||
they provide hooks from inside Inkscape. These are used directly by
|
||||
Inkscape, such as in the case of compiled-in printing modules. Most
|
||||
users will never need to write this type of extension, they are pretty
|
||||
much for Inkscape core developers only.
|
||||
|
||||
=== Writing Your Extension ===
|
||||
|
||||
This section provides some guidance and examples for implementing
|
||||
different kinds of Extensions.
|
||||
|
||||
=== Writing Script Extensions ===
|
||||
|
||||
=== Writing Plug-in Extensions ===
|
||||
|
||||
=== Writing Language Binding Plug-in Extensions ===
|
||||
|
||||
=== Creating an INX File ===
|
||||
|
||||
Every extension must have a corresponding *.inx file. This is an XML
|
||||
file that provides Inkscape with information about the module and allows
|
||||
it to load the info without needing to access the module itself. The
|
||||
*.inx file contains enough info for Inkscape to set up menu items and
|
||||
know what kinds of functionality to expect from the extension.
|
||||
|
||||
=== Packaging Your Extension ===
|
||||
|
||||
=== Contributing Your Extension to the Inkscape Community ===
|
||||
|
||||
Once your extension is complete, you may wish to share it with the
|
||||
community. There are of course no hard and fast rules for how to share
|
||||
your work, but this section illustrates some approaches.
|
||||
|
||||
=== Listing Your Extension ===
|
||||
|
||||
First, you will need to put your extension someplace that others can
|
||||
find and download it. If you have adequate webspace, you could simply
|
||||
upload it to your web server. More typically, you will want to upload
|
||||
it to a mirroring system like SourceForge (http://www.sourceforge.net),
|
||||
CPAN (http://www.cpan.org), and the like. The Inkscape project may also
|
||||
be willing to host your extension; contact the admins for more info.
|
||||
|
||||
It can also be helpful to list your extension with one of the various
|
||||
software registries, such as Freshmeat (http://www.freshmeat.net). You
|
||||
should also list it on the Inkscape Wiki site.
|
||||
|
||||
=== Announcing Your Extension ===
|
||||
|
||||
After posting your extension someplace from which it can be downloaded,
|
||||
you should also announce its availability, by sending an email to
|
||||
inkscape-announce@lists.sourceforge.net. You may also want to announce
|
||||
it on other related sites; for instance, if you've written a plug-in to
|
||||
allow operation of Imagemagick from within Inkscape, it could be a good
|
||||
idea to announce it to the Imagemagick list.
|
||||
|
||||
|
||||
=== Incorporating Your Extension in to Inkscape ===
|
||||
|
||||
Because the intent with the extension system is to break things *out*
|
||||
from the core, most extensions should be packaged and distributed
|
||||
independently of the main Inkscape distribution. However, for ease of
|
||||
user installation, an extension-pack can be shipped along with the core
|
||||
Inkscape package. Also, certain extensions may be so critical to
|
||||
Inkscape operation (such as for printing) that they should be included
|
||||
in the core.
|
||||
|
||||
If your extension seems like it should be incorporated into the Inkscape
|
||||
core, contact the Inkscape developers about this, and discuss how best
|
||||
to include it in the distribution with them.
|
||||
|
||||
=== Conclusion ===
|
||||
|
||||
It is anticipated that the incorporation of this extensions capability
|
||||
will bring Inkscape added power and flexibility while avoiding bloating
|
||||
the core with cool-but-rarely-used functionality. Further, it empowers
|
||||
users and non-core Inkscape developers to extend the application with
|
||||
their own new capabilities, without needing to gain special access and
|
||||
acceptance by the project. Dynamic loading of functionality will also
|
||||
allow Inkscape to remain 'lean and mean', loading up functionality on an
|
||||
as-needed basis, and conserving memory by unloading functionality when
|
||||
it is not needed.
|
||||
|
||||
The key point of this design specification is the architectural concept
|
||||
of separately identifying an extension's interface type, or 'Extension
|
||||
Type', from its implementation method, or 'Extension Implementation'.
|
||||
This feature enables Inkscape to be extended in a variety of mechanisms,
|
||||
including ways not yet foreseen.
|
||||
|
||||
|
||||
=== History and references ===
|
||||
|
||||
Base design taken from Ted Gould's Extension System work.
|
||||
|
||||
This document originally authored by Bryce Harrington, July 2004
|
237
doc/extension_system.xml
Normal file
|
@ -0,0 +1,237 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<book lang="en_us">
|
||||
<title>Inkscape Extensions</title>
|
||||
<chapter>
|
||||
<title>Introduction</title>
|
||||
<para>The extensions system in Inkscape is a way for adding functionality to Inkscape, without affecting the core of the program itself. We want Inkscape to follow a core-plus-modules approach similar to that adopted by many successful open source projects such as the Linux kernel, Perl, Apache, Gimp, and so on. There are many different types of extension mechanisms, including file format conversion tools, filter scripts that process SVG, user interface elements that can be added at runtime, and so forth.</para>
|
||||
<para>This proposal defines a design for handling this wide variety of extensions in a flexible manner. This document provides a way to understand the extensions system, and how extensions fit into this overall system.</para>
|
||||
<para>Much of the documentation that will be useful for users of the extension system is not included in this document, it is autogenerated from the source code and placed on the Inkscape webpage. While this is less convenient, it is more correct, and maintained as the source code is modified. Please look aton the Inkscape webpage also.</para>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Terminology</title>
|
||||
<para><emphasis>Extension</emphasis> - An extension is something that extends the functionality of Inkscape without being directly part of the core. This implies that it should be easy to remove or add, and nothing in the core should depend on it directly.</para>
|
||||
<para><emphasis>Extension Type</emphasis> - Establishes the functional interface that the Extension provides, including the types of messages it handles and what is contained in its data structures.</para>
|
||||
<para><emphasis>Extension Implementation</emphasis> - Defines how the extension is accessed; i.e. through message passing, pipe/exec calls with commandline arguments, direct function calls, etc.</para>
|
||||
<para><emphasis>Plug-in</emphasis> - An extension that is implemented through a loadable library. This is a .so file on Unix-like systems or a .dll on Win32. The libraries should not be loaded until they are used.</para>
|
||||
<para><emphasis>Script</emphasis> - A script is a type of extension that is implemented through an external program that receives and sets SVG data through files and pipes. This allows Inkscape to use programs that handle SVG but are targeted differently, seamlessly inside of Inkscape.</para>
|
||||
<para><emphasis>Language Binding</emphasis> - A special type of plug-in that wraps a scripting language interpreter such as Perl, Python, Lisp, etc. A user interested in programmatic access to Inkscape's internals via one of these languages can install (or create) the relevant Language Binding Plug-in to achieve this.</para>
|
||||
<para><emphasis>INX</emphasis> - <emphasis>'INkscape eXtension'</emphasis> - The filename extension used for XML metadata files that describe each Inkscape Extension.</para>
|
||||
<para><emphasis>Internal Extension</emphasis> - A part of the Inkscape codebase which uses the extension system in order to make it more modular. This code is compiled into Inkscape, but appears as an extension to all other code in the codebase.</para>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Requirements</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>Uses a general language binding system so it's easy to add new language binding support.</para></listitem>
|
||||
<listitem><para>Allows direct interaction with the document object model including changing.</para></listitem>
|
||||
<listitem><para>Allows some limited interaction with the Inkscape UI such as manipulating grids, overlays, etc.</para></listitem>
|
||||
<listitem><para>Allows direct interaction with file load/save/export/print subsystem.</para></listitem>
|
||||
<listitem><para>Guaranteed to work properly with the undo system, even if the extension is not written carefully.</para></listitem>
|
||||
<listitem><para>Well documented so is easy for people to learn how to make new extensions.</para></listitem>
|
||||
<listitem><para>Each extension can be implemented, distributed, and managed independently of the core project.</para></listitem>
|
||||
<listitem><para>Icons, buttons, and other UI elements for extensions fit seamlessly into main application GUI.</para></listitem>
|
||||
<listitem><para>User can easily select which extensions to automatically load into application at startup.</para></listitem>
|
||||
<listitem><para>Loading of extensions shall not seriously slow startup time or make a major impact on memory footprint.</para></listitem>
|
||||
<listitem><para>Failure of a extension shall not leave the drawing in an inconsistent state.</para></listitem>
|
||||
<listitem><para>Main application must gracefully recover from extension crashes or other serious problems with extension execution.</para></listitem>
|
||||
<listitem><para>Dependencies for particular extensions must be clearly identified for user if missing.</para></listitem>
|
||||
</itemizedlist>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Overview</title>
|
||||
<para>Different kinds of extensions can be categorized in two ways. First, but what the extension does: File format converters, printing, SVG manipulation, symbol libraries, etc. Second, by how the extension is implemented: command-line scripts, dynamically loaded libraries, internal compiled-in code, etc.</para>
|
||||
<para>The first kind of categorization is called the <emphasis>Extension Type</emphasis>. This essentially establishes a calling interface and the set of messages the extension must be able to receive and handle. For example, extensions of type Print must have a way to handle 'print' message.</para>
|
||||
<para>The second is the <emphasis>Extension Implementation</emphasis>. This defines the mechanism Inkscape must use for passing messages to the extension. For example, commandline scripts would have messages passed as commandline arguments, whereas loadable plug-ins would have the messages passed to the plug-in's message handler routine.</para>
|
||||
<para>The categories of both Extension Types and Extension Implementations are left open ended. This way, if someone comes up with new ideas for ways to extend Inkscape that doesn't fit within the existing models, they can add these mechanisms in a straightforward fashion.</para>
|
||||
<para>For the purposes of this document, however, we focus on just the following Types and Implementations:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>Extension Types</term>
|
||||
<listitem>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>Input</term>
|
||||
<listitem>
|
||||
<para>loading various file formats</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Output</term>
|
||||
<listitem>
|
||||
<para>saving as various file formats</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Effect</term>
|
||||
<listitem>
|
||||
<para>apply some sort of change to SVG elements in the doc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Print</term>
|
||||
<listitem>
|
||||
<para>prints using different drivers or modes</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Collection</term>
|
||||
<listitem>
|
||||
<para>a group of objects that have thumbnails and images that can be used inside a document. Libraries can be searchable and may be presented in a hierarchical structure</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Extension Implementations</term>
|
||||
<listitem>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>Internal</term>
|
||||
<listitem>
|
||||
<para>code that is internal to Inkscape which uses the extension system for some functionality</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Script</term>
|
||||
<listitem>
|
||||
<para>a cmdline program that takes an SVG document to its STDIN and emits a modified SVG document to its STDOUT, with control messages given as commandline parameters.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Plug-in</term>
|
||||
<listitem>
|
||||
<para>a loadable module with a message handler routine that receives messages and that operates on the Inkscape API functions directly.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Extension System Basics</title>
|
||||
<para>Leaving the topic of Types and Implementations aside, we can make some generalizations about how all Extensions work, and behaviors or attributes that all Extensions share. This includes how they are registered, how they handle preferences, how dependency resolution is achieved, and versioning. These common behaviors are all established via a base class that all Extension Types derive from.</para>
|
||||
<section>
|
||||
<title>Extension Base Class</title>
|
||||
<para>The Extension base class holds the attribute data that all extensions must have and establishes the base functionality that all extensions share. All extensions have the following properties:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>ID</term>
|
||||
<para>A unique identifier for this extension that is used for referring to the extension and naming its parameters in the configuration files.</para>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Name</term>
|
||||
<para>The textual name of the extension, it is used for user interaction with the extension. It is used for users to identify the extension.</para>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Parameters</term>
|
||||
<para>Each extension keeps a record of all of the parameters that it has. The can be changed internally, through a GUI, or by other extensions. Parameters can be found and adjusted using functions that are within the base class.</para>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
<section>
|
||||
<title>Extension Registry</title>
|
||||
<para>Inkscape maintains a data structure of all the registered extensions. This registry can be queried against to retrieve lists of extensions meeting various conditions (such as all Input extensions).</para>
|
||||
<para>The Extension Registry contains all extensions whether or not they failed their dependency checking on startup. This allows for additional information to be displayed on the reasoning behind marking the extension as disabled.</para>
|
||||
<para>The registry can be reloaded from the Inkscape GUI while Inkscape is running. This can be used to add new extensions into the system, or help debug new extensions. When the registry is reloaded all extensions are first unloaded, then they're specification files are re-read.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Handling Preferences</title>
|
||||
<para>Individual extensions can have their own preferences which are used by the extension. These are typically attributes of the operation that can be modified by the user through a dialog. It is also possible to have other extensions modify these values when they are using an extension. For most extensions, these will be edited by a dialog that relates to the preferences of the user.</para>
|
||||
<para>The preferences themselves are defined in the inx file that describes the extension. In this definition there is the name, the type, and the default value. The types are: boolean, integer, float and string. Other types can be developed using these as a basis. If there is no custom value set the default value is used.</para>
|
||||
<para>When a value is written to a preference for an extension, that value is saved in the global preferences for Inkscape using the ID of the module as the basis for the naming. At next use (including after restarting the application) this value is used instead of the default. This allows user preferences on a extension to remain persistent throughout uses of Inkscape.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>INX Files</title>
|
||||
<para>The INX file is the description of the Inkscape Extension. It provides all of the information that is used to identify the extension, and determine what type of extension it is. This file is loaded on startup of Inkscape, and the objects relating to the extension are created. All extensions have an inx file, but many internal extensions compile this file into the codebase (to reduce dependencies).</para>
|
||||
<para>The INX file also contains information on the dependencies that are required for the extension to operate. These dependencies can be everything from required files, required libraries or other extensions that help this one. The dependencies are checked as the file is loaded, and an extension is marked as dead if they are not met. Also dependencies can check different versions of particular objects to see if they are met.</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Extension Types</title>
|
||||
<para>Each Extension is identified by it's 'Type'. This determines the type of programmatic interface that it adheres to, enabling Inkscape to know what functionality it can expect from the extension.</para>
|
||||
<section>
|
||||
<title>Input</title>
|
||||
<para>An input extension provides a way to get data into Inkscape. This type of extension creates a document given a filename. This is done by using the 'open' method within the class. Also, there is a 'prefs' function which will generate a GtkDialog. This dialog is then used to get any settings that the incoming file and extension may use. This function is executed, and the dialog returns, before the open method is called.</para>
|
||||
<para>There are also several other settings stored in an Input extension. This includes information on the type of file the input module can take in including its filename extension and mime type. Also, there is a space to store a tooltip for additional information on the file type in the file dialog. Lastly, there is the key of which Output extension is recommended for saving this filetype. This is useful, as there is no other direct links between the Input and Output functions, and a user expects to be able to open and save without using the 'Save As...' dialog.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Output</title>
|
||||
<para>An output extension controls how SVG documents are exported from Inkscape. This type of extension creates a file given a document object. This is done using the 'save' method within the class.</para>
|
||||
<para>The method for how files are exported depends on what type of Implementation is used. For Scripts, the file is first saved as a temporary SVG file, and then processed by calling the commandline programs to convert it. For Plug-ins, the document object is passed to the extension with a 'save' message and a filename, and the extension program performs the file save operation itself.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Effect</title>
|
||||
<para>Effect extensions cause a modification of a loaded document. For example, it might add a new shape to the drawing, or change all selected objects to be purple with green dotted borders.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Print</title>
|
||||
<para>The Print Extension Type is for extensions that interface with printing subsystems. Examples would be Win32, postscript, and GNOME Print.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Collection</title>
|
||||
</section>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Creating Extensions</title>
|
||||
<para>In this chapter, we discuss how to create an extension from scratch, incorporate into Inkscape, and release it for the general Inkscape community to use. This chapter can be read independently of the rest of the document, using the rest as reference material.</para>
|
||||
<section>
|
||||
<title>Selecting an Extension Strategy</title>
|
||||
<para>First of all, you will need to select the method you'll use for creating your extension.</para>
|
||||
<para>Scripts are the simplest extensions to create, because they work through STDIN/STDOUT, so you need to know very little about Inkscape internals to make them work. However, their ability to interact with the Inkscape internals is limited compared with other approaches. For file format converters, this is usually fine. You can also create filters programs that take the entire document to its STDIN, process it, and return a modified copy to STDOUT. Some control of the extension is possible via its commandline arguments.</para>
|
||||
<para>One of the nice things about Scripts is that they can be written in any language. It need not even be a scripting language - as long as it handles STDIN and STDOUT and uses commandline arguments, you can write it however you wish.</para>
|
||||
<para>Plug-ins are more powerful than Scripts, but require more knowledge of Inkscape internals, and must be written according to specific criteria. Generally, since these are loaded as dynamic objects, they'll need to be written in a language that can generate them, such as C or C++.</para>
|
||||
<para>The best of both worlds can be available through Language Bindings, which are Plug-ins that wrapper a script interpreter. This enables you to call various Inkscape internal routines through your scripting language's functions. If someone has created a Language Binding for your language of choice, you're all set, otherwise you'll have to create a Plug-in for it. Language Binding Plug-ins have a few more requirements than ordinary Plug-ins, and require a greater amount of knowledge of the Inkscape internals, so it can take quite some time to do properly.</para>
|
||||
<para>Internal Extensions are in a way the reverse of a normal Extension, in that instead of providing a way to hook into Inkscape from the outside, they provide hooks from inside Inkscape. These are used directly by Inkscape, such as in the case of compiled-in printing modules. Most users will never need to write this type of extension, they are pretty much for Inkscape core developers only.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Writing Your Extension</title>
|
||||
<para>This section provides some guidance and examples for implementing different kinds of Extensions.</para>
|
||||
<section>
|
||||
<title>Writing Script Extensions</title>
|
||||
</section>
|
||||
<section>
|
||||
<title>Writing Plug-in Extensions</title>
|
||||
</section>
|
||||
<section>
|
||||
<title>Writing Language Binding Plug-in Extensions</title>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Creating an INX File</title>
|
||||
<para>Every extension must have a corrosponding *.inx file. This is an XML file that provides Inkscape with information about the module and allows it to load the info without needing to access the module itself. The *.inx file contains enough info for Inkscape to set up menu items and know what kinds of functionality to expect from the extension.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Packaging Your Extension</title>
|
||||
</section>
|
||||
<section>
|
||||
<title>Contributing Your Extensino to the Inkscape Community</title>
|
||||
<para>Once your extension is complete, you may wish to share it with the community. There are of course no hard and fast rules for how to share your work, but this section illustrates some approaches.</para>
|
||||
<section>
|
||||
<title>Listing Your Extension</title>
|
||||
<para>First, you will need to put your extension someplace that others can find and download it. If you have adequate webspace, you could simply upload it to your web server. More typically, you will want to upload it to a mirroring system like SourceForge (http://www.sourceforge.net), CPAN (http://www.cpan.org), and the like. The Inkscape project may also be willing to host your extension; contact the admins for more info.</para>
|
||||
<para>It can also be helpful to list your extension with one of the various software registries, such as Freshmeat (http://www.freshmeat.net). You should also list it on the Inkscape Wiki site.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Announcing Your Extension</title>
|
||||
<para>After posting your extension someplace from which it can be downloaded, you should also announce its availability, by sending an email to inkscape-announce@lists.sourceforge.net. You may also want to announce it on other related sites; for instance, if you've written a plug-in to allow operation of Imagemagick from within Inkscape, it could be a good idea to announce it to the Imagemagick list.</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Incorporating Your Extension in to Inkscape</title>
|
||||
<para>Because the intent with the extension system is to break things *out* from the core, most extensions should be packaged and distributed independently of the main Inkscape distribution. However, for ease of user installation, an extension-pack can be shipped along with the core Inkscape package. Also, certain extensions may be so critical to Inkscape operation (such as for printing) that they should be included in the core.</para>
|
||||
<para>If your extension seems like it should be incorporated into the Inkscape core, contact the Inkscape developers about this, and discuss how best to include it in the distribution with them.</para>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Conclusion</title>
|
||||
<para>It is anticipated that the incorporation of this extensions capability will bring Inkscape added power and flexibility while avoiding bloating the core with cool-but-rarely-used functionality. Further, it empowers users and non-core Inkscape developers to extend the application with their own new capabilities, without needing to gain special access and acceptance by the project. Dynamic loading of functionality will also allow Inkscape to remain 'lean and mean', loading up functionality on an as-needed basis, and conserving memory by unloading functionality when it is not needed.</para>
|
||||
<para>The key point of this design specification is the architectural concept of separately identifying an extension's interface type, or 'Extension Type', from its implementation method, or 'Extension Implementation'. This feature enables Inkscape to be extended in a variety of mechanisms, including ways not yet foreseen.</para>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>History and references</title>
|
||||
<para>Base design taken from Ted Gould's Extension System work.</para>
|
||||
<para>This document originally authored by Bryce Harrington, July 2004</para>
|
||||
</chapter>
|
||||
</book>
|
BIN
doc/inkscape-uml.dia
Normal file
228
doc/livarot-images/arc-threshold.svg
Normal file
|
@ -0,0 +1,228 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="384.85571"
|
||||
height="316.2381"
|
||||
viewBox="0 0 384.85571 316.2381"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="arc-threshold.svg">
|
||||
<metadata
|
||||
id="metadata27">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Mend"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path920"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.3719323"
|
||||
inkscape:cx="206.22154"
|
||||
inkscape:cy="168.80326"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="20"
|
||||
fit-margin-left="20"
|
||||
fit-margin-right="20"
|
||||
fit-margin-bottom="20" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-28.526459,-37.270763)">
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:10, 20;stroke-dashoffset:0"
|
||||
id="ellipse1209"
|
||||
transform="rotate(62.960609)"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="262.41861"
|
||||
sodipodi:cy="-57.27372"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:start="3.1415927"
|
||||
sodipodi:end="0"
|
||||
sodipodi:open="true"
|
||||
sodipodi:arc-type="arc"
|
||||
d="M 139.64012,-57.273728 A 122.77849,181.92303 0 0 1 262.41861,-239.19675 122.77849,181.92303 0 0 1 385.1971,-57.27372" />
|
||||
<path
|
||||
d="m 138.83803,-57.013718 a 122.77849,181.92303 0 0 1 7.40445,-62.221332 l 115.37404,62.22134 z"
|
||||
sodipodi:arc-type="arc"
|
||||
sodipodi:end="3.4906585"
|
||||
sodipodi:start="3.1415927"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:cx="261.61652"
|
||||
sodipodi:type="arc"
|
||||
transform="rotate(62.960609)"
|
||||
id="path858"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path860"
|
||||
transform="rotate(62.960609)"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 146.24248,-119.23505 a 122.77849,181.92303 0 0 1 21.32026,-54.71654 l 94.05378,116.93788 z"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:start="3.4906585"
|
||||
sodipodi:end="3.8397244"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:cx="261.61652" />
|
||||
<path
|
||||
sodipodi:cx="261.61652"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:end="4.1887902"
|
||||
sodipodi:start="3.8397244"
|
||||
sodipodi:type="arc"
|
||||
d="m 167.56274,-173.95159 a 122.77849,181.92303 0 0 1 32.66453,-40.61209 l 61.38925,157.54997 z"
|
||||
sodipodi:arc-type="arc"
|
||||
transform="rotate(62.960609)"
|
||||
id="path862"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path864"
|
||||
transform="rotate(62.960609)"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 200.22727,-214.56368 a 122.77849,181.92303 0 0 1 40.06899,-21.60925 l 21.32026,179.15922 z"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:start="4.1887902"
|
||||
sodipodi:end="4.5378561"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:cx="261.61652" />
|
||||
<path
|
||||
sodipodi:cx="261.61652"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:end="4.8869219"
|
||||
sodipodi:start="4.5378561"
|
||||
sodipodi:type="arc"
|
||||
d="m 240.29626,-236.17293 a 122.77849,181.92303 0 0 1 42.64052,0 l -21.32026,179.15922 z"
|
||||
sodipodi:arc-type="arc"
|
||||
transform="rotate(62.960609)"
|
||||
id="path866"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path868"
|
||||
transform="rotate(62.960609)"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 282.93678,-236.17293 a 122.77849,181.92303 0 0 1 40.06898,21.60925 l -61.38924,157.54997 z"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:start="4.8869219"
|
||||
sodipodi:end="5.2359878"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:cx="261.61652" />
|
||||
<path
|
||||
sodipodi:cx="261.61652"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:end="5.5850536"
|
||||
sodipodi:start="5.2359878"
|
||||
sodipodi:type="arc"
|
||||
d="m 323.00576,-214.56368 a 122.77849,181.92303 0 0 1 32.66453,40.6121 l -94.05377,116.93787 z"
|
||||
sodipodi:arc-type="arc"
|
||||
transform="rotate(62.960609)"
|
||||
id="path870"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path872"
|
||||
transform="rotate(62.960609)"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 376.99056,-119.23505 a 122.77849,181.92303 0 0 1 7.40444,62.22134 l -122.77848,0 z"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:start="5.9341195"
|
||||
sodipodi:end="0"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:cx="261.61652" />
|
||||
<path
|
||||
sodipodi:cx="261.61652"
|
||||
sodipodi:cy="-57.01371"
|
||||
sodipodi:rx="122.77849"
|
||||
sodipodi:ry="181.92303"
|
||||
sodipodi:end="5.9341195"
|
||||
sodipodi:start="5.5850536"
|
||||
sodipodi:type="arc"
|
||||
d="m 355.67029,-173.95158 a 122.77849,181.92303 0 0 1 21.32027,54.71653 l -115.37404,62.22134 z"
|
||||
sodipodi:arc-type="arc"
|
||||
transform="rotate(62.960609)"
|
||||
id="path874"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff00ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
|
||||
d="m 114.15977,97.950431 58.52446,-21.897714 58.42796,-5.884464 51.02234,10.631731 37.46272,25.865586 19.3845,37.97966 -1.03175,45.51284 -21.32356,47.55649 -39.04345,43.86413 -52.07755,34.81495"
|
||||
id="path876"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.8 KiB |
262
doc/livarot-images/chgt-addition-sequence.svg
Normal file
|
@ -0,0 +1,262 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="1000"
|
||||
height="1000"
|
||||
viewBox="0 0 1000 1000"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
|
||||
sodipodi:docname="chgt-addition-sequence.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker1121"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.1206808"
|
||||
inkscape:cx="248.95582"
|
||||
inkscape:cy="509.06558"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="path1173"
|
||||
cx="78.166206"
|
||||
cy="288.72296"
|
||||
r="16.849979" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1175"
|
||||
cx="55.587914"
|
||||
cy="49.383144"
|
||||
r="16.849979" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1177"
|
||||
cx="83.664955"
|
||||
cy="542.04181"
|
||||
r="16.849979" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 55.252092,51.995006 22.79926,237.031244 5.16247,253.2171"
|
||||
id="path1179" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="79.421501"
|
||||
y="178.27722"
|
||||
id="text1183"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1181"
|
||||
x="79.421501"
|
||||
y="178.27722">edge A</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="94.368141"
|
||||
y="421.89923"
|
||||
id="text1187"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1185"
|
||||
x="94.368141"
|
||||
y="421.89923">edge E</tspan></text>
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1193"
|
||||
cx="316.42542"
|
||||
cy="49.824383"
|
||||
r="16.849979" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1195"
|
||||
cx="506.46616"
|
||||
cy="49.882885"
|
||||
r="16.849979" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1197"
|
||||
cx="256.48138"
|
||||
cy="518.86157"
|
||||
r="16.849979" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1199"
|
||||
cx="446.52213"
|
||||
cy="518.9201"
|
||||
r="16.849979" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1201"
|
||||
cx="380.16623"
|
||||
cy="286.72296"
|
||||
r="16.849979" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 314.48322,46.691426 132.289,473.328804"
|
||||
id="path1203" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 507.34274,49.657676 255.92081,521.45363"
|
||||
id="path1205" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1217"
|
||||
cx="573.18079"
|
||||
cy="284.11252"
|
||||
r="16.849979" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 572.56908,286.68089 623.57449,39.636396"
|
||||
id="path1219" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
|
||||
id="circle1221"
|
||||
cx="625.49481"
|
||||
cy="32.441143"
|
||||
r="16.849979" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="622.58923"
|
||||
y="168.69528"
|
||||
id="text1225"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1223"
|
||||
x="622.58923"
|
||||
y="168.69528">edge D</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="274.80078"
|
||||
y="180.67569"
|
||||
id="text1229"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1227"
|
||||
x="274.80078"
|
||||
y="180.67569">edge X</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="455.81705"
|
||||
y="185.5293"
|
||||
id="text1233"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1231"
|
||||
x="455.81705"
|
||||
y="185.5293">edge Y</tspan></text>
|
||||
<rect
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:5, 15;stroke-dashoffset:0"
|
||||
id="rect1235"
|
||||
width="624.091"
|
||||
height="60.885902"
|
||||
x="33.591202"
|
||||
y="252.56232" />
|
||||
<rect
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.17497;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:2.17497, 6.52492;stroke-dashoffset:0"
|
||||
id="rect1269"
|
||||
width="289.12112"
|
||||
height="288.80701"
|
||||
x="70.471581"
|
||||
y="655.30725" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="86.259834"
|
||||
y="681.55219"
|
||||
id="text1273"><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="681.55219"
|
||||
id="tspan1275">type = EDGE_REMOVAL</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="701.55219"
|
||||
id="tspan1279">ptNo -> 8</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="721.55219"
|
||||
id="tspan1293">left_edge -> A</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="741.55219"
|
||||
id="tspan1295">right_edge -> none</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="761.55219"
|
||||
id="tspan1299">edge_to_left -> none</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="781.55219"
|
||||
id="tspan1301">edge_to_right -></tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="86.259834"
|
||||
y="801.55219"
|
||||
id="tspan1297" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="107.06792"
|
||||
y="291.77271"
|
||||
id="text1283"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1281"
|
||||
x="107.06792"
|
||||
y="291.77271">8</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="405.72318"
|
||||
y="291.2673"
|
||||
id="text1287"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1285"
|
||||
x="405.72318"
|
||||
y="291.2673">9</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="596.86731"
|
||||
y="288.18781"
|
||||
id="text1291"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1289"
|
||||
x="596.86731"
|
||||
y="288.18781">10</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.7 KiB |
258
doc/livarot-images/convert-back-data.svg
Normal file
|
@ -0,0 +1,258 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="558.4046"
|
||||
height="538.37225"
|
||||
viewBox="0 0 558.4046 538.37225"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
|
||||
sodipodi:docname="convert-back-data.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1446"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1444" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="411"
|
||||
inkscape:cy="334.5"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-8.9303313,-21.664225)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.77295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 102.60449,515.25467 c 0,0 -6.893302,-398.4437 373.59095,-458.882951 z"
|
||||
id="path829" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path831"
|
||||
cx="103.42987"
|
||||
cy="517.56573"
|
||||
r="6.1909528" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.77295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:11.0918, 11.0918;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 102.60449,515.25467 117.30159,395.05912 208.39778,204.83219 327.81822,106.45266 476.19544,56.371719 Z"
|
||||
id="path857" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle833"
|
||||
cx="118.08809"
|
||||
cy="395.51981"
|
||||
r="6.1909528" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle835"
|
||||
cx="208.10326"
|
||||
cy="204.9926"
|
||||
r="6.1909528" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle837"
|
||||
cx="326.27896"
|
||||
cy="106.09619"
|
||||
r="6.1909528" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle839"
|
||||
cx="476.59958"
|
||||
cy="55.426014"
|
||||
r="6.1909528" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
|
||||
x="20.893951"
|
||||
y="42.900475"
|
||||
id="text1304"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1302"
|
||||
x="20.893951"
|
||||
y="42.900475"
|
||||
style="stroke-width:0.554591">ConvertWithBackData</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:36.9727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
|
||||
x="77.885551"
|
||||
y="113.05464"
|
||||
id="text1308"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1306"
|
||||
x="77.885551"
|
||||
y="113.05464"
|
||||
style="font-size:36.9727px;stroke-width:0.554591">0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:36.9727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
|
||||
x="412.53885"
|
||||
y="316.25241"
|
||||
id="text1312"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1310"
|
||||
x="412.53885"
|
||||
y="316.25241"
|
||||
style="font-size:36.9727px;stroke-width:0.554591">1</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.66377;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
|
||||
d="m 89.29666,120.30545 c 0,0 -1.132358,67.03572 65.0832,154.98955"
|
||||
id="path1314"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.66377;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1446)"
|
||||
d="m 444.92323,285.45839 c 0,0 28.06694,-50.89681 -30.29334,-136.21065"
|
||||
id="path1442"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
|
||||
x="19.778652"
|
||||
y="510.54266"
|
||||
id="text1486"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1484"
|
||||
x="19.778652"
|
||||
y="510.54266"
|
||||
style="stroke-width:0.554591">piece = 0</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="19.778652"
|
||||
y="529.02905"
|
||||
id="tspan1490"
|
||||
style="stroke-width:0.554591">time = 0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
|
||||
x="18.533163"
|
||||
y="388.26981"
|
||||
id="text1498"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1494"
|
||||
x="18.533163"
|
||||
y="388.26981"
|
||||
style="stroke-width:0.554591">piece = 0</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="18.533163"
|
||||
y="406.7562"
|
||||
id="tspan1496"
|
||||
style="stroke-width:0.554591">time = 0.20</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
|
||||
x="129.88928"
|
||||
y="175.30013"
|
||||
id="text1504"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1500"
|
||||
x="129.88928"
|
||||
y="175.30013"
|
||||
style="stroke-width:0.554591">piece = 0</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="129.88928"
|
||||
y="193.7865"
|
||||
id="tspan1502"
|
||||
style="stroke-width:0.554591">time = 0.5</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
|
||||
x="259.5546"
|
||||
y="69.202881"
|
||||
id="text1510"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1506"
|
||||
x="259.5546"
|
||||
y="69.202881"
|
||||
style="stroke-width:0.554591">piece = 0</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="259.5546"
|
||||
y="87.689255"
|
||||
id="tspan1508"
|
||||
style="stroke-width:0.554591">time = 0.75</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
|
||||
x="487.28891"
|
||||
y="52.659344"
|
||||
id="text1516"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1512"
|
||||
x="487.28891"
|
||||
y="52.659344"
|
||||
style="stroke-width:0.554591">piece = 0</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="487.28891"
|
||||
y="71.145721"
|
||||
id="tspan1514"
|
||||
style="stroke-width:0.554591">time = 1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
|
||||
x="136.8902"
|
||||
y="512.85431"
|
||||
id="text1522"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1518"
|
||||
x="136.8902"
|
||||
y="512.85431"
|
||||
style="stroke-width:0.554591">piece = 1</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="136.8902"
|
||||
y="531.3407"
|
||||
id="tspan1520"
|
||||
style="stroke-width:0.554591">time = 1</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="136.8902"
|
||||
y="549.82709"
|
||||
id="tspan1524"
|
||||
style="stroke-width:0.554591">closed = true</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.3 KiB |
128
doc/livarot-images/convert-lines.svg
Normal file
|
@ -0,0 +1,128 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="440.75186"
|
||||
height="469.3035"
|
||||
viewBox="0 0 440.75186 469.3035"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
|
||||
sodipodi:docname="convert-lines.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="292"
|
||||
inkscape:cy="288.5"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-17.642022,-25.116572)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.54173;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 99.910319,476.627 c 0,0 -6.318491,-365.21877 342.438421,-420.61819 z"
|
||||
id="path829" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path831"
|
||||
cx="100.66688"
|
||||
cy="478.74536"
|
||||
r="5.6747093" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.54173;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1669, 10.1669;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 99.910319,476.627 113.38188,366.45417 196.88185,192.08965 306.34421,101.91367 442.34874,56.00881 Z"
|
||||
id="path857" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle833"
|
||||
cx="114.10279"
|
||||
cy="366.87646"
|
||||
r="5.6747093" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle835"
|
||||
cx="196.61189"
|
||||
cy="192.23668"
|
||||
r="5.6747093" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle837"
|
||||
cx="304.93329"
|
||||
cy="101.58692"
|
||||
r="5.6747093" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle839"
|
||||
cx="442.71918"
|
||||
cy="55.141964"
|
||||
r="5.6747093" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1142"
|
||||
cx="367.69489"
|
||||
cy="148.26315"
|
||||
r="5.6747093" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1144"
|
||||
cx="290.62311"
|
||||
cy="243.22745"
|
||||
r="5.6747093" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1146"
|
||||
cx="203.70471"
|
||||
cy="350.66959"
|
||||
r="5.6747093" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:13.5559px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.508345"
|
||||
x="26.880827"
|
||||
y="45.415878"
|
||||
id="text1150"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1148"
|
||||
x="26.880827"
|
||||
y="45.415878"
|
||||
style="stroke-width:0.508345">ConvertEvenLines</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.5 KiB |
2516
doc/livarot-images/convert-reconstruction.svg
Normal file
After Width: | Height: | Size: 93 KiB |
140
doc/livarot-images/convert-simple-high.svg
Normal file
|
@ -0,0 +1,140 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="486.77621"
|
||||
height="516.31232"
|
||||
viewBox="0 0 486.77621 516.31232"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
|
||||
sodipodi:docname="convert-simple-high.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.73466529"
|
||||
inkscape:cx="392.01525"
|
||||
inkscape:cy="432.16959"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-31.206402,-35.657172)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.86674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 114.93853,537.58003 c 0,0 -7.12643,-411.91923 386.22595,-474.402555 z"
|
||||
id="path829" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.86674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.73347, 5.73347;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 114.93853,537.58003 7.40009,-79.46247 16.92909,-73.49058 27.50231,-73.79257 35.63381,-63.78975 50.17974,-60.49927 49.72355,-42.84003 64.50322,-38.83431 64.23464,-24.468298 70.1195,-17.225277 z"
|
||||
id="path1035" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path831"
|
||||
cx="115.26668"
|
||||
cy="535.56915"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle833"
|
||||
cx="121.911"
|
||||
cy="457.75839"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle835"
|
||||
cx="251.64296"
|
||||
cy="186.47656"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle837"
|
||||
cx="366.63855"
|
||||
cy="104.16064"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle839"
|
||||
cx="501.58228"
|
||||
cy="62.199787"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1025"
|
||||
cx="138.96669"
|
||||
cy="383.32968"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1027"
|
||||
cx="166.1521"
|
||||
cy="310.74799"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1029"
|
||||
cx="200.8325"
|
||||
cy="247.2348"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1031"
|
||||
cx="301.32437"
|
||||
cy="142.98907"
|
||||
r="6.4003329" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1033"
|
||||
cx="430.7309"
|
||||
cy="79.271164"
|
||||
r="6.4003329" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:15.2893px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.573347"
|
||||
x="40.198563"
|
||||
y="57.273457"
|
||||
id="text1043"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1041"
|
||||
x="40.198563"
|
||||
y="57.273457"
|
||||
style="stroke-width:0.573347">Smaller Threshold</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5 KiB |
110
doc/livarot-images/convert-simple-low.svg
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="396.13266"
|
||||
height="420.10977"
|
||||
viewBox="0 0 396.13266 420.10977"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
|
||||
sodipodi:docname="convert-simple-low.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="351"
|
||||
inkscape:cy="316.5"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-29.299149,-40.920317)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.30464;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 99.453438,443.96395 c 0,0 -5.729127,-331.15259 310.497102,-381.384564 z"
|
||||
id="path829" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path831"
|
||||
cx="100.13943"
|
||||
cy="445.8847"
|
||||
r="5.1453943" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.30464;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9.21857, 9.21857;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 99.453438,443.96395 111.66843,344.06761 187.37985,185.96713 286.63198,104.20242 409.95054,62.579386 Z"
|
||||
id="path857" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle833"
|
||||
cx="112.32209"
|
||||
cy="344.4505"
|
||||
r="5.1453943" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle835"
|
||||
cx="187.13506"
|
||||
cy="186.10045"
|
||||
r="5.1453943" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle837"
|
||||
cx="285.35266"
|
||||
cy="103.90615"
|
||||
r="5.1453943" />
|
||||
<circle
|
||||
style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle839"
|
||||
cx="410.28641"
|
||||
cy="61.793396"
|
||||
r="5.1453943" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:12.2914px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.460929"
|
||||
x="38.092815"
|
||||
y="60.2589"
|
||||
id="text1039"><tspan
|
||||
sodipodi:role="line"
|
||||
x="38.092815"
|
||||
y="60.2589"
|
||||
id="tspan888"
|
||||
style="stroke-width:0.460929">Bigger Threshold</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
200
doc/livarot-images/edge-sorting.svg
Normal file
|
@ -0,0 +1,200 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="1000"
|
||||
height="1000"
|
||||
viewBox="0 0 1000 1000"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
|
||||
sodipodi:docname="edge-sorting.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker1121"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path1119" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow1Lend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path828" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.64984822"
|
||||
inkscape:cx="460.10744"
|
||||
inkscape:cy="471.64859"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.00157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 67.585403,500 H 930.47019"
|
||||
id="path823" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.00157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
|
||||
d="M 500,67.585384 V 930.47021"
|
||||
id="path1117" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="948.98737"
|
||||
y="506.99948"
|
||||
id="text1171"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1169"
|
||||
x="948.98737"
|
||||
y="506.99948"
|
||||
style="font-size:40px">x</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="488.41867"
|
||||
y="970.67389"
|
||||
id="text1175"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1173"
|
||||
x="488.41867"
|
||||
y="970.67389"
|
||||
style="font-size:40px">y</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="480.92773"
|
||||
y="514.58008"
|
||||
id="text1211"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1209"
|
||||
x="480.92773"
|
||||
y="514.58008"
|
||||
style="font-size:40px">-1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="487.28516"
|
||||
y="258.46341"
|
||||
id="text1215"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1213"
|
||||
x="487.28516"
|
||||
y="258.46341"
|
||||
style="font-size:40px">0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="732.20917"
|
||||
y="258.48294"
|
||||
id="text1219"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1217"
|
||||
x="732.20917"
|
||||
y="258.48294"
|
||||
style="font-size:40px">1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="733.09784"
|
||||
y="514.84375"
|
||||
id="text1223"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1221"
|
||||
x="733.09784"
|
||||
y="514.84375"
|
||||
style="font-size:40px">2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="732.63885"
|
||||
y="748.21735"
|
||||
id="text1227"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1225"
|
||||
x="732.63885"
|
||||
y="748.21735"
|
||||
style="font-size:40px">3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="487.42188"
|
||||
y="748.23688"
|
||||
id="text1231"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1229"
|
||||
x="487.42188"
|
||||
y="748.23688"
|
||||
style="font-size:40px">4</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="244.42764"
|
||||
y="747.95367"
|
||||
id="text1235"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1233"
|
||||
x="244.42764"
|
||||
y="747.95367"
|
||||
style="font-size:40px">5</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="244.08585"
|
||||
y="514.56055"
|
||||
id="text1243"><tspan
|
||||
sodipodi:role="line"
|
||||
x="244.08585"
|
||||
y="514.56055"
|
||||
style="font-size:40px"
|
||||
id="tspan1245">6</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="244.29092"
|
||||
y="258.48294"
|
||||
id="text1251"><tspan
|
||||
sodipodi:role="line"
|
||||
x="244.29092"
|
||||
y="258.48294"
|
||||
style="font-size:40px"
|
||||
id="tspan1249">7</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
81
doc/livarot-images/edge-winding-seed.svg
Normal file
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="424.39703"
|
||||
height="373.91052"
|
||||
viewBox="0 0 424.39703 373.91052"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
|
||||
sodipodi:docname="edge-winding-seed.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="229"
|
||||
inkscape:cy="258.5"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-89.500001,-189.5)">
|
||||
<path
|
||||
id="path829"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.504865px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 150.23896,199.75243 V 351.212 H 301.69852 V 502.67157 H 150.23896 V 351.212 H 99.752433 V 553.15809 H 503.64461 V 199.75243 Z m 25.24326,25.24326 H 276.45526 V 325.96874 H 175.48222 Z m 0,151.45957 V 477.42831 H 276.45526 V 376.45526 Z" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:1.1107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 150.23896,199.75243 V 502.67157"
|
||||
id="path1538" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.95177;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1540"
|
||||
cx="175.54428"
|
||||
cy="225.05775"
|
||||
r="3.0912569" />
|
||||
<circle
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.95177;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle1542"
|
||||
cx="175.52843"
|
||||
cy="376.78326"
|
||||
r="3.0912569" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
357
doc/livarot-images/find-point-2.svg
Normal file
|
@ -0,0 +1,357 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="337.0166"
|
||||
height="334.90112"
|
||||
viewBox="0 0 337.01661 334.90112"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
|
||||
sodipodi:docname="find-point.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<style
|
||||
id="style1605">
|
||||
.measure-arrow
|
||||
{
|
||||
}
|
||||
.measure-label
|
||||
{
|
||||
|
||||
}
|
||||
.measure-line
|
||||
{
|
||||
}</style>
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2236"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2234" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2206"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2204" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2176"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2174" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1645"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1643" />
|
||||
</marker>
|
||||
<inkscape:path-effect
|
||||
effect="measure_segments"
|
||||
id="path-effect1603"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
unit="mm"
|
||||
orientation="parallel"
|
||||
coloropacity="#000000ff"
|
||||
fontbutton="Sans 10"
|
||||
precision="2"
|
||||
fix_overlaps="0"
|
||||
position="5"
|
||||
text_top_bottom="0"
|
||||
helpline_distance="0"
|
||||
helpline_overlap="2"
|
||||
line_width="0.25"
|
||||
scale="1"
|
||||
format="{measure}{unit}"
|
||||
blacklist=""
|
||||
active_projection="false"
|
||||
whitelist="false"
|
||||
showindex="false"
|
||||
arrows_outside="false"
|
||||
flip_side="false"
|
||||
scale_sensitive="true"
|
||||
local_locale="true"
|
||||
rotate_anotation="true"
|
||||
hide_back="true"
|
||||
hide_arrows="false"
|
||||
smallx100="false"
|
||||
linked_items=""
|
||||
distance_projection="20"
|
||||
angle_projection="0"
|
||||
avoid_overlapping="true"
|
||||
onbbox="false"
|
||||
bboxonly="false"
|
||||
centers="false"
|
||||
maxmin="false"
|
||||
helpdata="<b><big>General</big></b>
|
||||
Display and position dimension lines and labels
|
||||
|
||||
<b><big>Projection</big></b>
|
||||
Show a line with measurements based on the selected items
|
||||
|
||||
<b><big>Options</big></b>
|
||||
Options for color, precision, label formatting and display
|
||||
|
||||
<b><big>Tips</big></b>
|
||||
<b><i>Custom styling:</i></b> To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style.
|
||||
<b><i>Blacklists:</i></b> allow to hide some segments or projection steps.
|
||||
<b><i>Multiple Measure LPEs:</i></b> In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections.
|
||||
<b><i>Set Defaults:</i></b> For every LPE, default values can be set at the bottom." />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1571"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1569" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1519"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1517" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="TriangleOutM"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1364" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1571-3"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1569-6" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.5837767"
|
||||
inkscape:cx="93.447519"
|
||||
inkscape:cy="158.79764"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-top="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-83.749898,32.083839)">
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 267.99475,142.84487 c 0,0 6.64406,16.59829 -7.97787,22.4135"
|
||||
id="path1747" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
|
||||
d="M 240.31542,146.25174 99.664523,281.78887"
|
||||
id="path1217" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="-58.365868"
|
||||
y="264.45288"
|
||||
id="text1507"
|
||||
transform="rotate(-44.465341)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1505"
|
||||
x="-58.365868"
|
||||
y="264.45288"
|
||||
style="font-size:16px">bNorm</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 248.88319,138.53474 6.95145,7.30751 -8.48559,7.76245"
|
||||
id="path1755" />
|
||||
<path
|
||||
style="fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571)"
|
||||
d="M 99.664523,281.78887 225.38087,273.26651"
|
||||
id="path1567"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 245.60632,129.9363 c 0,0 31.28048,3.0901 14.41056,35.32207"
|
||||
id="path1757" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
|
||||
d="M 240.31542,146.25174 375.85255,286.90265"
|
||||
id="path1515" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="342.99881"
|
||||
y="-76.441467"
|
||||
id="text1559"
|
||||
transform="rotate(45.53466)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1557"
|
||||
x="342.99881"
|
||||
y="-76.441467"
|
||||
style="font-size:16px">bNorm.ccw()</tspan></text>
|
||||
<circle
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path1561"
|
||||
cx="238.05536"
|
||||
cy="272.15973"
|
||||
r="4.4594245" />
|
||||
<circle
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1563"
|
||||
cx="273.21555"
|
||||
cy="114.23372"
|
||||
r="4.4594245" />
|
||||
<circle
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1565"
|
||||
cx="143.98232"
|
||||
cy="109.09448"
|
||||
r="4.4594245" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
|
||||
d="M 99.664523,281.78887 264.20711,122.88773"
|
||||
id="path1641"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571-3)"
|
||||
d="M 99.664523,281.78887 141.17926,121.40511"
|
||||
id="path1567-7"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="272.63654"
|
||||
y="166.73859"
|
||||
id="text1751"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1749"
|
||||
x="272.63654"
|
||||
y="166.73859"
|
||||
style="font-size:16px;fill:#ff0000">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan1753">r</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
|
||||
x="270.05438"
|
||||
y="136.71002"
|
||||
id="text1769"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1767"
|
||||
x="270.05438"
|
||||
y="136.71002"
|
||||
style="font-size:16px;fill:#0000ff">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan1771">b</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
|
||||
x="224.15295"
|
||||
y="126.32184"
|
||||
id="text1777"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1775"
|
||||
x="224.15295"
|
||||
y="126.32184"
|
||||
style="font-size:16px;fill:#008000">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub;fill:#008000"
|
||||
id="tspan1779">g</tspan></tspan></text>
|
||||
<path
|
||||
style="opacity:0.5;fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2176)"
|
||||
d="M 240.31542,146.25174 404.85801,-12.6494"
|
||||
id="path2172"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="opacity:0.5;fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2206)"
|
||||
d="M 240.31542,146.25174 281.83016,-14.13202"
|
||||
id="path2202"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="opacity:0.5;fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2236)"
|
||||
d="m 240.31542,146.25174 125.71635,-8.52236"
|
||||
id="path2232"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
417
doc/livarot-images/find-point-same-opp-sweepsense.svg
Normal file
|
@ -0,0 +1,417 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="307.80222"
|
||||
height="208.3214"
|
||||
viewBox="0 0 307.80222 208.3214"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
|
||||
sodipodi:docname="find-point-same-opp-sweepsense.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<style
|
||||
id="style1605">
|
||||
.measure-arrow
|
||||
{
|
||||
}
|
||||
.measure-label
|
||||
{
|
||||
|
||||
}
|
||||
.measure-line
|
||||
{
|
||||
}</style>
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2206"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2204" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2170"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2168" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2134"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2132" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2074"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path2072" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1533"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1531" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1497"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1495" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1395"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1393" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1293"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1291" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1263"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1261" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1203"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1201" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1143"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1141" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1047"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1045" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1011"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1009" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1645"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1643" />
|
||||
</marker>
|
||||
<inkscape:path-effect
|
||||
effect="measure_segments"
|
||||
id="path-effect1603"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
unit="mm"
|
||||
orientation="parallel"
|
||||
coloropacity="#000000ff"
|
||||
fontbutton="Sans 10"
|
||||
precision="2"
|
||||
fix_overlaps="0"
|
||||
position="5"
|
||||
text_top_bottom="0"
|
||||
helpline_distance="0"
|
||||
helpline_overlap="2"
|
||||
line_width="0.25"
|
||||
scale="1"
|
||||
format="{measure}{unit}"
|
||||
blacklist=""
|
||||
active_projection="false"
|
||||
whitelist="false"
|
||||
showindex="false"
|
||||
arrows_outside="false"
|
||||
flip_side="false"
|
||||
scale_sensitive="true"
|
||||
local_locale="true"
|
||||
rotate_anotation="true"
|
||||
hide_back="true"
|
||||
hide_arrows="false"
|
||||
smallx100="false"
|
||||
linked_items=""
|
||||
distance_projection="20"
|
||||
angle_projection="0"
|
||||
avoid_overlapping="true"
|
||||
onbbox="false"
|
||||
bboxonly="false"
|
||||
centers="false"
|
||||
maxmin="false"
|
||||
helpdata="<b><big>General</big></b> Display and position dimension lines and labels <b><big>Projection</big></b> Show a line with measurements based on the selected items <b><big>Options</big></b> Options for color, precision, label formatting and display <b><big>Tips</big></b> <b><i>Custom styling:</i></b> To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style. <b><i>Blacklists:</i></b> allow to hide some segments or projection steps. <b><i>Multiple Measure LPEs:</i></b> In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections. <b><i>Set Defaults:</i></b> For every LPE, default values can be set at the bottom." />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1519"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1517" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="TriangleOutM"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1364" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.6577043"
|
||||
inkscape:cx="162.5463"
|
||||
inkscape:cy="86.728986"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-top="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-81.511939,-113.77527)">
|
||||
<path
|
||||
style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1011)"
|
||||
d="m 265.67004,240.12496 88.9392,-14.91372"
|
||||
id="path1007"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1395)"
|
||||
d="m 265.67004,240.12496 -36.34951,-79.9144"
|
||||
id="path1391"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
|
||||
d="M 232.74865,270.3408 373.39954,134.80367"
|
||||
id="path1217" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="98.04657"
|
||||
y="371.93192"
|
||||
id="text1507"
|
||||
transform="rotate(-44.465341)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1505"
|
||||
x="98.04657"
|
||||
y="371.93192"
|
||||
style="font-size:16px">bNorm</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 224.20549,260.95038 7.30751,-6.95146 7.76245,8.48559"
|
||||
id="path1755" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
|
||||
d="M 232.74865,270.3408 97.21152,129.68989"
|
||||
id="path1515" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="218.83685"
|
||||
y="39.289875"
|
||||
id="text1559"
|
||||
transform="rotate(45.53466)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1557"
|
||||
x="218.83685"
|
||||
y="39.289875"
|
||||
style="font-size:16px">bNorm.ccw()</tspan></text>
|
||||
<circle
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1563"
|
||||
cx="265.19934"
|
||||
cy="239.61365"
|
||||
r="4.4594245" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
|
||||
d="m 232.74865,270.3408 23.89169,-23.36401"
|
||||
id="path1641"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
|
||||
x="217.75481"
|
||||
y="249.06168"
|
||||
id="text1769"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1767"
|
||||
x="217.75481"
|
||||
y="249.06168"
|
||||
style="font-size:16px;fill:#0000ff">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan1771">b</tspan></tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:3.269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.269, 3.269;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2074)"
|
||||
d="m 265.67004,240.12496 -79.9144,36.34952"
|
||||
id="path2070"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2134)"
|
||||
d="m 265.67004,240.12496 -14.91372,-88.9392"
|
||||
id="path2130"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="opacity:0.5;fill:none;stroke:#ff0000;stroke-width:3.269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.269, 3.269;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2170)"
|
||||
d="m 232.74865,270.3408 -79.9144,36.34952"
|
||||
id="path2166"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="opacity:0.5;fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2206)"
|
||||
d="M 232.74865,270.3408 217.83493,181.4016"
|
||||
id="path2202"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
386
doc/livarot-images/find-point-same.svg
Normal file
|
@ -0,0 +1,386 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="307.80225"
|
||||
height="208.18222"
|
||||
viewBox="0 0 307.80225 208.18222"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
|
||||
sodipodi:docname="find-point-same.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<style
|
||||
id="style1605">
|
||||
.measure-arrow
|
||||
{
|
||||
}
|
||||
.measure-label
|
||||
{
|
||||
|
||||
}
|
||||
.measure-line
|
||||
{
|
||||
}</style>
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1533"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1531" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1497"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1495" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1449"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1447" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1395"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1393" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1353"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1351" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1293"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1291" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1263"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1261" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1203"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1201" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1143"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1141" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1047"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1045" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1011"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1009" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1645"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1643" />
|
||||
</marker>
|
||||
<inkscape:path-effect
|
||||
effect="measure_segments"
|
||||
id="path-effect1603"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
unit="mm"
|
||||
orientation="parallel"
|
||||
coloropacity="#000000ff"
|
||||
fontbutton="Sans 10"
|
||||
precision="2"
|
||||
fix_overlaps="0"
|
||||
position="5"
|
||||
text_top_bottom="0"
|
||||
helpline_distance="0"
|
||||
helpline_overlap="2"
|
||||
line_width="0.25"
|
||||
scale="1"
|
||||
format="{measure}{unit}"
|
||||
blacklist=""
|
||||
active_projection="false"
|
||||
whitelist="false"
|
||||
showindex="false"
|
||||
arrows_outside="false"
|
||||
flip_side="false"
|
||||
scale_sensitive="true"
|
||||
local_locale="true"
|
||||
rotate_anotation="true"
|
||||
hide_back="true"
|
||||
hide_arrows="false"
|
||||
smallx100="false"
|
||||
linked_items=""
|
||||
distance_projection="20"
|
||||
angle_projection="0"
|
||||
avoid_overlapping="true"
|
||||
onbbox="false"
|
||||
bboxonly="false"
|
||||
centers="false"
|
||||
maxmin="false"
|
||||
helpdata="<b><big>General</big></b> Display and position dimension lines and labels <b><big>Projection</big></b> Show a line with measurements based on the selected items <b><big>Options</big></b> Options for color, precision, label formatting and display <b><big>Tips</big></b> <b><i>Custom styling:</i></b> To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style. <b><i>Blacklists:</i></b> allow to hide some segments or projection steps. <b><i>Multiple Measure LPEs:</i></b> In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections. <b><i>Set Defaults:</i></b> For every LPE, default values can be set at the bottom." />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1519"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1517" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="TriangleOutM"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1364" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.6577043"
|
||||
inkscape:cx="127.17743"
|
||||
inkscape:cy="129.99942"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-top="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-83.749898,-94.635058)">
|
||||
<path
|
||||
style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1011)"
|
||||
d="m 208.27083,177.72879 -8.95566,98.42731"
|
||||
id="path1007" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1395)"
|
||||
d="m 208.27083,177.72879 -79.9144,36.34951"
|
||||
id="path1391"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
|
||||
d="M 240.31542,146.25174 99.664523,281.78887"
|
||||
id="path1217" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="-119.34449"
|
||||
y="266.36035"
|
||||
id="text1507"
|
||||
transform="rotate(-44.465341)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1505"
|
||||
x="-119.34449"
|
||||
y="266.36035"
|
||||
style="font-size:16px">bNorm</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 247.54911,157.14467 -7.30751,6.95146 -7.76245,-8.48559"
|
||||
id="path1755" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
|
||||
d="M 240.31542,146.25174 375.85255,286.90265"
|
||||
id="path1515" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="356.33493"
|
||||
y="-75.652992"
|
||||
id="text1559"
|
||||
transform="rotate(45.53466)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1557"
|
||||
x="356.33493"
|
||||
y="-75.652992"
|
||||
style="font-size:16px">bNorm.ccw()</tspan></text>
|
||||
<circle
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1563"
|
||||
cx="207.79117"
|
||||
cy="177.55916"
|
||||
r="4.4594245" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
|
||||
d="m 240.31542,146.25174 -23.89169,23.36401"
|
||||
id="path1641"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
|
||||
x="228.36461"
|
||||
y="173.38316"
|
||||
id="text1769"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1767"
|
||||
x="228.36461"
|
||||
y="173.38316"
|
||||
style="font-size:16px;fill:#0000ff">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan1771">b</tspan></tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1449)"
|
||||
d="m 208.27083,177.72879 36.34951,79.9144"
|
||||
id="path1445"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1353)"
|
||||
d="m 208.27083,177.72879 98.4273,8.95566"
|
||||
id="path1349" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26928999999999981;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1497);opacity:0.5"
|
||||
d="m 240.31542,146.25174 36.34951,79.9144"
|
||||
id="path1493"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26928999999999981;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1533);opacity:0.5"
|
||||
d="m 240.31542,146.25174 98.4273,8.95566"
|
||||
id="path1529" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
299
doc/livarot-images/find-point.svg
Normal file
|
@ -0,0 +1,299 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="307.80225"
|
||||
height="208.18222"
|
||||
viewBox="0 0 307.80225 208.18222"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
|
||||
sodipodi:docname="find-point.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<style
|
||||
id="style1605">
|
||||
.measure-arrow
|
||||
{
|
||||
}
|
||||
.measure-label
|
||||
{
|
||||
|
||||
}
|
||||
.measure-line
|
||||
{
|
||||
}</style>
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1645"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1643" />
|
||||
</marker>
|
||||
<inkscape:path-effect
|
||||
effect="measure_segments"
|
||||
id="path-effect1603"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
unit="mm"
|
||||
orientation="parallel"
|
||||
coloropacity="#000000ff"
|
||||
fontbutton="Sans 10"
|
||||
precision="2"
|
||||
fix_overlaps="0"
|
||||
position="5"
|
||||
text_top_bottom="0"
|
||||
helpline_distance="0"
|
||||
helpline_overlap="2"
|
||||
line_width="0.25"
|
||||
scale="1"
|
||||
format="{measure}{unit}"
|
||||
blacklist=""
|
||||
active_projection="false"
|
||||
whitelist="false"
|
||||
showindex="false"
|
||||
arrows_outside="false"
|
||||
flip_side="false"
|
||||
scale_sensitive="true"
|
||||
local_locale="true"
|
||||
rotate_anotation="true"
|
||||
hide_back="true"
|
||||
hide_arrows="false"
|
||||
smallx100="false"
|
||||
linked_items=""
|
||||
distance_projection="20"
|
||||
angle_projection="0"
|
||||
avoid_overlapping="true"
|
||||
onbbox="false"
|
||||
bboxonly="false"
|
||||
centers="false"
|
||||
maxmin="false"
|
||||
helpdata="<b><big>General</big></b>
|
||||
Display and position dimension lines and labels
|
||||
|
||||
<b><big>Projection</big></b>
|
||||
Show a line with measurements based on the selected items
|
||||
|
||||
<b><big>Options</big></b>
|
||||
Options for color, precision, label formatting and display
|
||||
|
||||
<b><big>Tips</big></b>
|
||||
<b><i>Custom styling:</i></b> To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style.
|
||||
<b><i>Blacklists:</i></b> allow to hide some segments or projection steps.
|
||||
<b><i>Multiple Measure LPEs:</i></b> In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections.
|
||||
<b><i>Set Defaults:</i></b> For every LPE, default values can be set at the bottom." />
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1571"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1569" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1519"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1517" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="TriangleOutM"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1364" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1571-3"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="TriangleOutM"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.4)"
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path1569-6" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="10.630817"
|
||||
inkscape:cx="146.46099"
|
||||
inkscape:cy="64.952676"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-top="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-83.749898,-94.635058)">
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 263.61025,169.95772 c 0,0 -10.66367,14.35036 -23.27317,4.93666"
|
||||
id="path1747" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
|
||||
d="M 240.31542,146.25174 99.664523,281.78887"
|
||||
id="path1217" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="-58.365868"
|
||||
y="264.45288"
|
||||
id="text1507"
|
||||
transform="rotate(-44.465341)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1505"
|
||||
x="-58.365868"
|
||||
y="264.45288"
|
||||
style="font-size:16px">bNorm</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 248.88319,138.53474 6.95145,7.30751 -8.48559,7.76245"
|
||||
id="path1755" />
|
||||
<path
|
||||
style="fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571)"
|
||||
d="m 240.31542,146.25174 -1.58368,114.30611"
|
||||
id="path1567"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 253.37421,160.24635 c 0,0 -27.56623,15.10365 -31.83159,-21.02529"
|
||||
id="path1757" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
|
||||
d="M 240.31542,146.25174 375.85255,286.90265"
|
||||
id="path1515" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="342.99881"
|
||||
y="-76.441467"
|
||||
id="text1559"
|
||||
transform="rotate(45.53466)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1557"
|
||||
x="342.99881"
|
||||
y="-76.441467"
|
||||
style="font-size:16px">bNorm.ccw()</tspan></text>
|
||||
<circle
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path1561"
|
||||
cx="238.05536"
|
||||
cy="272.15973"
|
||||
r="4.4594245" />
|
||||
<circle
|
||||
style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1563"
|
||||
cx="273.21555"
|
||||
cy="114.23372"
|
||||
r="4.4594245" />
|
||||
<circle
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="circle1565"
|
||||
cx="143.98232"
|
||||
cy="109.09448"
|
||||
r="4.4594245" />
|
||||
<path
|
||||
style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
|
||||
d="m 240.31542,146.25174 23.89169,-23.36401"
|
||||
id="path1641"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571-3)"
|
||||
d="M 240.31542,146.25174 155.53223,113.45785"
|
||||
id="path1567-7"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="251.02913"
|
||||
y="192.64919"
|
||||
id="text1751"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1749"
|
||||
x="251.02913"
|
||||
y="192.64919"
|
||||
style="font-size:16px;fill:#ff0000">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan1753">r</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
|
||||
x="257.61835"
|
||||
y="153.61459"
|
||||
id="text1769"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1767"
|
||||
x="257.61835"
|
||||
y="153.61459"
|
||||
style="font-size:16px;fill:#0000ff">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan1771">b</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
|
||||
x="206.59474"
|
||||
y="153.46944"
|
||||
id="text1777"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1775"
|
||||
x="206.59474"
|
||||
y="153.46944"
|
||||
style="font-size:16px;fill:#008000">θ<tspan
|
||||
style="font-size:65%;baseline-shift:sub;fill:#008000"
|
||||
id="tspan1779">g</tspan></tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
443
doc/livarot-images/intersection-cross-product.svg
Normal file
|
@ -0,0 +1,443 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="500"
|
||||
height="700"
|
||||
viewBox="0 0 500.00001 700"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
|
||||
sodipodi:docname="intersection-cross-product.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1557"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1555" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1499"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1497" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1489"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1487" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1347"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1345" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1231"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1229" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1159"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1157" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1149"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1147" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1091"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1089" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1033"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1031" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1023"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1021" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker933"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path931" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker903"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path901" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker847"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path845" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.7070136"
|
||||
inkscape:cx="185.70443"
|
||||
inkscape:cy="463.67527"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000.0005px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
|
||||
d="M 40.376023,51.195578 184.68385,195.50341"
|
||||
id="path829" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker847)"
|
||||
d="M 186.94302,51.087771 42.635185,195.39561"
|
||||
id="path843" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="27.279669"
|
||||
y="45.689095"
|
||||
id="text875"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan873"
|
||||
x="27.279669"
|
||||
y="45.689095">left</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="174.84354"
|
||||
y="39.357662"
|
||||
id="text879"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan877"
|
||||
x="174.84354"
|
||||
y="39.357662">right</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker903)"
|
||||
d="M 361.95404,61.714577 486.14115,185.90169"
|
||||
id="path899" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker933)"
|
||||
d="M 361.95404,61.714577 237.76692,185.9017"
|
||||
id="path929" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
|
||||
x="428.63852"
|
||||
y="123.67144"
|
||||
id="text967"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan965"
|
||||
x="428.63852"
|
||||
y="123.67144"
|
||||
style="stroke-width:0.860571">left</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
|
||||
x="267.50607"
|
||||
y="120.33862"
|
||||
id="text971"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan969"
|
||||
x="267.50607"
|
||||
y="120.33862"
|
||||
style="stroke-width:0.860571">right</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1033)"
|
||||
d="M 31.562822,248.05474 175.87065,392.36257"
|
||||
id="path1009" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1023)"
|
||||
d="M 178.12982,247.94693 33.821984,392.25477"
|
||||
id="path1011" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="168.3092"
|
||||
y="239.50467"
|
||||
id="text1015"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1013"
|
||||
x="168.3092"
|
||||
y="239.50467">left</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="13.953851"
|
||||
y="240.20125"
|
||||
id="text1019"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1017"
|
||||
x="13.953851"
|
||||
y="240.20125">right</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1159)"
|
||||
d="M 353.68417,264.68996 477.87128,388.87707"
|
||||
id="path1135" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1149)"
|
||||
d="M 353.68417,264.68996 229.49705,388.87708"
|
||||
id="path1137" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
|
||||
x="261.2811"
|
||||
y="322.17184"
|
||||
id="text1141"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1139"
|
||||
x="261.2811"
|
||||
y="322.17184"
|
||||
style="stroke-width:0.860571">left</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
|
||||
x="413.39346"
|
||||
y="319.2049"
|
||||
id="text1145"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1143"
|
||||
x="413.39346"
|
||||
y="319.2049"
|
||||
style="stroke-width:0.860571">right</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="304.15286"
|
||||
y="29.0243"
|
||||
id="text1193"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1191"
|
||||
x="304.15286"
|
||||
y="29.0243">cross(ldir, rdir);</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1231);paint-order:normal"
|
||||
d="m 390.02678,90.544454 c 0,0 -25.46234,33.475456 -54.15233,0.04604"
|
||||
id="path1227"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1347)"
|
||||
d="m 326.30728,291.97517 c 0,0 20.78023,28.33579 51.3341,-0.47436"
|
||||
id="path1343"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
|
||||
x="301.95645"
|
||||
y="141.09514"
|
||||
id="text1385"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1383"
|
||||
x="301.95645"
|
||||
y="141.09514"
|
||||
style="stroke-width:0.786733">cross(ldir, rdir) > 0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
|
||||
x="289.08221"
|
||||
y="359.32712"
|
||||
id="text1389"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1387"
|
||||
x="289.08221"
|
||||
y="359.32712"
|
||||
style="stroke-width:0.786733">cross(ldir, rdir) < 0</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1499)"
|
||||
d="M 33.412499,452.06889 177.72033,596.37672"
|
||||
id="path1479" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="56.942776"
|
||||
y="522.93726"
|
||||
id="text1485"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1483"
|
||||
x="56.942776"
|
||||
y="522.93726">left</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
|
||||
x="139.73827"
|
||||
y="506.14304"
|
||||
id="text1539"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1537"
|
||||
x="139.73827"
|
||||
y="506.14304">right</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1557)"
|
||||
d="M 43.272694,443.14263 187.58052,587.45046"
|
||||
id="path1553" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
|
||||
x="292.02301"
|
||||
y="537.99573"
|
||||
id="text1585"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1583"
|
||||
x="292.02301"
|
||||
y="537.99573"
|
||||
style="stroke-width:0.786733">cross(ldir, rdir) = 0</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
373
doc/livarot-images/intersection-cross-products.svg
Normal file
|
@ -0,0 +1,373 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="445.25089"
|
||||
height="357.09039"
|
||||
viewBox="0 0 445.25089 357.09039"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
|
||||
sodipodi:docname="intersection-cross-products.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1503"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1501" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1461"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
||||
style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1459" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1427"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1425" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Mend"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1142" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1119"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1117" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1097"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1095" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1063"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1061" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1025"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1023" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker951"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path949" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker941"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path939" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker871"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path869" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1119" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="408"
|
||||
inkscape:cy="330.5"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="1000px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="false"
|
||||
fit-margin-top="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-28.419477,-56.383514)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.30108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
|
||||
d="M 93.063111,88.297429 405.71371,400.94806"
|
||||
id="path829" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.30108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker871)"
|
||||
d="M 406.50688,87.557219 93.856281,400.20785"
|
||||
id="path867" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:1.30108"
|
||||
x="144.9722"
|
||||
y="193.51253"
|
||||
id="text909"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan907"
|
||||
x="144.9722"
|
||||
y="193.51253"
|
||||
style="stroke-width:1.30108">left</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:1.30108"
|
||||
x="317.59818"
|
||||
y="190.99515"
|
||||
id="text913"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan911"
|
||||
x="317.59818"
|
||||
y="190.99515"
|
||||
style="stroke-width:1.30108">right</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#008000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker951)"
|
||||
d="M 406.50688,87.557219 93.063111,88.297429"
|
||||
id="path995" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1025)"
|
||||
d="M 406.50688,87.557219 405.71371,400.94806"
|
||||
id="path1021" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke-width:1.30108"
|
||||
x="238.57541"
|
||||
y="82.199783"
|
||||
id="text1047"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1045"
|
||||
x="238.57541"
|
||||
y="82.199783"
|
||||
style="stroke-width:1.30108">sdiff1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:1.30108"
|
||||
x="413.12622"
|
||||
y="252.7749"
|
||||
id="text1051"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1049"
|
||||
x="413.12622"
|
||||
y="252.7749"
|
||||
style="stroke-width:1.30108">ediff1</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000080;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1063)"
|
||||
d="m 93.063111,86.817009 313.443769,0.74021"
|
||||
id="path1059" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000080;stroke:none;stroke-width:1.30108"
|
||||
x="238.3334"
|
||||
y="108.95457"
|
||||
id="text1091"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1089"
|
||||
x="238.3334"
|
||||
y="108.95457"
|
||||
style="stroke-width:1.30108">sdiff2</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#ff00ff;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1097)"
|
||||
d="m 93.063111,86.817009 0.79317,313.390841"
|
||||
id="path1093" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;stroke-width:1.30108"
|
||||
x="33.270866"
|
||||
y="248.48138"
|
||||
id="text1113"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1111"
|
||||
x="33.270866"
|
||||
y="248.48138"
|
||||
style="stroke-width:1.30108">ediff2</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#008000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
|
||||
d="m 370.3101,124.92022 c 0,0 -30.07994,-6.6184 -24.16392,-37.112011"
|
||||
id="path1115" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke-width:0.717889"
|
||||
x="318.56375"
|
||||
y="122.53162"
|
||||
id="text1421"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1419"
|
||||
x="318.56375"
|
||||
y="122.53162"
|
||||
style="stroke-width:0.717889">srDot</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1427)"
|
||||
d="m 370.3101,124.92022 c 0,0 14.56784,23.53419 36.68947,13.21591"
|
||||
id="path1423" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.717889"
|
||||
x="364.55103"
|
||||
y="153.52997"
|
||||
id="text1449"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1447"
|
||||
x="364.55103"
|
||||
y="153.52997"
|
||||
style="fill:#ff0000;stroke-width:0.717889">erDot</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000080;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1461)"
|
||||
d="m 130.61307,126.17116 c 0,0 23.53418,-14.56785 13.2159,-36.689471"
|
||||
id="path1457" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff00ff;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1503)"
|
||||
d="m 130.61307,126.17116 c 0,0 -6.61841,30.07994 -37.112019,24.16392"
|
||||
id="path1499" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000080;stroke-width:0.717889"
|
||||
x="151.19702"
|
||||
y="125.0546"
|
||||
id="text1537"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1535"
|
||||
x="151.19702"
|
||||
y="125.0546"
|
||||
style="fill:#000080;stroke-width:0.717889">slDot</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;stroke-width:0.717889"
|
||||
x="111.54098"
|
||||
y="163.82812"
|
||||
id="text1541"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1539"
|
||||
x="111.54098"
|
||||
y="163.82812"
|
||||
style="fill:#ff00ff;stroke-width:0.717889">elDot</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |