├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ │ ├── integers.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── styles.xml │ │ │ │ └── strings.xml │ │ │ ├── drawable │ │ │ │ ├── animated_vector_cart.xml │ │ │ │ ├── animated_vector_icon_a.xml │ │ │ │ ├── animated_vector_icon_b.xml │ │ │ │ ├── animated_vector_wifi.xml │ │ │ │ ├── animated_vector_retweet.xml │ │ │ │ ├── animated_vector_apple.xml │ │ │ │ ├── strategy_base_animated_vector_drawable_end_to_start.xml │ │ │ │ ├── strategy_base_animated_vector_drawable_start_to_end.xml │ │ │ │ ├── animated_vector_droid_for_apple.xml │ │ │ │ ├── animated_vector_droid_for_cart.xml │ │ │ │ ├── strategy_linear_animated_vector_drawable_end_to_start.xml │ │ │ │ ├── strategy_linear_animated_vector_drawable_start_to_end.xml │ │ │ │ ├── strategy_sub_base_animated_vector_drawable_end_to_start.xml │ │ │ │ ├── strategy_sub_base_animated_vector_drawable_start_to_end.xml │ │ │ │ ├── strategy_sub_linear_animated_vector_drawable_end_to_start.xml │ │ │ │ ├── strategy_sub_linear_animated_vector_drawable_start_to_end.xml │ │ │ │ ├── animated_vector_heart.xml │ │ │ │ ├── animated_vector_twitter.xml │ │ │ │ ├── svg_cart.xml │ │ │ │ ├── svg_wifi.xml │ │ │ │ ├── svg_apple.xml │ │ │ │ ├── svg_icon_b.xml │ │ │ │ ├── svg_retweet.xml │ │ │ │ ├── svg_icon_a.xml │ │ │ │ ├── svg_droid_for_cart.xml │ │ │ │ ├── svg_droid_for_apple.xml │ │ │ │ ├── svg_heart.xml │ │ │ │ ├── svg_twitt.xml │ │ │ │ ├── strategy_base_vector_drawable_end.xml │ │ │ │ ├── strategy_base_vector_drawable_start.xml │ │ │ │ ├── strategy_sub_linear_vector_drawable_end.xml │ │ │ │ ├── strategy_linear_vector_drawable_start.xml │ │ │ │ ├── strategy_sub_base_vector_drawable_end.xml │ │ │ │ ├── strategy_sub_base_vector_drawable_start.xml │ │ │ │ ├── strategy_linear_vector_drawable_end.xml │ │ │ │ └── strategy_sub_linear_vector_drawable_start.xml │ │ │ ├── anim │ │ │ │ ├── rotate_a_to_b.xml │ │ │ │ ├── rotate_b_to_a.xml │ │ │ │ ├── morph_retweet_to_wifi.xml │ │ │ │ ├── morph_wifi_to_retweet.xml │ │ │ │ ├── morph_cart_to_droid.xml │ │ │ │ ├── morph_droid_to_cart.xml │ │ │ │ ├── morph_heart_to_twitter.xml │ │ │ │ ├── morph_twitter_to_heart.xml │ │ │ │ ├── morph_apple_to_droid.xml │ │ │ │ ├── morph_droid_to_apple.xml │ │ │ │ ├── morph_icon_a_to_b.xml │ │ │ │ ├── morph_icon_b_to_a.xml │ │ │ │ ├── strategy_base_morph_animator_end_to_start.xml │ │ │ │ ├── strategy_base_morph_animator_start_to_end.xml │ │ │ │ ├── strategy_sub_linear_morph_animator_end_to_start.xml │ │ │ │ ├── strategy_sub_linear_morph_animator_start_to_end.xml │ │ │ │ ├── strategy_linear_morph_animator_end_to_start.xml │ │ │ │ ├── strategy_linear_morph_animator_start_to_end.xml │ │ │ │ ├── strategy_sub_base_morph_animator_end_to_start.xml │ │ │ │ └── strategy_sub_base_morph_animator_start_to_end.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ ├── layout │ │ │ │ └── layout_activity_main.xml │ │ │ └── menu │ │ │ │ └── menu_activity_main.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── org │ │ │ └── bonnyfone │ │ │ └── vectalignsamples │ │ │ └── ActivityMainActivity.java │ └── androidTest │ │ └── java │ │ └── org │ │ └── bonnyfone │ │ └── vectalignsamples │ │ └── ApplicationTest.java ├── proguard-rules.pro ├── build.gradle └── app.iml ├── settings.gradle ├── .gitignore ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── README.md ├── VectAlignSamples.iml ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bonnyfone/vectalign-samples/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bonnyfone/vectalign-samples/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bonnyfone/vectalign-samples/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bonnyfone/vectalign-samples/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bonnyfone/vectalign-samples/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1500 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Aug 27 18:15:09 CEST 2015 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_cart.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_icon_a.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_icon_b.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_wifi.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_retweet.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_apple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_a_to_b.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_b_to_a.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_base_animated_vector_drawable_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_base_animated_vector_drawable_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_droid_for_apple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_droid_for_cart.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_linear_animated_vector_drawable_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_linear_animated_vector_drawable_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_base_animated_vector_drawable_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_base_animated_vector_drawable_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_linear_animated_vector_drawable_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_linear_animated_vector_drawable_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_heart.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animated_vector_twitter.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/androidTest/java/org/bonnyfone/vectalignsamples/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package org.bonnyfone.vectalignsamples; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_retweet_to_wifi.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_wifi_to_retweet.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_cart_to_droid.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_droid_to_cart.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_heart_to_twitter.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_twitter_to_heart.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_apple_to_droid.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_droid_to_apple.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_icon_a_to_b.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/morph_icon_b_to_a.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /media/Mistero/android-sdk-linux/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | 7 | defaultConfig { 8 | applicationId "org.bonnyfone.vectalignsamples" 9 | minSdkVersion 14 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.android.support:appcompat-v7:22.2.1' 25 | compile 'com.wnafee:vector-compat:1.0.5' 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VectAlign Samples 2 | 3 | This demo project shows some examples of morphing animations realized using the [VectAlign tool]. 4 | 5 | ![Morphing example](http://s12.postimg.org/cq84a766l/samples.gif) 6 | 7 | 8 | License 9 | ---- 10 | 11 | ```bash 12 | Copyright 2015, Stefano Bonetta. 13 | Licensed under the Apache License, Version 2.0 (the "License"); 14 | you may not use this file except in compliance with the License. 15 | You may obtain a copy of the License at 16 | 17 | http://www.apache.org/licenses/LICENSE-2.0 18 | 19 | Unless required by applicable law or agreed to in writing, software 20 | distributed under the License is distributed on an "AS IS" BASIS, 21 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 | See the License for the specific language governing permissions and 23 | limitations under the License. 24 | ``` 25 | [VectAlign tool]:https://github.com/bonnyfone/vectalign 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_cart.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 15 | 16 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_wifi.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_apple.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_icon_b.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 15 | 16 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_retweet.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_icon_a.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_activity_main.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 16 | 17 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_droid_for_cart.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_droid_for_apple.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_base_morph_animator_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_base_morph_animator_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_sub_linear_morph_animator_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_sub_linear_morph_animator_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_linear_morph_animator_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_linear_morph_animator_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_sub_base_morph_animator_end_to_start.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/strategy_sub_base_morph_animator_start_to_end.xml: -------------------------------------------------------------------------------- 1 | 3 | 10 | -------------------------------------------------------------------------------- /VectAlignSamples.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_heart.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/svg_twitt.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 16 | 17 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_base_vector_drawable_end.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_base_vector_drawable_start.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_linear_vector_drawable_end.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_linear_vector_drawable_start.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_base_vector_drawable_end.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_base_vector_drawable_start.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_linear_vector_drawable_end.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/strategy_sub_linear_vector_drawable_start.xml: -------------------------------------------------------------------------------- 1 | 9 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_activity_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /app/src/main/java/org/bonnyfone/vectalignsamples/ActivityMainActivity.java: -------------------------------------------------------------------------------- 1 | package org.bonnyfone.vectalignsamples; 2 | 3 | import android.content.Intent; 4 | import android.content.res.ColorStateList; 5 | import android.graphics.Color; 6 | import android.graphics.PorterDuff; 7 | import android.net.Uri; 8 | import android.os.Bundle; 9 | import android.support.v7.app.AppCompatActivity; 10 | import android.view.Menu; 11 | import android.view.MenuItem; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | 15 | import com.wnafee.vector.MorphButton; 16 | 17 | public class ActivityMainActivity extends AppCompatActivity { 18 | 19 | private ViewGroup parent; 20 | 21 | @Override 22 | protected void onCreate(Bundle savedInstanceState) { 23 | super.onCreate(savedInstanceState); 24 | setContentView(R.layout.layout_activity_main); 25 | parent = (ViewGroup) findViewById(R.id.base_view); 26 | 27 | //Default image 28 | handleMenu(R.id.action_droid_to_apple); 29 | } 30 | 31 | @Override 32 | public boolean onCreateOptionsMenu(Menu menu) { 33 | getMenuInflater().inflate(R.menu.menu_activity_main, menu); 34 | return true; 35 | } 36 | 37 | @Override 38 | public boolean onOptionsItemSelected(MenuItem item) { 39 | handleMenu(item.getItemId()); 40 | return true; 41 | } 42 | 43 | private void handleMenu(int id){ 44 | switch (id){ 45 | case R.id.action_github: 46 | final String url = "https://github.com/bonnyfone/vectalign"; 47 | Intent i = new Intent(Intent.ACTION_VIEW); 48 | i.setData(Uri.parse(url)); 49 | startActivity(i); 50 | break; 51 | 52 | case R.id.action_droid_to_apple: 53 | swapView(createMorphableView(R.drawable.animated_vector_droid_for_apple, R.drawable.animated_vector_apple, Color.parseColor("#4CAF50"))); 54 | break; 55 | 56 | case R.id.action_heart: 57 | swapView(createMorphableView(R.drawable.animated_vector_twitter, R.drawable.animated_vector_heart, Color.parseColor("#039BE5"))); 58 | break; 59 | 60 | case R.id.action_cart_to_droid: 61 | swapView(createMorphableView(R.drawable.animated_vector_cart, R.drawable.animated_vector_droid_for_cart, Color.parseColor("#FF5252"))); 62 | break; 63 | 64 | case R.id.action_icons: 65 | swapView(createMorphableView(R.drawable.animated_vector_icon_a, R.drawable.animated_vector_icon_b, Color.parseColor("#311B92"))); 66 | break; 67 | 68 | case R.id.action_wifi_to_retwwet: 69 | swapView(createMorphableView(R.drawable.animated_vector_wifi, R.drawable.animated_vector_retweet, Color.parseColor("#607D8B"))); 70 | break; 71 | 72 | case R.id.action_base: 73 | swapView(createMorphableView(R.drawable.strategy_base_animated_vector_drawable_start_to_end, R.drawable.strategy_base_animated_vector_drawable_end_to_start, Color.parseColor("#607D8B"))); 74 | break; 75 | 76 | case R.id.action_linear: 77 | swapView(createMorphableView(R.drawable.strategy_linear_animated_vector_drawable_start_to_end, R.drawable.strategy_linear_animated_vector_drawable_end_to_start, Color.parseColor("#01579B"))); 78 | break; 79 | 80 | case R.id.action_sub_base: 81 | swapView(createMorphableView(R.drawable.strategy_sub_base_animated_vector_drawable_start_to_end, R.drawable.strategy_sub_base_animated_vector_drawable_end_to_start, Color.parseColor("#558B2F"))); 82 | break; 83 | 84 | case R.id.action_sub_linear: 85 | swapView(createMorphableView(R.drawable.strategy_sub_linear_animated_vector_drawable_start_to_end, R.drawable.strategy_sub_linear_animated_vector_drawable_end_to_start, Color.parseColor("#E65100"))); 86 | break; 87 | 88 | // Add your test here! 89 | //case R.id.action_yout_morph: 90 | // swapView(createMorphableView(R.drawable.vectalign_animated_vector_drawable_start_to_end, vectalign_animated_vector_drawable__end_to_start, Color.parseColor("#E65100"))); 91 | // break; 92 | } 93 | } 94 | 95 | private void swapView(View newView){ 96 | View toRemove = parent.findViewById(R.id.morph_id); 97 | parent.removeView(toRemove); 98 | newView.setId(R.id.morph_id); 99 | parent.addView(newView, toRemove.getLayoutParams()); 100 | } 101 | 102 | private View createMorphableView(int startDrawable, int endDrawable, int color){ 103 | MorphButton mb = new MorphButton(this); 104 | mb.setForegroundTintList(ColorStateList.valueOf(color)); 105 | mb.setForegroundTintMode(PorterDuff.Mode.MULTIPLY); 106 | mb.setBackgroundColor(Color.TRANSPARENT); 107 | mb.setStartDrawable(startDrawable); 108 | mb.setEndDrawable(endDrawable); 109 | mb.setState(MorphButton.MorphState.START); 110 | return mb; 111 | } 112 | 113 | } 114 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # For Cygwin, ensure paths are in UNIX format before anything is touched. 46 | if $cygwin ; then 47 | [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 48 | fi 49 | 50 | # Attempt to set APP_HOME 51 | # Resolve links: $0 may be a link 52 | PRG="$0" 53 | # Need this for relative symlinks. 54 | while [ -h "$PRG" ] ; do 55 | ls=`ls -ld "$PRG"` 56 | link=`expr "$ls" : '.*-> \(.*\)$'` 57 | if expr "$link" : '/.*' > /dev/null; then 58 | PRG="$link" 59 | else 60 | PRG=`dirname "$PRG"`"/$link" 61 | fi 62 | done 63 | SAVED="`pwd`" 64 | cd "`dirname \"$PRG\"`/" >&- 65 | APP_HOME="`pwd -P`" 66 | cd "$SAVED" >&- 67 | 68 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 69 | 70 | # Determine the Java command to use to start the JVM. 71 | if [ -n "$JAVA_HOME" ] ; then 72 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 73 | # IBM's JDK on AIX uses strange locations for the executables 74 | JAVACMD="$JAVA_HOME/jre/sh/java" 75 | else 76 | JAVACMD="$JAVA_HOME/bin/java" 77 | fi 78 | if [ ! -x "$JAVACMD" ] ; then 79 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 80 | 81 | Please set the JAVA_HOME variable in your environment to match the 82 | location of your Java installation." 83 | fi 84 | else 85 | JAVACMD="java" 86 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 87 | 88 | Please set the JAVA_HOME variable in your environment to match the 89 | location of your Java installation." 90 | fi 91 | 92 | # Increase the maximum file descriptors if we can. 93 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 94 | MAX_FD_LIMIT=`ulimit -H -n` 95 | if [ $? -eq 0 ] ; then 96 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 97 | MAX_FD="$MAX_FD_LIMIT" 98 | fi 99 | ulimit -n $MAX_FD 100 | if [ $? -ne 0 ] ; then 101 | warn "Could not set maximum file descriptor limit: $MAX_FD" 102 | fi 103 | else 104 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 105 | fi 106 | fi 107 | 108 | # For Darwin, add options to specify how the application appears in the dock 109 | if $darwin; then 110 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 111 | fi 112 | 113 | # For Cygwin, switch paths to Windows format before running java 114 | if $cygwin ; then 115 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 116 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 117 | 118 | # We build the pattern for arguments to be converted via cygpath 119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120 | SEP="" 121 | for dir in $ROOTDIRSRAW ; do 122 | ROOTDIRS="$ROOTDIRS$SEP$dir" 123 | SEP="|" 124 | done 125 | OURCYGPATTERN="(^($ROOTDIRS))" 126 | # Add a user-defined pattern to the cygpath arguments 127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129 | fi 130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 131 | i=0 132 | for arg in "$@" ; do 133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135 | 136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138 | else 139 | eval `echo args$i`="\"$arg\"" 140 | fi 141 | i=$((i+1)) 142 | done 143 | case $i in 144 | (0) set -- ;; 145 | (1) set -- "$args0" ;; 146 | (2) set -- "$args0" "$args1" ;; 147 | (3) set -- "$args0" "$args1" "$args2" ;; 148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154 | esac 155 | fi 156 | 157 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 158 | function splitJvmOpts() { 159 | JVM_OPTS=("$@") 160 | } 161 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 162 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 163 | 164 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165 | -------------------------------------------------------------------------------- /app/app.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | VectAlignSamples 3 | VectAlign on github 4 | Tap on the image to start the morphing or select another animation from the menu. 5 | Morph icons (stroke) 6 | Morph droid to apple (stroke) 7 | Morph cart to droid (stroke) 8 | Morph wifi to retweet (stroke) 9 | Morph heart (stroke+fill) 10 | 11 | M 398.14,50.5 c 0.0,0.0,0.0,0.0,0.0,0.0 H 117.98 c -36.408,0.0,-68.48,26.452,-68.48,62.86 v 280.16 c 0.0,36.408,32.072,68.98,68.48,68.98 h 173.466 c 0.0,0.0,0.0,0.0,0.0,0.0 V 462.50003 L 291.446,462.50003 M 291.446,462.50003 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c -0.325,-54.0,0.077,-114.134,-0.185,-166.387 c -11.064,-0.112,-22.138,-0.684,-33.202,-0.854 c 0.041,-18.467,0.017,-37.317,0.024,-55.781 c 11.057,-0.137,22.121,-0.163,33.178,-0.268 c 0.338,-17.957,-0.338,-36.025,0.354,-53.966 c 1.103,-14.205,6.519,-28.563,17.14,-38.377 c 12.859,-12.239,31.142,-16.397,48.387,-16.912 c 18.233,-0.163,36.468,-0.076,54.71,-0.068 c 0.072,19.24,0.072,38.482,-0.008,57.722 c -11.789,-0.02,-23.585,0.023,-35.374,-0.025 c -7.468,-0.467,-15.145,5.198,-16.504,12.609 c -0.177,12.875,-0.064,25.757,-0.057,38.628 c 17.285,0.073,34.577,-0.02,51.862,0.044 c -1.264,18.629,-3.581,37.168,-6.285,55.637 c -15.272,0.137,-30.554,1.514,-45.818,1.602 c -0.129,52.236,0.04,112.395,-0.093,166.395 h 38.564 c 36.408,0.0,63.36,-32.572,63.36,-68.98 V 113.36 C 461.5,76.952,434.548,50.5,398.14,50.5 L 398.14,50.5 12 | M 461.5,115.92 c 0.0,-36.406,-29.012,-65.42,-65.42,-65.42 H 115.92 c -36.406,0.0,-66.42,29.014,-66.42,65.42 v 280.16 c 0.0,36.408,30.014,66.42,66.42,66.42 h 280.16 c 36.408,0.0,65.42,-30.012,65.42,-66.42 V 115.92 L 461.5,115.92 M 375.601,259.621 c -5.58,22.825,-18.866,43.3,-36.099,59.08 c -33.535,30.361,-79.981,44.914,-124.859,42.025 c -43.143,-2.636,-85.599,-23.899,-111.083,-59.182 c 2.229,1.3,4.098,3.099,6.226,4.543 c 19.731,14.275,46.0,18.813,69.459,12.44 c 14.235,-3.674,27.162,-11.636,37.486,-22.036 c -6.606,0.446,-13.938,-0.729,-18.725,-5.705 c -2.985,-2.845,-4.217,-7.521,-2.422,-11.33 c 2.173,-4.809,7.001,-7.544,11.563,-9.697 c -14.971,2.141,-31.286,-4.836,-38.187,-18.677 c 5.058,-6.035,13.141,-7.966,20.65,-8.558 c -8.739,-2.547,-17.713,-5.665,-24.338,-12.187 c -5.267,-4.937,-8.69,-11.785,-9.716,-18.918 c 6.186,-1.151,12.396,-2.559,18.737,-2.293 c -14.375,-7.483,-27.516,-21.73,-26.37,-38.957 c 27.263,9.946,54.085,21.286,79.698,34.982 c 8.96,4.92,16.412,12.046,23.735,19.071 c 7.097,-18.428,14.713,-36.927,26.257,-53.093 c 6.188,-8.504,13.486,-16.418,22.45,-22.021 c -0.35,2.786,-1.778,5.218,-3.102,7.634 c 6.694,-5.051,14.448,-8.96,22.865,-9.946 c -1.167,5.031,-5.938,7.665,-10.1,9.952 c 6.281,-1.857,12.404,-4.597,19.027,-5.049 c 1.763,-0.063,4.285,0.012,4.912,2.066 c 0.95,2.559,-1.641,4.544,-3.604,5.61 c -7.222,3.728,-15.575,4.275,-22.922,7.719 c 15.101,-1.418,30.176,4.436,41.627,14.098 c 13.667,11.251,22.7,27.539,25.995,44.859 c 12.083,3.247,25.143,0.897,36.48,-3.923 c -5.701,12.911,-20.218,18.806,-33.479,19.956 h 0.0 c 11.02,4.16,23.146,4.868,34.794,3.633 V 245.71698 C 403.323,255.952,389.035,259.934,375.601,259.621 L 375.601,259.621 13 | 14 | M 144.0,268.4 V 358.0 c 0.0,6.9,4.5,14.0,11.4,14.0 H 184.0 v 52.0 c 0.0,13.3,10.7,24.0,24.0,24.0 s 24.0,-10.7,24.0,-24.0 v -52.0 h 49.0 v 52.0 c 0.0,7.5,3.4,14.2,8.8,18.6 c 3.9,3.4,9.1,5.4,14.7,5.4 c 0.1,0.0,0.2,0.0,0.3,0.0 c 0.1,0.0,0.1,0.0,0.2,0.0 c 13.3,0.0,24.0,-10.7,24.0,-24.0 v -52.0 h 27.6 c 7.0,0.0,11.4,-7.1,11.4,-13.9 v -89.6 V 192.0 H 144.0 V 268.4 L 144.0,268.4 M 408.0,176.0 c -13.3,0.0,-24.0,10.7,-24.0,24.0 v 96.0 c 0.0,13.3,10.7,24.0,24.0,24.0 s 24.0,-10.7,24.0,-24.0 v -96.0 C 432.0,186.7,421.3,176.0,408.0,176.0 L 408.0,176.0 M 104.0,176.0 c -13.3,0.0,-24.0,10.7,-24.0,24.0 v 96.0 c 0.0,13.3,10.7,24.0,24.0,24.0 s 24.0,-10.7,24.0,-24.0 v -96.0 C 128.0,186.7,117.3,176.0,104.0,176.0 L 104.0,176.0 M 311.2,89.1 l 18.5,-21.9 c 0.4,-0.5,-0.2,-1.6,-1.3,-2.5 c -1.1,-0.8,-2.4,-1.0,-2.7,-0.4 l -19.2,22.8 c -13.6,-5.4,-30.2,-8.8,-50.6,-8.8 c -20.5,-0.1,-37.2,3.2,-50.8,8.5 l -19.0,-22.4 c -0.4,-0.5,-1.6,-0.4,-2.7,0.4 c -1.1,0.8,-1.7,1.8,-1.3,2.5 l 18.3,21.6 c -48.2,20.9,-55.4,72.2,-56.4,87.2 h 223.6 C 366.7,161.0,359.6,110.4,311.2,89.1 L 311.2,89.1 M 206.8,138.9 c -7.4,0.0,-13.5,-6.0,-13.5,-13.3 c 0.0,-7.3,6.0,-13.3,13.5,-13.3 c 7.4,0.0,13.5,6.0,13.5,13.3 C 220.3,132.9,214.3,138.9,206.8,138.9 L 206.8,138.9 M 305.2,138.9 c 0.0,0.0,0.0,0.0,0.0,0.0 c -7.4,0.0,-13.5,-6.0,-13.5,-13.3 c 0.0,-7.3,6.0,-13.3,13.5,-13.3 c 7.4,0.0,13.5,6.0,13.5,13.3 C 318.7,132.9,312.6,138.9,305.2,138.9 L 305.2,138.9 15 | M 333.6,153.9 V 153.9 c 0.0,0.0,0.0,0.0,0.0,0.0 H 333.6 v 0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 s 0.0,0.0,0.0,0.0 v 0.0 h 0.0 v 0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c -33.6,0.0,-47.8,16.5,-71.2,16.5 v 0.0 h 0.0 c -24.0,0.0,-42.3,-16.4,-71.4,-16.4 v 0.0 V 154.0 H 191.00003 V 154.0 L 191.00003,154.0 M 191.00003,154.0 c -28.5,0.0,-58.9,17.9,-78.2,48.4 v 0.0 c -27.1,43.0,-22.5,124.0,21.4,193.0 s 0.0,0.0,0.0,0.0 v 0.0 C 134.20003,395.4,134.20003,395.4,134.20003,395.4 L 134.20003,395.4 M 134.20003,395.4 c 15.7,24.7,36.7,52.4,64.2,52.7 v 0.0 c 0.2,0.0,0.3,0.0,0.5,0.0 s 0.0,0.0,0.0,0.0 v 0.0 C 198.90002,448.1,198.90002,448.1,198.90002,448.1 L 198.90002,448.1 M 198.90002,448.1 l 0.0,0.0 c 23.9,0.0,31.0,-16.1,63.9,-16.3 c 0.2,0.0,0.3,0.0,0.5,0.0 l 0.0,0.0 c 32.4,0.0,38.9,16.2,62.7,16.2 c 0.2,0.0,0.3,0.0,0.5,0.0 l 0.0,0.0 c 27.5,-0.3,49.6,-31.0,65.3,-55.6 c 11.3,-17.7,15.5,-26.6,24.2,-46.6 l 0.0,0.0 c -63.5,-24.8,-73.7,-117.4,-10.9,-152.9 h 0.0 C 385.9,168.2,359.0,153.9,333.6,153.9 L 333.6,153.9 M 333.6,153.9 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 C 333.6,153.9,333.6,153.9,333.6,153.9 L 333.6,153.9 M 326.2,64.0 c -20.0,1.4,-43.3,14.5,-57.0,31.6 c -12.4,15.5,-22.6,38.5,-18.6,60.8 c 0.5,0.0,1.0,0.0,1.6,0.0 c 21.3,0.0,43.1,-13.2,55.8,-30.1 C 320.3,110.2,329.6,87.4,326.2,64.0 L 326.2,64.0 16 | 17 | M 233.503,70.369 c 93.726,-6.75,189.622,28.317,256.515,94.363 c 8.765,9.023,7.622,24.807,-1.625,33.076 c -8.493,10.012,-25.501,10.189,-34.266,0.436 c -57.224,-55.091,-138.018,-84.881,-217.35,-78.956 c -65.905,4.24,-129.749,32.628,-177.572,78.096 c -4.253,4.347,-9.684,7.916,-15.938,8.222 c -15.666,1.837,-30.154,-14.536,-26.773,-29.86 c 0.954,-5.501,4.487,-10.083,8.527,-13.747 C 81.009,108.392,156.172,75.469,233.503,70.369 L 233.503,70.369 M 231.183,162.282 c 71.806,-7.81,146.369,18.658,197.183,69.968 c 7.939,9.07,6.95,23.901,-1.872,32.052 c -8.046,9.847,-24.265,10.953,-33.383,2.024 c -32.534,-32.074,-76.518,-52.44,-122.126,-55.774 c -55.387,-4.594,-111.974,16.42,-151.411,55.445 c -9.094,9.612,-26.033,8.518,-34.218,-1.708 c -8.823,-8.327,-9.553,-23.559,-1.084,-32.381 C 123.356,192.802,176.209,167.924,231.183,162.282 L 231.183,162.282 M 241.796,252.97 c 45.314,-4.499,92.161,12.852,123.693,45.669 c 8.634,8.987,7.634,24.454,-1.461,32.77 c -8.257,9.966,-24.807,10.638,-33.782,1.296 c -17.774,-18.245,-42.394,-29.778,-67.884,-31.168 c -28.929,-2.062,-58.201,9.365,-78.744,29.695 c -5.053,5.679,-12.557,9.165,-20.237,8.259 c -17.833,-1.25,-30.213,-25.056,-17.928,-39.344 C 170.26,273.243,205.492,256.575,241.796,252.97 L 241.796,252.97 M 248.781,337.651 c 29.201,-4.9,58.837,19.213,59.78,48.824 c 2.709,29.036,-22.923,56.589,-52.063,55.951 c -26.197,0.908,-50.475,-20.825,-52.772,-46.88 C 199.991,368.194,221.382,340.808,248.781,337.651 L 248.781,337.651 18 | M 175.292,123.158 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 55.974,-0.059,182.935,-0.039,238.896,-0.009 c 9.062,-0.385,17.491,7.286,17.521,16.426 c 0.158,46.409,-0.01,92.828,0.079,139.236 C 431.788,278.81097,431.788,278.81097,431.788,278.81097 L 431.788,278.81097 M 431.788,278.81097 c 24.737,0.089,49.475,-0.02,74.212,0.06 c -32.91,36.401,-66.107,72.547,-99.176,108.8 c -1.519,2.8,-3.354,0.049,-4.753,-1.341 c -32.438,-35.948,-65.467,-71.363,-97.796,-107.4 c 24.658,-0.216,49.307,0.0,73.966,-0.108 c 0.246,-34.045,0.216,-68.1,0.009,-102.135 c -26.64,-0.108,-124.279,0.01,-150.919,-0.059 C 210.147,158.653,192.389,141.221,175.292,123.158 L 175.292,123.158 M 105.197,124.354 c 1.716,-3.026,3.697,0.483,5.236,1.864 c 32.339,35.711,65.181,70.979,97.303,106.877 c -24.708,0.247,-49.416,-0.06,-74.124,0.148 c -0.098,33.995,-0.049,67.991,-0.019,101.986 c 26.709,0.237,127.365,-0.03,154.084,0.138 c 17.195,17.935,34.933,35.356,51.95,53.459 c -56.269,0.0,-186.484,0.049,-242.752,-0.03 C 96.875015,388.796,96.875015,388.796,96.875015,388.796 L 96.875015,388.796 M 96.875015,388.796 c -9.129,0.09,-17.017,-8.242,-16.643,-17.322 c -0.05,-46.093,0.029,-92.177,-0.029,-138.261 c -24.737,-0.099,-49.466,0.04,-74.203,-0.068 C 38.852,196.694,72.049,160.539,105.197,124.354 L 105.197,124.354 19 | 20 | M 153.6,409.6 V 409.6 c -28.287,0.0,-50.943,22.913,-50.943,51.2 H 102.657005 v 0.0 c 0.0,28.288,22.656,51.2,50.943,51.2 s 0.0,0.0,0.0,0.0 v 0.0 h 0.0 v 0.0 c 28.288,0.0,51.2,-22.912,51.2,-51.2 C 204.8,432.513,181.888,409.6,153.6,409.6 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 v 0.0 h 0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 v 0.0 V 409.6 H 153.6 V 409.6 L 153.6,409.6 M 0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 v 51.2 h 51.2 l 92.031,194.175 c 0.0,0.0,0.0,0.0,0.0,0.0 s 0.0,0.0,0.0,0.0 v 0.0 C 143.231,245.375,143.231,245.375,143.231,245.375 L 108.675,308.1 M 108.675,308.1 c -3.969,7.426,-6.274,15.738,-6.274,24.7 v 0.0 c 0.0,28.288,22.912,51.2,51.199,51.2 h 307.2 s 0.0,0.0,0.0,0.0 v -51.2 H 164.481 C 164.481,332.80002,164.481,332.80002,164.481,332.80002 L 164.481,332.80002 M 164.481,332.80002 l 0.0,0.0 c -3.588,0.0,-6.4,-2.812,-6.4,-6.399 c 0.0,-1.15,0.257,-2.176,0.769,-3.075 l 22.913,-41.726 h 190.712 c 19.2,0.0,35.976,-10.625,44.801,-26.368 L 508.8,89.088 c 2.05,-3.582,3.2,-7.807,3.2,-12.288 l 0.0,0.0 c 0.0,-14.206,-11.525,-25.6,-25.6,-25.6 H 107.906 c 0.0,0.0,0.0,0.0,0.0,0.0 l 0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 h 0.0 C 107.906,51.199997,107.906,51.199997,107.906,51.199997 L 83.581,0.0 H 0.0 M 0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 C 0.0,0.0,0.0,0.0,0.0,0.0 L 0.0,0.0 M 409.6,409.6 c -28.287,0.0,-50.949,22.913,-50.949,51.2 c 0.0,28.288,22.662,51.2,50.949,51.2 c 28.288,0.0,51.2,-22.912,51.2,-51.2 C 460.8,432.513,437.888,409.6,409.6,409.6 L 409.6,409.6 21 | M 144.0,268.4 V 358.0 c 0.0,6.9,4.5,14.0,11.4,14.0 H 184.0 v 52.0 c 0.0,13.3,10.7,24.0,24.0,24.0 s 24.0,-10.7,24.0,-24.0 v -52.0 h 49.0 v 52.0 c 0.0,7.5,3.4,14.2,8.8,18.6 C 289.8,442.6,289.8,442.6,289.8,442.6 c 3.9,3.4,9.1,5.4,14.7,5.4 c 0.1,0.0,0.2,0.0,0.3,0.0 c 0.1,0.0,0.1,0.0,0.2,0.0 c 13.3,0.0,24.0,-10.7,24.0,-24.0 v -52.0 h 27.6 c 7.0,0.0,11.4,-7.1,11.4,-13.9 v -89.6 V 192.0 H 144.0 V 268.4 L 144.0,268.4 M 408.0,176.0 c -13.3,0.0,-24.0,10.7,-24.0,24.0 v 96.0 h 0.0 l 0.0,0.0 c 0.0,13.3,10.7,24.0,24.0,24.0 s 24.0,-10.7,24.0,-24.0 v -96.0 C 432.0,186.7,421.3,176.0,408.0,176.0 L 408.0,176.0 M 104.0,176.0 c -13.3,0.0,-24.0,10.7,-24.0,24.0 v 96.0 c 0.0,13.3,10.7,24.0,24.0,24.0 h 0.0 s 24.0,-10.7,24.0,-24.0 v -96.0 H 128.0 C 128.0,186.7,117.3,176.0,104.0,176.0 L 104.0,176.0 M 311.2,89.1 l 18.5,-21.9 c 0.4,-0.5,-0.2,-1.6,-1.3,-2.5 c -1.1,-0.8,-2.4,-1.0,-2.7,-0.4 l -19.2,22.8 h 0.0 c -13.6,-5.4,-30.2,-8.8,-50.6,-8.8 L 255.9,78.29999 c -20.5,-0.1,-37.2,3.2,-50.8,8.5 l -19.0,-22.4 c -0.4,-0.5,-1.6,-0.4,-2.7,0.4 H 183.4 c -1.1,0.8,-1.7,1.8,-1.3,2.5 l 18.3,21.6 c -48.2,20.9,-55.4,72.2,-56.4,87.2 h 223.6 C 366.7,161.0,359.6,110.4,311.2,89.1 L 311.2,89.1 H 311.2 M 206.8,138.9 c -7.4,0.0,-13.5,-6.0,-13.5,-13.3 c 0.0,-7.3,6.0,-13.3,13.5,-13.3 c 7.4,0.0,13.5,6.0,13.5,13.3 C 220.3,132.9,214.3,138.9,206.8,138.9 L 206.8,138.9 M 305.2,138.9 c -7.4,0.0,-13.5,-6.0,-13.5,-13.3 c 0.0,-7.3,6.0,-13.3,13.5,-13.3 c 7.4,0.0,13.5,6.0,13.5,13.3 C 318.7,132.9,312.6,138.9,305.2,138.9 L 305.2,138.9 22 | 23 | m 307.875,126.404 c 6.96685,-8.61939,29.12008,-17.08181,25.5701,-3.05751 c 13.39136,-6.7271,33.589,2.40821,10.46334,9.63904 c -17.0778,2.39496,-17.81724,9.18408,-0.62694,9.10387 c 35.86767,8.18474,61.99384,41.44906,68.3245,76.7286 c 10.45035,11.77149,46.91265,-13.89899,41.33337,7.48596 c -10.44591,5.65103,-47.29367,19.19282,-14.9578,18.62662 c 18.0629,-6.01875,23.73874,12.45133,4.00654,13.34796 c -29.12584,-1.47307,-36.10608,23.88493,-45.78006,45.11213 c -47.177,77.2947,-149.0087,110.81044,-235.03297,89.1472 c -42.9752,-10.64338,-83.26104,-35.02382,-109.47805,-71.11429 c 41.533226,33.61834,108.76383,33.09383,146.26369,-6.46628 c -21.75364,1.27997,-34.00259,-27.177,-16.49801,-36.57025 c -20.15336,4.10407,-56.1857,-21.12341,-28.73663,-37.3952 c 13.04111,-2.53714,-26.35313,-13.06615,-29.72758,-25.57746 c -17.75098,-20.7389,36.85886,-16.92307,4.95823,-30.22202 c -16.5205,-7.6902,-26.45728,-48.80934,1.78999,-33.25481 c 37.72293,16.79251,79.05909,29.09309,109.68617,58.06916 c 22.63731,2.83875,17.01914,-37.57202,32.95863,-49.48842 C 272.39148,160.5183,272.39148,160.5183,272.39148,160.5183 c 6.93904,-13.71726,33.24333,-46.66964,38.03272,-39.02084 l -2.54924,4.90654 l 0.0,0.0 L 307.875,126.404 24 | m 140.48016,477.87656 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 0.0,0.0,0.0,0.0,0.0,0.0 c 50.16652,0.0,93.34059,-30.61473,113.33915,-74.66302 c 20.01348,44.04733,63.19314,74.66302,113.36339,74.66302 c 69.1611,0.0,125.29187,-58.01557,125.29187,-129.49554 c 0.0,-145.39827,-141.92796,-183.52362,-238.65433,-327.27353 C 162.39255,163.96626,15.186441,207.62245,15.186441,348.381 c 0.0,71.47997,56.131695,129.49554,125.29373,129.49554 l 0.0,0.0 l 0.0,0.0 L 140.48016,477.87656 25 | Morph strategy BASE 26 | Morph strategy LINEAR 27 | Morph strategy SUB-BASE 28 | Morph strategy SUB-LINEAR 29 | 30 | 31 | --------------------------------------------------------------------------------