Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
curvy:releasenotes [2016/10/26 16:49] Jakereleasenotes [2024/03/26 17:35] (current) – 8.8.0 _Aka_
Line 1: Line 1:
 +{{description>Discover what's in the latest updates of Curvy Splines, the best Unity spline asset, available on the Unity Asset Store.}}
 ====== Release Notes ====== ====== Release Notes ======
 +<note important>At each Curvy update, please delete the old Curvy folders before installing the new version.</note>
 +<note tip>Starting from version 3.0.0, Curvy is using the versioning standard "Semantic Versioning 2.0.0". More about it here : https://semver.org/</note>
 +
 +=====8.8.0=====
 +  * Curvy Generator:
 +    * <span lo>(NEW)</span> Graph editor supports various zoom levels.
 +    * <span lo>(NEW)</span> Pressing the F key to centers view on selected modules, or the entire graph if none selected.
 +    * <span lo>(NEW)</span> Pressing the Escape key cancels the current link drag.
 +    * <span lo>(NEW)</span> Right-clicking on an existing link deletes it.
 +    * <span lo>(NEW)</span> Holding Alt while scrolling increases scroll speed.
 +    * <span lo>(NEW)</span> Ctrl and Shift modifiers are now taken into consideration when selecting/deselecting modules.
 +    * <span lo>(NEW)</span> Graph zoom and scroll are persisted between different editing sessions.
 +    * <span lo>(NEW)</span> Dragging a link or selection rectangle now initiates view scrolling when mouse is near the window's edges.
 +    * <span lo>(NEW)</span> The snap grid is now displayed in the backgound.
 +    * <span lo>(NEW)</span> When synchronize selection is set to false, double-clicking on a module in the hierarchy selects it in the graph.
 +    * <span lo>(NEW)</span> Dropping an input link into an empty space opens a filtered module list.
 +    * <span lo>(CHANGED)</span> Canvas size is now infinite.
 +    * <span lo>(CHANGED)</span> Dragging an input slot creates a new input link instead of modifying the existing one. To modify the existing one, hold the Ctrl key while dragging.
 +    * <span lo>(CHANGED)</span> Dropping an output link into an empty space now automatically opens the filtered module list, no need to hold the Ctrl key.
 +    * <span lo>(CHANGED)</span> Modules can be dragged from any empty space.
 +    * <span lo>(CHANGED)</span> When dragging a link, incompatible slots are now fully grayed.
 +    * <span lo>(CHANGED)</span> New generators now always dock next to a scene view.
 +    * <span lo>(CHANGED)</span> Changed module selection highlight color to match Unity's.
 +    * <span lo>(CHANGED)</span> Enhanced the Help box's position and message.
 +    * <span lo>(CHANGED] Snap Grid values range from [1;20] to [10;40)</span>.
 +    * <span lo>(CHANGED)</span> Snap Grid default value changed from 5 to 20.
 +    * <span lo>(CHANGED)</span> Renaming a module while selecting multiple modules does not cancel the selection.
 +    * <span lo>(CHANGED)</span> Module titles are now truncated when too long.
 +    * <span lo>(CHANGED)</span> Reduced refresh highlight duration from 1.5s to 0.5s.
 +    * <span lo>(FIXED)</span> Errors when exiting Play Mode while the CG window is open and selecting a GameObject with no generator.
 +    * <span lo>(FIXED)</span> Errors when undoing the deletion of modules.
 +    * <span lo>(FIXED)</span> Invalid GUILayout State errors.
 +    * <span lo>(FIXED)</span> Layout Mismatch errors.
 +    * <span lo>(FIXED)</span> Editing a disabled generator while in play mode deletes modules.
 +    * <span lo>(FIXED)</span> Module linking/unlinking is not undoable.
 +    * <span lo>(FIXED)</span> Module selection highlights are not occluded properly when multiple modules are overlapping.
 +    * <span lo>(FIXED)</span> Module background sometimes disappears.
 +    * <span lo>(FIXED)</span> Dragged module is occluded by non-selected modules.
 +    * <span lo>(FIXED)</span> When multiple modules are selected, modifying a slider parameter drags all the selected modules.
 +    * <span lo>(FIXED)</span> Selection rectangle not ending when drag is released outside of the graph window.
 +    * <span lo>(FIXED)</span> Module focus animation has a different speed depending on how the module was selected.
 +    * <span lo>(FIXED)</span> View not being centered on the right module when a generator is opened via a module's inspector.
 +    * <span lo>(FIXED)</span> When multiple scenes are open, some Generator operations marked the wrong scene as dirty.
 +    * <span lo>(FIXED)</span> Removing a link does not dirty the scene.
 +    * <span lo>(FIXED)</span> Selection rectangle starts even when the mouse is outside of the viewport.
 +    * <span lo>(FIXED)</span> Middle mouse button (canvas drag) activates some controls on modules.
 +    * <span lo>(FIXED)</span> Modules are not drawn for a frame when refreshing a generator.
 +    * <span lo>(FIXED)</span> When selecting multiple modules, not all the modules have the same highlight.
 +    * <span lo>(FIXED)</span> Middle click when the cursor is on a module moves the module instead of dragging the canvas.
 +    * <span lo>(FIXED)</span> Link drag starts when clicking on the empty space between a module's slots.
 +    * <span lo>(FIXED)</span> Snapping multiple modules sometimes makes the modules move too far.
 +    * <span lo>(FIXED)</span> Snap Grid Size not respected for the first snapped module drag after the editor's rebuild.
 +    * <span lo>(FIXED)</span> Opening a generator clears the hierarchy selection.
 +    * <span lo>(FIXED)</span> Module reordering not positionning culled modules correctly.
 +    * <span lo>(FIXED)</span> Selection rectangle overlaps the editor's toolbar.
 +    * <span lo>(OPTIM)</span> Enhanced drawing performance, especially for big generators.
 +    * <span lo>(NEW/API)</span> Added CurvyGenerator.DeleteLink(CGModuleLink).
 +  * Curvy Splines:
 +    * <span lo>(OPTIM)</span> Reduced spline refresh duration, especially for B-Splines (up to 50%)
 +    * <span lo>(OPTIM)</span> Spline refreshing generates 0 allocations.
 +
 +=====8.7.3=====
 +  * General
 +    * <span lo>(FIXED)</span> Compilation error when using Unity 2021.2
 +    * <span lo>(FIXED)</span> Changes in Preferences do not reflect instantly on all scene views
 +  * Toolbar
 +    * <span lo>(NEW)</span> Added a Toolbar Customization section to Preferences. Allows for better placement of the toolbar.
 +    * <span lo>(CHANGED)</span> Renamed some toolbar related options in Preferences.
 +    * <span lo>(FIXED)</span> Sub-menus are sometimes displayed too far from their associated buttons.
 +    * <span lo>(FIXED)</span> Toolbar overflows before wrapping.
 +    * <span lo>(FIXED)</span> Toolbar is partially hidden by Unity's toolbars.
 +    * <span lo>(FIXED)</span> Import/Export button is not visible when toolbar is shown contextually.
 +
 +=====8.7.2=====
 +  * <span lo>(CHANGED)</span> Example scene 05_NearestPoint now uses the Nearest Spline Point component
 +  * <span lo>(FIXED)</span> Nearest Spline Point: On Updated event not visible in the inspector
 +  * <span lo>(FIXED)</span> Nearest Spline Point: Object not positioned properly when spline is moved
 +
 +=====8.7.1=====
 +  * <span lo>(CHANGED)</span> Create Mesh module: Removed unnecessary logs related to Unwrap UV2, and increased severity of the necessary ones
 +  * <span lo>(FIXED)</span> Create Mesh module: Generated static meshes sometimes missing in builds
 +  * <span lo>(FIXED)</span> The Overlay Menu closes as soon as it opens when using Curvy Splines
 +  * <span lo>(FIXED)</span> Curvy Generators errors in builds made using Unity versions prior to 2021 LTS
 +
 +=====8.7.0=====
 +  * <span lo>(NEW)</span> Curvy Spline: Added an On Initialized event
 +  * <span lo>(CHANGED)</span> Better error message when trying to create a connection while in prefab mode
 +  * <span lo>(FIXED)</span> Input Spline modules: Start and End CPs are reset when loading a scene
 +  * <span lo>(FIXED)</span> Input Spline modules: Start and End CPs can have invalid order if you assign them while their spline is disabled
 + 
 +=====8.6.1=====
 +  * "Invalid GUILayout state" error in the console when editing a CG graph
 +
 +=====8.6.0=====
 +  * General
 +    * <span lo>(NEW)</span> Orientation Anchors are now annotated in the Hierarchy view
 +    * <span lo>(NEW)</span> Added setting in Preferences: Annotate Hierarchy
 +    * <span lo>(NEW)</span> Now uses the new API Reference website
 +    * <span lo>(FIXED)</span> Version 8.5.0 introduced a regression where _CurvyGlobal_ is automatically instantiated in every scene
 +    * <span lo>(FIXED)</span> Blurry icons in the UI
 +    * <span lo>(FIXED)</span> The Nearest Spline Point helper component not working in builds
 +  * Editor Undoing
 +    * <span lo>(FIXED)</span> Some tools in the toolbar are not undoable in play mode
 +    * <span lo>(FIXED)</span> Multiple error messages when undoing deletion of connected control points
 +    * <span lo>(FIXED)</span> Console warning message when undoing connection creation
 +    * <span lo>(FIXED)</span> Volume Mesh module: Adding/Removing a material is not undoable
 +
 +=====8.5.0=====
 +  * General
 +    * <span lo>(NEW)</span> Curvy Splines is now fully compatible with the Enter Play Mode Options.
 +      * More about that here: https://docs.unity3d.com/2021.3/Documentation/Manual/ConfigurableEnterPlayMode.html
 +    * <span lo>(OPTIM)</span> Improved initialization time
 +    * <span lo>(OPTIM)</span> Better general performance when scene has a lot of objects
 +    * <span lo>(FIXED)</span> Multiple warning messages appear while Reload Scene is disabled
 +    * <span lo>(FIXED)</span> Toolbar buttons can have empty tooltips
 +    * <span lo>(FIXED)</span> Curvy Line Renderer and Curvy Spline To Edge Collider 2D: scripts update twice when a spline is moved
 +    * <span lo>(FIXED)</span> Build failure when code stripping is set to high
 +    * <span lo>(FIXED)</span> WebGL build freezes on black screen
 +    * <span lo>(API/NEW)</span> Added EnvironmentAgnosticInitializeOnLoadMethodAttribute
 +    * <span lo>(API/NEW)</span> Added CameraFrustumPlanesProvider
 +    * <span lo>(API/NEW)</span> DTVersionedMonoBehaviour: Added IsActiveAndEnabled, OnEnable, OnValidate, and Reset
 +  * Curvy Generator
 +    * General
 +      * <span lo>(OPTIM)</span> Reduced memory consumption of CG modules in edit mode
 +      * <span lo>(FIXED)</span> Some modules show "Serialized Property" instead of the list name
 +      * <span lo>(FIXED)</span> ArgumentException when dropping a game object on some specific areas of some modules
 +      * <span lo>(FIXED)</span> Shape Extrusion module: Shape editor occasionally misplaced when volume is empty
 +      * <span lo>(API/NEW)</span> Added CGResourceHandler.RegisterResourceLoader
 +      * <span lo>(API/FIXED)</span> CGModuleOutputSlot.UnlinkAll not working
 +      * <span lo>(API/CHANGE)</span> CGModuleOutputSlot: Changed some members to ensure returned ojects are not null
 +      * <span lo>(API/CHANGE)</span> IOnRequestProcessing.OnSlotDataRequest must now return non-null arrays containing non-null items
 +      * <span lo>(API/CHANGE)</span> ICGResourceLoader instances are no more found using reflection. Implementers need to self-register using CGResourceHandler.RegisterResourceLoader
 +      * <span lo>(API/FIXED)</span> BuildVolumeSpots.CrossBase's setter transforms valid negative values to positive ones
 +    * Modules management
 +      * <span lo>(NEW)</span> Added the Duplicate action to module's contextual menu
 +      * <span lo>(FIXED)</span> Resetting a module via the editor's hierarchy breaks the generator
 +      * <span lo>(FIXED)</span> Duplicating a module via the editor's hierarchy generates errors
 +      * <span lo>(FIXED)</span> Errors when pasting twice a copied or cut module
 +      * <span lo>(FIXED)</span> Managed resources in copied modules are named using the wrong module's name
 +      * <span lo>(FIXED)</span> Occasional errors regarding invalid module ids      
 +      * <span lo>(API/NEW)</span> Added CurvyGenerator.AddModule(CGModule)
 +      * <span lo>(API/NEW)</span> Added CurvyGenerator.RemoveModule(CGModule)    
 +    * Meshes
 +      * <span lo>(OPTIM)</span> Reduced memory usage of pooled meshes
 +      * <span lo>(OPTIM)</span> Improved loading times for scenes with many Curvy Generators meshes
 +      * <span lo>(FIXED)</span> Generators duplicated in Play mode use the same mesh as the original
 +      * <span lo>(FIXED)</span> Pooled meshes keep their children when reused      
 +    * Refreshing
 +      * <span lo>(FIXED)</span> Some Input modules not refreshing when adding a new input
 +      * <span lo>(FIXED)</span> Auto refreshing is broken while Reload Scene is disabled
 +      * <span lo>(FIXED)</span> Unnecessary updates happening when an input spline changes its coordinates 
 +      * <span lo>(FIXED)</span> Resetting some modules do not reset their result
 +    * Path Line Renderer
 +      * <span lo>(CHANGE)</span> Now requires a Line Renderer component
 +      * <span lo>(FIXED)</span> Deleting the associated Line Renderer generates errors        
 +  * Curvy Spline / Shapes
 +    * <span lo>(OPTIM)</span> Improved Dynamic Orientation computation time for specific cases in Curvy Spline
 +    * <span lo>(OPTIM)</span> Drastically reduced memory allocations/garbage collection when updating splines
 +    * <span lo>(FIXED)</span> Selecting a spline hides its gizmo when using Unity 2021.3.22
 +    * <span lo>(FIXED)</span> Swirl is not applied properly
 +    * <span lo>(FIXED)</span> Updating Control Point hierarchy in editor doesn't automatically update the spline
 +    * <span lo>(FIXED)</span> Error in Curvy Spline Segment inspector trying to access destroyed control point
 +    * <span lo>(FIXED)</span> Removing Control Points from connected splines with Follow Ups can lead to errors
 +    * <span lo>(FIXED)</span> Join Splines, Split Spline, and Subdivide tools not being undoable in play mode
 +    * <span lo>(FIXED)</span> Import/Export Splines window: Undoing a "Write new spline(s)" operation generates errors
 +    * <span lo>(FIXED)</span> Pooled Control Points keep their pre-pooling value of the Bake Orientation property
 +    * <span lo>(FIXED)</span> MetaCGOptions modification triggers its spline's On Refresh event multiple times
 +    * <span lo>(FIXED)</span> Enabling a Shape, which Plane value was modified while disabled, does not update its Spline's Restricted 2D Plane value
 +    * <span lo>(FIXED)</span> Pooled control points keep their children when reused
 +    * <span lo>(API/NEW)</span> Added CurvySplineSegment.EffectiveTcbParameters
 +    * <span lo>(API/CHANGE)</span>CurvySpline.UseThreading no longer returns false when threading is unsupported in the current environment
 +    * <span lo>(API/FIXED)</span> Control Points not part of a segment have their Up approximation set to zero
 +    * <span lo>(API/FIXED)</span> Typo in CurvySplineSegment.OrientatinInfluencesSpline
 +    * <span lo>(API/FIXED)</span> CSStart: Sides, OuterRoundness and InnerRoundness properties don't properly constrain input values
 +  * Curvy Global Manager
 +    * <span lo>(OPTIM)</span> Improved performance (CPU and memory) when loading scenes containing _CurvyGlobal_
 +    * <span lo>(FIXED)</span> Error message logged in console about Curvy Global Manager not being found
 +    * <span lo>(FIXED)</span> Error when deleting _CurvyGlobal_ at runtime and loading another scene
 +    * <span lo>(FIXED)</span> Error when changing scenes while Reload Scene is disabled
 +    * <span lo>(FIXED)</span> Warning about multiple instances of 'Array Pools Settings' when changing scenes
 +    * <span lo>(FIXED)</span> Errors when opening a prefab containing a spline while active scene has no _CurvyGlobal_
 +    * <span lo>(FIXED)</span> Editor freeze when opening a prefab containing a spline but no _CurvyGlobal_
 +    * <span lo>(FIXED)</span> Opening a prefab containing _CurvyGlobal_ modifies the one in the active scene
 +    * <span lo>(FIXED)</span> Error message when opening a prefab having _CurvyGlobal_ as its root
 +  * Pools
 +    * <span lo>(CHANGE)</span> Enhanced the inspector with better names and tooltips
 +    * <span lo>(FIXED)</span> Minimal and maximal thresholds not being respected
 +    * <span lo>(FIXED)</span> Reset not working  
 +    * <span lo>(FIXED)</span> PrefabPool: OnBeforePush not triggered in edit mode
 +    * <span lo>(FIXED)</span> Component Pool: failure while Reload Domain is disabled
 +    * <span lo>(API/NEW)</span> Added PoolSettings.SetToDefault
 +    * <span lo>(API/CHANGE)</span> PrefabPool, ComponentPool, and Pool<T> now have unified event handling, following the behavior of Pool<T>
 +    * <span lo>(API/FIXED)</span> Copy constructor of PoolSettings does not copy the AutoEnableDisable field
 +  * Curvy Connection
 +    * <span lo>(FIXED)</span> Null reference exception from inspector of disabled connection
 +    * <span lo>(FIXED)</span> Create Connection tool not being undoable in play mode
 +    * <span lo>(FIXED)</span> Editing a prefab containing _CurvyGlobal_ can cause connection duplication
 +  * Controllers
 +    * <span lo>(CHANGE)</span> Enabling or starting a controller is now consistent: it is stopped by default unless Play Automatically is true
 +    * <span lo>(FIXED)</span> Volume Controller: Empty volume inputs result in errors
 +  * Curvy GL Renderer
 +    * <span lo>(OPTIM)</span> Reduced memory usage
 +    * <span lo>(FIXED)</span> Drawing outdated spline data
 +
 +=====8.4.0=====
 +  * General
 +    * <span lo>(CHANGE)</span> Made all editors support multi-object editing
 +    * <span lo>(CHANGE)</span> Enhanced some example scenes
 +    * <span lo>(NEW)</span> Most console messages now highlight the object that triggered them when clicking on the messages
 +    * <span lo>(FIXED)</span> Corrected factual error in the documentation of OnBeforeControlPointAdd
 +  * Curvy Generator
 +    * <span lo>(CHANGE)</span> Shape Extrusion/Deform Mesh: Better presentation of advanced scaling fields
 +    * <span lo>(OPTIM)</span> Deform Mesh: better performance when Scale Mode is set to Advanced but its scaling multiplier curves are equivalent to the constant value of 1
 +    * Path Relative Translation:
 +      * <span lo>(OPTIM)</span> Multithreaded the logic of the module
 +      * <span lo>(NEW)</span> Made translation that varies along the path possible, by adding the Multiplier setting
 +      * <span lo>(NEW)</span> Made the translation direction parametrizable through the Angle setting
 +    * Variable Mix Shapes:
 +      * <span lo>(CHANGE)</span> Invalid Mix Curve values are now substituted with valid ones, in addition to the warning previously shown
 +      * <span lo>(OPTIM)</span> Updating takes less CPU time
 +  * Line Renderer/ Curvy Spline To Edge Collider 2D:
 +    * <span lo>(CHANGE)</span> Scripts are now listed under the Converters menu (instead of Misc)
 +    * <span lo>(CHANGE)</span> The Line Renderer/Edge Collider 2D is now kept as is when the source Spline is set to None (instead of emptied)
 +    * <span lo>(FIXED)</span> The scripts are being Updated unnecessarily under some circumstances
 +  * Spline Controller  
 +    * <span lo>(FIXED)</span> On Position Reached events: In closed loops, events at spline start/end are not always triggered
 +    * <span lo>(FIXED)</span> On Position Reached events: In closed loops, events not at spline start/end are triggered when the controller goes through the spline's start/end
 +  * API
 +    * <span lo>(API/NEW] Added CurvySplineSegment[)</span> Add(int controlPointsCount)
 +    * <span lo>(API/CHANGE)</span> Method TypeExt.GetLoadedTypes, that was set as Obsolete in 8.1.0, is no more obsolete
 +
 +=====8.3.0=====
 +  * <span lo>(NEW)</span> Deform Mesh module: added a Scale tab with scale parameters, similar to the one in the Shape Extrusion module
 +  * <span lo>(NEW)</span> Controllers: Added a Constraints setting, to set position and rotation constraints
 +  * <span lo>(NEW)</span> Controllers: Added a Target Component setting, to define what component the controller should control: Transform, Rigidbody or Rigidbody2D
 +  * <span lo>(CHANGE)</span> Updated example scene 10_RBSplineController to showcase physics interactions with controllers
 +  * <span lo>(CHANGE)</span> Create Mesh module: Changed the default value of Group Meshes to false
 +  * <span lo>(FIXED)</span> In an HDRP build, using a Create Mesh module with the Combine setting set to true generates errors
 +  * <span lo>(FIXED)</span> Rasterize Path module: Setting the Range to a zero length range resets all the settings of the module
 +  * <span lo>(FIXED)</span> Prefab Pool: error when creating a new pool with no name
 +  * <span lo>(FIXED)</span> Prefab Pool: when name is empty, adding a prefab does not automatically set the name of the pool
 +  * <span lo>(API/CHANGE)</span> The default value of PrefabPool.Identifier is now String.Empty instead of null
 +  * <span lo>(API/FIXED)</span> Typo in BuildVolumeMesh.MaterialSetttings
 +
 +=====8.2.2=====
 +  * <span lo>(FIXED)</span> Selecting a spline hides its gizmo when using Unity 2022.1
 +
 +=====8.2.1=====
 +  * <span lo>(FIXED)</span> Console error when showing a Spline Controller's inspector under specific Unity versions
 +
 +=====8.2.0=====
 +  * <span lo>(NEW)</span> Added warnings in InputMesh and GameObjectToMesh modules when meshes are not readable
 +  * <span lo>(FIXED)</span> Deform Mesh module: Errors when used with a mesh with no tangents
 +  * <span lo>(FIXED)</span> Deform Mesh module: runtime errors in builds lacking the Diffuse material
 +  * <span lo>(FIXED)</span> IL2CPP builds: Error when unloading/switching scenes containing Array Pools
 +  * <span lo>(FIXED)</span> IL2CPP builds: runtime error
 +  * <span lo>(FIXED)</span> Example scenes: Error message in scene 51, and setup problem in scene 50
 +  * <span lo>(API/NEW)</span> Spline input modules: Added SetRange and ClearRange methods
 +
 +=====8.1.0=====
 +  * <span lo>(NEW)</span> Curvy Spline Segment: added the CP's Relative Distance to the info box
 +  * <span lo>(NEW)</span> Create Mesh module: added a 3rd export button, to export meshes to both the scene and assets.
 +    * This is useful when you want to make a prefab out of the exported to scene gameobject
 +  * <span lo>(CHANGED)</span> Made prefabs containing scripts from Curvy Splines openable in Play Mode
 +  * <span lo>(CHANGED)</span> Position gizmo for Bezier handles is now slightly different than Unity's position gizmo
 +    * This is to make it easier to distinguish the position gizmo of a Control Point from its handles'
 +  * <span lo>(CHANGED)</span> Volume Spots module: the minimal allowed depth for objects was changed from 0.01 to 0.001
 +    * This is to allow for placement of smaller objects
 +  * <span lo>(OPTIM)</span> Reduced various initialization times, as well as entering Play Mode and reload times
 +    * This is especially visible in projects with a big number of scripts
 +  * <span lo>(FIXED)</span> Building for iOS platform leads to errors
 +  * <span lo>(FIXED)</span> Under Unity 2022.1 beta, an error message is sometimes displayed at project reloading 
 +
 +=====8.0.2=====
 +  * <span lo>(OPTIM)</span> Minor optimization of the Deform Mesh module
 +  * <span lo>(FIXED)</span> Control point's gizmo labels are not positioned properly under certain Unity versions
 +    * This bug is due to a regression in Unity that has been fixed lately. Curvy had a workaround to that regression. This update disables the workaround for the latest Unity versions that don't need the workaround. It is recommended to use both Curvy 8.0.2 or higher, and Unity 2021.2.12f1 or higher.
 +    * More about the issue here: https://issuetracker.unity3d.com/issues/handles-dot-label-does-not-appear-in-the-supposed-place
 +
 +=====8.0.1=====
 +  * <span lo>(NEW)</span> Added a warning when a spline's gizmo color is transparent
 +  * <span lo>(FIXED)</span> Spline's gizmo colors are sometimes automatically set to a transparent color
 +  * <span lo>(CHANGED)</span> Create Mesh module: GroupMeshes is now hidden if Combine is set to false
 +    * Before this change, the GroupMeshes parameter was visible even when its value was not used
 +
 +=====8.0.0=====
 +**TL;DR** Deform Mesh and other new CG modules, Spline Controller's On Position Reached events, SVG import, B-Splines, Spline To Edge Collider 2D, major optimizations, a LOT of fixes and an easier workflow
 +
 +  * General
 +    * <span lo>(NEW)</span> Added a Curvy Spline To Edge Collider 2D script
 +    * <span lo>(NEW)</span> Added an Array Pools Settings script
 +      * Curvy Splines now use pools of arrays as a mean to reduce CPU time. These pools have a default capacity. Automatically, an instance of Array Pools Settings is added to the _CurvyGlobal_ object. It allows you to define the capacity of the pools, and shows you their current usage. Set the Capacity to 0 to not use the pools at all
 +    * <span lo>(CHANGED)</span> Changed the folders structure. Now everything is in a Plugins/ToolBuddy folder. As recommended for every update, please delete the old Curvy folders before installing the new version
 +    * <span lo>(CHANGED)</span> Improved various UIs, including the Curvy Generator: improved ease of use, added tooltips, added warning messages when relevant, etc...
 +    * <span lo>(CHANGED)</span> Various documentation enhancements
 +    * <span lo>(OPTIM)</span> Optimized various features, both in edit mode and play mode. The optimizations are related to both CPU time and memory usage. The biggest of these optimizations greatly improves scenarios involving frequent updates of Curvy Generator, such as real-time mesh generation
 +    * <span lo>(FIXED)</span> Toolbar not displaying when setting the Unity Editor language to a language other than English
 +    * <span lo>(FIXED)</span> Truncated text in some buttons due to new UI
 +    * <span lo>(API/CHANGED)</span> SerializableArray has changed namespace from FluffyUnderware.CurvyEditor to FluffyUnderware.Curvy.Utils
 +
 +  * Splines
 +    * General
 +      * <span lo>(NEW)</span> Support for B-Splines
 +      * <span lo>(NEW)</span> Restrict To 2D can now restrict the spline in any of the main 3 planes. You can select the plane via a new setting, Restricted 2D Plane
 +      * <span lo>(NEW)</span> Nearest Spline Point: a script to get the nearest point on a spline
 +      * <span lo>(CHANGED)</span> Splines created via the editor have now a numbered suffix added to their name
 +      * <span lo>(CHANGED)</span> When adding a Control Point to a spline, its local rotation is set to zero, instead of its global rotation as it was the case
 +      * <span lo>(CHANGED)</span> Spline segments have now a maximal cache size of 1.000.000 points
 +      * <span lo>(FIXED)</span> Curvy Spline inspector showing a false warning about a spline not being restricted to a 2D plane
 +      * <span lo>(FIXED)</span> Sometimes splines refresh every frame even when there are no changes to process
 +      * <span lo>(FIXED)</span> "Set center/pivot point" tool in the toolbar does not update when a spline switches from being 3D to restricted to 2D
 +      * <span lo>(API/NEW)</span> Added CurvySpline.GetNearestPoint
 +      * <span lo>(API/NEW)</span> Added CurvyUtility.SplineToMesh
 +      * <span lo>(API/NEW)</span> Added CurvyUtility.GetNearestPointIndex
 +      * <span lo>(API/NEW)</span> CurvySpline.Clear has now an optional parameter to define if the spline clearing should be undoable in the editor or not
 +      * <span lo>(API/NEW)</span> Added new methods to get the spline's cached data. Those methods use pooled arrays: GetPositionsCache, GetTangentsCache and GetNormalsCache
 +      * <span lo>(API/CHANGED)</span> Start and OnEnable now invoke the OnRefresh event always if the spline has Control Points, and never if the spline is empty
 +      * <span lo>(API/CHANGED)</span> Refresh now invokes the OnRefresh event only if there were actual modifications processed by the Refresh method
 +    * Scene view UI
 +      * <span lo>(NEW)</span> Added an Orientation Anchors gizmo
 +      * <span lo>(NEW)</span> Added a Relative Distances gizmo
 +      * <span lo>(NEW)</span> Added a TF gizmo
 +      * <span lo>(NEW)</span> Draw Splines tool: Added a new drawing plane, the view plane
 +      * <span lo>(NEW)</span> Draw Splines tool: CTRL+clicking on the first Control Point of a spline closes it/opens it
 +      * <span lo>(CHANGED)</span> Connection gizmos are now a separate setting from the Curve gizmo. They can now be activated separately
 +      * <span lo>(CHANGED)</span> Control Points' Label gizmos are now displayed even when the CP is not selected
 +    * Shapes
 +      * <span lo>(CHANGED)</span> Pie's roundness is now by default 1 when shape is reset
 +      * <span lo>(FIXED)</span> Shapes are not refreshed when their component are reset via the inspector
 +      * <span lo>(FIXED)</span> Pie's normals are incorrect
 +      * <span lo>(FIXED)</span> Rectangle's normals are incorrect when increasing the cache density
 +      * <span lo>(FIXED)</span> Shapes not having the proper normals when setting planes other than the default one
 +    * Splines Import/Export window
 +      * <span lo>(NEW)</span> Added support for SVG import
 +      * <span lo>(CHANGED)</span> The local/global selector now applies also on the spline's coordinates, not only the Control Points'
 +      * <span lo>(CHANGED)</span> File selector now displays only the relevant file formats
 +      * <span lo>(FIXED)</span> Synchronize TCB is ignored when importing/exporting a spline
 +      * <span lo>(FIXED)</span> Error when exiting the file selector without choosing a file
 +      * <span lo>(API/NEW)</span> Exposed methods converting between splines and JSON in SplineJsonConverter
 +
 +  * Controllers
 +    * <span lo>(NEW)</span> Spline Controller: Added new type of events, "On Position Reached" events, allowing for events to be triggered at any position on the spline
 +    * <span lo>(CHANGED)</span> Position Mode's default value changed from Relative to Absolute
 +    * <span lo>(CHANGED)</span> When Move Mode is set to Absolute, Position slider is now greyed when no source for the controller is set
 +    * <span lo>(FIXED)</span> Errors when UITextSplineController has spaces in its input text
 +    * <span lo>(FIXED)</span> Spline Controller: Wrong documentation link for the Connections Handling section
 +    * <span lo>(FIXED)</span> Rarely, an exception is thrown when using a spline controller
 +    * <span lo>(FIXED/API)</span> SplineController.SwitchTo leads to errors when called with a duration value of 0
 +
 +  * Curvy Generator
 +    * General
 +      * <span lo>(NEW)</span> New module: Deform Mesh. Deforms a given mesh along a path
 +      * <span lo>(NEW)</span> New module: Input Transform Spots. Sets a spot that is tied with a Game Object's transform
 +      * <span lo>(NEW)</span> New module: GameObject To Mesh. Converts GameObjects to Volume Meshes
 +      * <span lo>(NEW)</span> Create GameObject module: Added a new setting: "Apply Layer On Children"
 +      * <span lo>(CHANGED)</span> Create Mesh module: a 32 bit index format is now used if the mesh has too many vertices, allowing to create meshes with more than 65535 vertices
 +      * <span lo>(CHANGED)</span> Create Mesh module: The default mesh collider's cooking options now includes Use Fast Midphase for the relevant Unity versions
 +      * <span lo>(CHANGED)</span> Create Mesh module: The AddNormals and AddTangents enums are replaced with boolean parameters
 +      * <span lo>(CHANGED)</span> Volume Mesh module: Removed Material ID from the UI since it was not used. The used material id is the material group's index (displayed as the tab's title)
 +      * <span lo>(CHANGED)</span> Input Spline Shape module: created shapes no more have their gizmos hidden by default
 +      * <span lo>(CHANGED)</span> Curvy Generators' instances now have incremental names
 +      * <span lo>(CHANGED)</span> Shape Extrusion Module: the following settings are not available anymore, and are assumed to be always true: Hard Edges, Materials and Extended UV
 +        * The reason behind this change is to lift the legitimate confusion some users had: until now, to use one of those settings in a shape extrusion, you had to both activate the setting in the module and activate the equivalent setting in the "Meta CG Options" meta data of the relevant Control Point. Now you only need to activate the setting in the meta data
 +      * <span lo>(OPTIM)</span> Create Mesh module: When creating multiple meshes with mesh colliders, the colliders are baked in parallel
 +        * Warning: as a limitation from Unity, the parallel baking will be ignored if you set the cooking options to any value different than the default value. For more details: https://forum.unity.com/threads/physics-bakemesh-question.741257/#post-4999400
 +      * <span lo>(FIXED)</span> The Auto Refresh feature stops working properly if you switch scenes without destroying the Curvy Generator
 +      * <span lo>(FIXED)</span> CG's ordering of its modules in the hierarchy sometimes is not consistent
 +      * <span lo>(FIXED)</span> Create Mesh module: When setting Combine to true, an exception is thrown when using spots with a mesh that has no materials
 +      * <span lo>(FIXED)</span> Create Mesh module: An exception is thrown when inputting a spot with an invalid index (referencing a non existing VMesh input)
 +      * <span lo>(FIXED)</span> Create Mesh module: when combining two meshes, one with tangent and one without, the Add Tangents parameter is ignored
 +      * <span lo>(FIXED)</span> Create Mesh module: when AddNormals and AddTangents are set to No, the normals and tangents are still included in mesh, and have invalid values
 +      * <span lo>(FIXED)</span> Create GameObject and Create Mesh modules: Resources counter and selector sometimes do not work properly
 +      * <span lo>(FIXED)</span> Volume Spots modules created via API can under some circumstances get their value reset
 +      * <span lo>(FIXED)</span> Volume Mesh module: Material settings are not undoable
 +      * <span lo>(FIXED)</span> In Play Mode, deleting the input splines of the Input Spline modules, if done through the module's UI, lead to incomplete deletion of said splines
 +      * <span lo>(FIXED)</span> Input Spline modules: Sometimes an error is logged when rasterizing a spline too densely
 +      * <span lo>(FIXED)</span> Input Spots module: trying to add an input after deleting all existing ones generates errors
 +      * <span lo>(FIXED)</span> Input Spots module: Errors when dragging a Game Object over the module
 +      * <span lo>(Fixed)</span> Input Game Objects: when an entry has no game object assigned, the module outputs a null game object instead of just ignoring it
 +      * <span lo>(FIXED)</span> Rasterize Path module: The Range and Length parameters behave as if an open spline is closed, and vice versa
 +        * To restore the previous behaviour if your project depends on it, set the Use Bugged Range setting to true
 +      * <span lo>(FIXED)</span> Shape Extrusion module sometimes extrudes a faulty mesh when it uses a different range than 0-1 and the associated Input Spline module uses a Start CP different than the first CP
 +      * <span lo>(FIXED)</span> Shape Extrusion module: When path range loops, and when using the Optimized setting, Advanced Scaling does not work on the path part that is beyond the looping point
 +      * <span lo>(FIXED)</span> Input Mesh module showing a mesh as having a UV2 channel when it hasn't
 +      * <span lo>(FIXED)</span> Variable Mix Shapes module sometimes not updating when the associated path changes slightly
 +      * <span lo>(FIXED)</span> TRS Path module: If applied on a closed path, any extruded mesh using said path is not aligned at its looping point
 +      * <span lo>(FIXED)</span> Editor lags when refreshing a generator in projects that have a lot of assets
 +      * <span lo>(FIXED)</span> Dropping a spline in the generator window sometimes does not create an input module
 +      * <span lo>(API/NEW)</span> Added CGVolume.Scales
 +      * <span lo>(API/NEW)</span> CGVMesh.GetSortedVertexIndices
 +      * <span lo>(API/CHANGED)</span> CGVMesh.ToMesh now has two optional parameters defining whether the normals and tangents should be copied or not
 +      * <span lo>(API/CHANGED)</span> Made mandatory the previously optional includeOnRequestProcessing parameter of the CurvyGenerator.GetModules methods. It being optional and having a default value set to false made it confusing for its users
 +      * <span lo>(API/CHANGED)</span> The BuildRasterizedPath.From setter now handles the edge value of 1 similarly to BuildShapeExtrusion.From
 +      * <span lo>(API/FIXED)</span> The following methods ignore the modules that implement the IOnRequestProcessing interface: CurvyGenerator.GetModuleOutputSlot(int, string) and CurvyGenerator.GetModuleOutputSlot(string, string)
 +      * <span lo>(API/FIXED)</span> Conform Path and Path Relative Translation modules: the output path's Length and F are not updated
 +      * <span lo>(API/FIXED)</span> The CGSpots(CGSpots source) constructor does not copy the source spots, but copies just the reference
 +      * <span lo>(API/FIXED)</span> Pushing then popping an instance of CGMeshResource in the same frame can lead to some of its components to be deleted
 +    * Exporting Game Objects/Meshes
 +      * <span lo>(NEW)</span> Added a Save Output To Scene button in the toolbar. This will copy to outside the generator all the generated meshes and game objects
 +      * <span lo>(NEW)</span> Added a Clear Outputs button in the toolbar. This will delete all the generated meshes and game objects in a single click
 +      * <span lo>(NEW)</span> Create GameObject module: Added a Save To Scene button
 +      * <span lo>(CHANGED)</span> Create GameObject and Create Mesh modules: Now exported game objects are always under a parent game object, even if there is only one exported game object
 +      * <span lo>(CHANGED)</span> Create GameObject and Create Mesh modules: When multiple objects are exported, their parent GameObject is now named "<module_name> Exported Resources" instead of "<module_name>"
 +    * Prefabs
 +      * <span lo>(CHANGED)</span> Prefabs: Better handling of forbidden prefab related operations
 +        * Some operations, like deleting a game object, are not allowed in a prefab instance due to Unity's New Prefab System. When Curvy Generator was asked to delete an object part of a prefab instance, it showed an error message in the console. Now, it will behave as follows:
 +          * - If the object to delete is automatically generated, like an output mesh, and thus can be regenerated by refreshing the Curvy Generator, any operation that leads to its automatic deletion will also delete it from the prefab asset
 +          * - For the other cases, like deleting a module from a graph window, a popup will ask the user to first delete the associated object from the prefab asset
 +      * <span lo>(FIXED)</span> Create GameObject module: Errors when using input GameObjects that are prefab assets
 +      * <span lo>(FIXED)</span> Create GameObject and Create Mesh modules: Objects are sometimes duplicated when exiting play mode if the module is part of a prefab
 +    * Graph View
 +      * <span lo>(NEW)</span> Support for the following hotkeys for modules manipulation:
 +        * Ctrl+D duplicate selected module
 +        * Ctrl+A select all modules
 +        * Ctrl+C copy selected module
 +        * Ctrl+X cut selected module (module is deleted when pasting the cut module)
 +        * Ctrl+V past module
 +      * <span lo>(NEW)</span> Support for drag and drop of Game Objects, shapes and meshes in the generator view
 +      * <span lo>(CHANGED)</span> Dropping a link on a module no more selects and focuses the view on said module
 +      * <span lo>(CHANGED)</span> Module focus is now on the top of the module instead of its bottom. This makes working with big modules, such as Volume Spots, easier
 +      * <span lo>(CHANGED)</span> A right click on a module now also selects it
 +      * <span lo>(CHANGED)</span> Dragging a module now selects it
 +      * <span lo>(FIXED)</span> CG's graph sometimes scrolls in weird directions when dragging a module
 +      * <span lo>(FIXED)</span> Couldn't deselect a selected module under some circumstances 
 +      * <span lo>(FIXED)</span> Couldn't do a rectangle drag under some circumstances
 +      * <span lo>(FIXED)</span> When clicking on a module's title to drag the module, sometimes a link is dragged instead
 +      * <span lo>(FIXED)</span> CG's graph keeps scrolling by itself
 +      * <span lo>(FIXED)</span> CG's graph's preview link keeps being displayed even after the user stopped dragging it
 +      * <span lo>(FIXED)</span> When a selected module is deleted from outside the generator, the latter keeps highlighting the module's contour as if still existing
 +      * <span lo>(FIXED)</span> Clicking on an empty space does not deselect the selected link
 +      * <span lo>(FIXED)</span> When a link is under a module, selecting the module can select the link, and sometimes delinking it
 +      * <span lo>(FIXED)</span> Scrolling bars glitch when trying to drag the view beyond the graph's borders
 +      * <span lo>(FIXED)</span> Selecting modules via selection rectangle does not select the module's Game Object
 +      * <span lo>(FIXED)</span> Finishing canvas dragging while the mouse is on a module selects the module
 +      * <span lo>(FIXED)</span> When deselecting a module by clicking on an empty spot on the graph, the deselection takes a delay to be applied if the mouse is not moving
 +      * <span lo>(FIXED)</span> Canvas drag stops when hitting any keyboard key
 +      * <span lo>(API/FIXED)</span> CanvasState.MouseOverLink is giving wrong results
 +    * UV and UV2
 +      * General
 +        * <span lo>(NEW)</span> Create Mesh module: When combining multiple Volume Meshes, you now have the option to recompute UV2 for the combined mesh. This can give better results than computing UV2 for each Volume Mesh individually. That option is called Unwrap UV2
 +        * <span lo>(NEW)</span> Volume Mesh module: Added a new setting, Unscale U, that allows for the U coordinates to be independent from the scaling
 +        * <span lo>(CHANGED)</span> Create Mesh module: Replaced "Add UV2" with Volume Mesh module's "Generate UV2". Now both UV and UV2 are generated by the Volume Mesh module
 +        * <span lo>(CHANGED)</span> Volume Mesh module: the Keep Aspect setting now has three possible values: Off, Scale U or Scale V
 +        * <span lo>(FIXED)</span> Volume Mesh module: UV2 calculation is wrong when using the Split setting
 +          * For backward compatibility reasons, the pre Curvy 8 behaviour is still available through the Split UV2 setting, in the Backward Compatibility section
 +        * <span lo>(FIXED)</span> Volume Mesh module: UV2 incorrectly computed when UV is swapped or negatively scaled
 +        * <span lo>(FIXED)</span> Volume Mesh module: Tangents are invalid when UVs are missing, swapped or scaled negatively
 +        * <span lo>(FIXED)</span> Spline To Mesh window: Wrong UV2 values
 +        * <span lo>(FIXED)</span> Build Volume Caps module: Wrong UV2 values
 +        * <span lo>(FIXED)</span> Volume Caps module: The Keep Aspect enum does not work properly
 +      * Meta CG Options
 +        * <span lo>(CHANGED)</span> Now shows only the settings that are relevant (that will be used in that specific context)
 +        * <span lo>(CHANGED)</span> "Explicit U" and "Set U from neighbours" are now possible for CPs with a change of Material ID
 +        * <span lo>(FIXED)</span> When there is a change of Material ID at a specific CP, its "UV Edge" is overridden to true
 +          * For those relaying on that old behaviour, you will have to set "UV Edge" to true for all the CPs with a change of Material ID. You can find a code snippet that does that here: https://forum.curvyeditor.com/thread-1294.html
 +        * <span lo>(FIXED)</span> On the first CP of an open spline, in some cases First U is ignored when setting Explicit U (second U is used instead)
 +        * <span lo>(FIXED)</span> On the first CP of an open spline, First U and second U can be displayed even if the CP is not a UV Edge or has Explicit U
 +        * <span lo>(FIXED)</span> Exception is sometimes thrown when last CP of a spline has an Explicit U value
 +        * <span lo>(FIXED)</span> ArgumentOutOfRangeException when computing UV under some circumstances
 +        * <span lo>(FIXED)</span> When setting two points CPs to the same explicit U, the second CP will have an invalid U value under some circumstances
 +        * <span lo>(FIXED)</span> When setting an explicit U value to any CP other than the last one of an open spline, the automatically generated U value of the last CP is wrong
 +        * <span lo>(FIXED)</span> Invalid UV coordinates in some cases when using two different materials on closed splines
 +        * <span lo>(FIXED)</span> Shape Extrusion module: UV coordinates of an extruded shape are wrong if you activate Hard Edges and Extended UV options while not providing any value for those options
 +        * <span lo>(API/CHANGED)</span> MetaCGOptions.HasDifferentMaterial does not create anymore a MetaCGOptions instance at the previous CP if such instance does not exist
 +    * Data disposal (API only)
 +      * In connection with the array pools addition explained earlier, instances of CGData and their inheriting classes need to be disposed. This allows for the arrays they use to be returned to the pools
 +        * <span lo>(API/NEW)</span> Added OutputSlotInfo.DisposableData: Whether the data outputted through this slot can be disposed when it is replaced by a newer outputted data
 +        * <span lo>(API/NEW)</span> Added an override for the GetData methods from the  CGModuleInputSlot. That override has an out boolean parameter, isDataDisposable. That parameter tell the data consumer if the data should be disposed after being used or not
 +
 +  * Preferences window
 +    * <span lo>(NEW)</span> New setting: Save Generator Outputs
 +    * <span lo>(NEW)</span> New setting: Show Hints
 +    * <span lo>(NEW)</span> New setting: Enable Announcements
 +    * <span lo>(NEW)</span> New setting: Enable Metrics
 +    * <span lo>(NEW)</span> New setting: Auto Fade Labels
 +    * <span lo>(CHANGED)</span> When resetting preferences, Use Tiny 2D Handles is now set to true
 +    * <span lo>(CHANGED)</span> Changed the default value of Spline Selection Color to a color that is more visible on dark backgrounds. To set back the previous color, please set the color's RGB 0-1 values to red:0.15, green:0.35 and blue:0.68
 +    * <span lo>(FIXED)</span> Resetting preferences does not reset the "Hide _CurvyGlobal_" and "Snap Value Precision" preferences
 +=====7.1.8=====
 +  * <span lo>(FIXED)</span> The URL of the Upgrade button is leading to an obsolete package
 +=====7.1.7=====
 +  * <span lo>(NEW)</span> Added an Upgrade to Curvy 8.0.0 button, which leads to https://assetstore.unity.com/packages/slug/212532
 +    * Make sure you are logged in the Asset Store when accessing that page
 +=====7.1.6=====
 +  * <span lo>(FIXED)</span> Curvy shows a compiler warning when used with Unity 2021.2
 +=====7.1.5=====
 +  * Curvy Generator
 +    * <span lo>(CHANGE)</span> Now the order of execution of CG modules is deterministic
 +    * <span lo>(FIXED)</span> CG's ordering of its modules in the hierarchy sometimes is not consistent
 +    * <span lo>(FIXED)</span> Input Mesh module showing a mesh as having a UV2 channel when it hasn't
 +  * Controllers
 +    * <span lo>(FIXED)</span> Errors when UITextSplineController has spaces in its input text
 +    * <span lo>(FIXED)</span> Wrong documentation link for the Connections Handling section in the Spline Controller's inspector
 +    * <span lo>(FIXED/API)</span> SplineController.SwitchTo leads to errors when called with a duration value of 0
 +  * Splines
 +    * <span lo>(FIXED)</span> Sometimes splines refresh every frame even when there are no changes to process
 +    * <span lo>(FIXED)</span> Inspector showing a warning when it shouldn't, about a spline not being restricted to a 2D plane
 +  * Others
 +    * <span lo>(FIXED)</span> Toolbar not displaying when setting the Unity Editor language to a language other than English
 +    * <span lo>(FIXED)</span> Text is truncated in some buttons
 +    * <span lo>(FIXED)</span> Rectangle's normals are incorrect when increasing the cache density
 +    * <span lo>(FIXED)</span> "Set center/pivot point" tool in the toolbar does not update when a spline switches from being a 3D to one restricted to 2D
 +=====7.1.4=====
 +  * Curvy Generator
 +    * <span lo>(CHANGE)</span> Spline Input modules: Now when the StartCP or EndCP is automatically set to null because its value is invalid, an error message is displayed in the console to notify the user about the value override and the reason behind it
 +    * <span lo>(OPTIM)</span> TRS modules and the Relative Translation module: less CPU consumption
 +    * <span lo>(FIXED)</span> Shape Extrusion and Path Rasterization modules: When the Range parameter loops, and if using the Optimized option, the Advanced Scaling does not work on the path's part that is beyond the looping point
 +    * <span lo>(FIXED)</span> TRS modules: Using a TRS module on a closed path makes the extruded mesh using it not align at its looping point
 +  * Shapes
 +    * <span lo>(FIXED)</span> Sometimes, after selecting a spline, the Shape creation and edition buttons need to be clicked twice to work 
 +    * <span lo>(FIXED)</span> The Shape Wizard's background is not drawn properly when the Curvy toolbar is placed at the bottom side or right side of the screen
 +    * <span lo>(FIXED)</span> Creating a Shape through the Shape Wizard when having another shape selected leads to creating an empty shape
 +    * <span lo>(API/CHANGE)</span> Made CurvyShape.Persistent obsolete
 +  * Others
 +    * <span lo>(NEW)</span> Added the Asteroid Belt Youtube tutorial scene as example scene 28
 +    * <span lo>(CHANGE)</span> Replaced example scene 24 with the Conform To Terrain Youtube tutorial scene
 +    * <span lo>(CHANGE)</span> Added a background to the Shift tool's UI for more visibility
 +    * <span lo>(CHANGE)</span> Replace a Connection Synchronization icon for the dark theme UI for more visibility
 +    * <span lo>(CHANGE)</span> Minor improvements in UI and documentation
 +    * <span lo>(FIXED)</span> A compiler warning appears when using Unity 2020.2 or above
 +      * Sorry about this one, the fix was accidentally not included in 7.1.3
 +=====7.1.3=====
 +  * <span lo>(FIXED)</span> Compiler warnings appear when using Unity 2020.2 or above
 +=====7.1.2=====
 +  * <span lo>(FIXED)</span> Curvy Generator: module's background does not have the right size on Unity 2019.3 and newer
 +=====7.1.1=====
 +  * <span lo>(FIXED)</span> Compiler error when using Unity 2019.1
 +=====7.1.0=====
 +  * Unity editor's Undo
 +    * <span lo>(CHANGE)</span> Made the Make Planar operation undoable
 +    * <span lo>(CHANGE)</span> Made the Connection inspector's operations undoable
 +    * <span lo>(FIXED)</span> Undoing Bézier handles modification does not reflect on connected control points when Bézier handles are set to be synchronized
 +    * <span lo>(FIXED)</span> Undoing the creation of control points via the "Add & Smart Connect" tool (CTRL + right click when creating splines) sometimes is not done properly or even leads to errors
 +    * <span lo>(FIXED)</span> Undoing the removal of a connected control point does not restore the connection
 +    * <span lo>(FIXED)</span> Undoing the removal of a connected control point stops its spline from refreshing when said control point is moved
 +    * <span lo>(FIXED)</span> When undoing shape modifications done via the shape wizard, the shape can become weird looking
 +    * <span lo>(FIXED)</span> Deleting a Control Point, if undone, will restore the CP at the wrong position in the spline's hierarchy
 +    * <span lo>(API/NEW)</span> Added CurvySpline.Delete(CurvySplineSegment controlPoint, bool skipRefreshingAndEvents, bool isUndoableDelete)
 +  * Connections
 +    * <span lo>(CHANGE)</span> "Add and smart connect" tool: Now all the added CPs have their heading set to automatic
 +    * <span lo>(FIXED)</span> "Add and smart connect" tool: Adding a CP to an existing connection, having some CPs synchronized and others not, can lead to all the connection's CPs to synchronize their transform
 +    * <span lo>(FIXED)</span> A console error is displayed when the Simplify tool removes a connected control point
 +    * <span lo>(FIXED)</span> When rotating a Bézier spline's control point while holding the Shift button, the rotated handles synchronize with the connected control points even if the handles synchronization option is not activated
 +    * <span lo>(FIXED)</span> In some situations, Follow-Up's value is not taken into consideration if the connection's inspector is not displayed
 +    * <span lo>(FIXED)</span> Follow-Up: Automatic heading direction is sometimes not resolved properly.
 +      * The "Automatic" heading direction will now be resolved to "To spline's end" instead of "Nowhere" when no obvious value is found. It gives better result most of the time
 +    * <span lo>(FIXED)</span> Duplicating a connected spline will create a spline that seems connected while it isn't
 +    * <span lo>(API/NEW)</span> Added CurvyConnection.Disconnect(bool destroyEmptyConnection)
 +    * <span lo>(API/NEW)</span> Added CurvySplineSegment's CanFollowUpHeadToEnd and CanFollowUpHeadToStart
 +    * <span lo>(API/CHANGE)</span> Made CurvyConnection.ResetConnectionRelatedData obsolete
 +    * <span lo>(API/FIXED)</span> CurvyConnection.RemoveControlPoint does not unset the removed CP as a Follow-Up for the still connected CPs
 +  * Others
 +    * <span lo>(NEW)</span> Added a button in the about window to display the publisher's page on the asset store
 +    * <span lo>(NEW)</span> The following metrics are now send to Curvy's server at each import of a new Curvy version: Curvy version, Unity version, Scripting version.
 +      * The collected metrics will help making decisions when it comes to maintaining Curvy's old code, and using Unity's version specific features. The send data is anonymous
 +    * <span lo>(CHANGE)</span> Made the "Generate Assembly Definition" button's icon compatible with the dark ("Professional") editor theme
 +    * <span lo>(FIXED)</span> Wrong UV2 calculation when UV scale is in between 0 and 1
 +    * <span lo>(FIXED)</span> When Restrict To 2D is true, and the spline is not planar, the Make Planar button is sometimes not displayed
 +    * <span lo>(FIXED)</span> Errors when the project uses the Code Analysis package
 +    * <span lo>(FIXED)</span> Runtime instantiated controller throws null reference exceptions when one of its events is called
 +    * <span lo>(FIXED)</span> Error messages sometimes showing in the example scenes using trains
 +    * <span lo>(FIXED)</span> When resolution is too low, mesh extrusion sometimes creates an unnecessary point at the end of a spline when rasterizing it
 +    * <span lo>(API/CHANGE)</span> CurvyMetadataBase class now requires a CurvySplineSegment component, to avoid misuse
 +    * <span lo>(API/CHANGE)</span> CurvySpline: Equalize, MakePlanar and Normalize now Refresh the spline after modifying it. This is done to harmonize the behaviour with other similar methods
 +    * <span lo>(API/FIXED)</span> CurvySpline.ToLocalDirection does not return the expected result
 +    * <span lo>(API/FIXED)</span> CurvySpline.IsControlPointASegment returns true for all PCs of a closed spline, even if said spline has only one CP
 +    * <span lo>(API/FIXED)</span> CurvySpline's GetNextControlPointIndex and GetPreviousControlPointIndex returning 0 instead of -1 when called on a CP that is the only CP of a closed spline
 +      * This bug lead to erroneous values for the following properties: FirstVisibleControlPoint, FirstSegment, LastVisibleControlPoint and LastSegment
 +=====7.0.0=====
 +  * <span lo>(FIXED)</span> Added CPs through the Add & Smart Connect tool are not all undoable
 +  * <span lo>(FIXED)</span> Creating a CP through the Add & Smart Connect tool sometimes leads to a misplaced CP
 +  * <span lo>(API/CHANGE)</span> Removed obsolete methods
 +  * <span lo>(API/CHANGE)</span> Added a space parameter to define in which space a vector is (local or global) for all CurvySpline's and CurvySplineSegment's methods that have a vector as an input or output
 +=====6.4.1=====
 +  * <span lo>(FIXED)</span> The Spot GameObjects template sets Items # to an invalid value of -1
 +=====6.4.0=====
 +  * Curvy Generator
 +    * Volume Spots
 +      * <span lo>(NEW)</span> You can now set the scale of the spots
 +      * <span lo>(NEW)</span> You can now set the translation in all directions, and in either the relative or absolute frame
 +      * <span lo>(CHANGED)</span> Modified the module's inspector to make it easier to use and understand. Some parameters changed name in the process
 +      * <span lo>(CHANGED)</span> Use Volume is now set to true by default
 +      * <span lo>(CHANGED)</span> Use Volume is no more automatically set to false when input is not a volume (in which case its value is ignored) or the module is reset
 +      * <span lo>(FIXED)</span> When using Rotation Scatter, the rotation value changes depending on whether Height is set to a fixed value or a random value
 +      * <span lo>(FIXED)</span> Rotation Scatter is not applied on all objects
 +      * <span lo>(FIXED)</span> Changing the Seed parameter has no effect on the randomly generated values
 +      * <span lo>(NEW)</span> Added a Use Bugged RNG option in the General tab. Use it to ignore the fixes listed above if your project depends on the bugged behaviour
 +      * <span lo>(FIXED)</span> When Space Before or Space After has a too small negative values (i.e too big absolute value), Unity freezes
 +      * <span lo>(FIXED)</span> Setting the Space Before, Space After, or Position Offset as random values will modify the randomly generated rotations and height
 +      * <span lo>(FIXED)</span> A group's Space Before and Space After are considered even if the group is not placed because of Keep Together
 +      * <span lo>(FIXED)</span> When a repeating group with Keep Together set to true is not placed because of a lack of space, the following group is positioned as if the first group was placed
 +      * <span lo>(FIXED)</span> When a group has Keep Together set to false, and there is no room to fit all group's items, the placed items are out of order
 +      * <span lo>(FIXED)</span> When a group, that is not part of the repeatable groups, has items that are not randomly selected, those items are placed at the wrong position
 +      * <span lo>(Fixed)</span> When in a group some items are randomly selected, some items are placed too far from where they should be
 +      * <span lo>(FIXED)</span> Console shows errors when a Volume Spots has no group in it      
 +    * Shape Extrusion
 +      * <span lo>(FIXED)</span> Invalid mesh produced if resolution is too low
 +    * Create Mesh
 +      * <span lo>(NEW)</span> Added Capsule as an option for collider types
 +      * <span lo>(NEW)</span> Exposed Rigidbody.IsTrigger
 +      * <span lo>(FIX)</span> Save to scene creates object at the wrong position when generator is not a position (0,0,0)
 +    * Others
 +      * <span lo>(CHANGE)</span> UI tweaks in Volume Spots, Shape Extrusion, Input GameObjects and Input Mesh modules
 +      * <span lo>(CHANGE)</span> Updated the built-in templates:
 +        * Shape Extrusion now have an input spline already assigned
 +        * Spot Templates now have an input volume already linked, and Use Volume set to true
 +      * <span lo>(API/FIX)</span> CGModuleInputSlot.LinkTo allows to link multiple outputs to the same input even if said input accepts only one link
 +  * Curvy Spline    
 +    * <span lo>(OPTIM)</span> Splines take less CPU time in their per frame checks
 +    * <span lo>(OPTIM)</span> Spline's interpolation and update were further optimized. This will impact most spline's operations
 +    * <span lo>(FIXED)</span> Computation of TCB and CatmullRom splines when having a follow up was wrong
 +    * <span lo>(FIXED)</span> In some rare cases, the gizmo is displayed one frame late
 +      * A consequence of this fix is that the OnDrawGizmosSelected and OnDrawGizmos methods can call the spline's Refresh method. Keep this in mind when profiling
 +    * <span lo>(API/NEW)</span> Added GetFollowUpHeadingControlPoint
 +    * <span lo>(API/CHANGE)</span> Calling SetFollowUp with an invalid parameter will now show an error message
 +    * <span lo>(API/CHANGE)</span> CalculateSamplingPointsPerUnit now always return non zero values
 +  * Others
 +    * <span lo>(NEW)</span> Added a Generate Assembly Definitions button in the toolbar, under Curvy Options
 +      * This solution replaces the previously included *.asmdef.disabled files.
 +    * <span lo>(NEW)</span> Added a Review button and a Custom Development button to the About window
 +    * <span lo>(CHANGE)</span> Curvy Line Renderer: Added warning when Spline is not assigned
 +    * <span lo>(CHANGE)</span> Removed from the components list the ones that are not meant to be instantiated directly
 +    * <span lo>(FIXED)</span> Some component's help button do not lead to a valid documentation page
 +    * <span lo>(API/CHANGE)</span> CurvyConnection.AddControlPoints now shows an error message when it ignores a Control Point that has already a connection
 +    * <span lo>(API/CHANGE)</span> Set components that are never directly instantiated by Curvy as abstract classes
 +    * <span lo>(API/CHANGE)</span> Calling a teleport method on a stopped controller displays an error message
 +=====6.3.1=====
 +  * <span lo>(FIXED)</span> Compilation failure when using the provided asmdef files
 +=====6.3.0=====
 +  * Controllers
 +    * <span lo>(OPTIM)</span> Optimized Spline Controller
 +    * <span lo>(FIXED)</span> Path and Volume controllers are stuck at spline's end when using PingPong clamping while Move Mode is set to Relative
 +    * <span lo>(FIXED)</span> Controller can't be positioned at the end of an open spline when Clamping is equal to Loop
 +    * <span lo>(FIXED)</span> In some situations, controllers get stuck at Control Points
 +  * Others
 +    * <span lo>(OPTIM)</span> Optimized some low level Curvy Spline methods
 +    * <span lo>(CHANGE)</span> Inspector of the Curvy Spline Segment now shows the TF too
 +    * <span lo>(CHANGE)</span> Reduced size of example assets, and tweaked some example scenes
 +    * <span lo>(API/NEW)</span> New overrides of TfToSegment and DistanceToSegment
 +=====6.2.0=====
 +  * Curvy Generator
 +    * <span lo>(FIXED)</span> CreateGameObject: When entering play mode, The GameObject's scale seems to be multiplied by the scale value twice
 +    * <span lo>(FIXED)</span> BuildVolumeSpots: The rotation of the input GameObject influences the number and positions of the spots when it shouldn't
 +    * <span lo>(FIXED)</span> Mesh error when using a RoundedShape in an extrusion with a Roundness of 0
 +    * <span lo>(FIXED)</span> Error messages about dirty modules displayed when it should not
 +    * <span lo>(FIXED)</span> Errors when creating a generator in an unsaved scene and then creating a new scene
 +      * A consequence of this fix is that a Curvy Generator component will move up in the list of its related gameobject's components
 +    * <span lo>(FIXED/CHANGED)</span> Various UI fixes and tweaks, most of them for all Unity versions, few of them exclusive to the new Unity's UI (2019.3 and above)
 +  * Others
 +    * <span lo>(OPTIM)</span> Various optimizations having impact on the following:
 +      * Spline gizmo display
 +      * Spline Controller
 +      * Spline update and data fetch
 +      * The Create GameObject CG module
 +    * <span lo>(FIXED)</span> By default, the update method of scripts is called less frequently in Edit Mode. Having a Controller or a Curvy Generator in a scene and VSync enabled on 2017.2 and beyond stops that behaviour, which increases power consumption
 +      * For people wanting to keep the previous behaviour, a "Force Frequent Updates" toggle was added in the "Advanced Settings" of those two scripts
 +    * <span lo>(FIXED)</span> If a connected spline is disabled, and if the user switches scene ingame, the connection object throws an error
 +    * <span lo>(API)</span> Marked some Curvy Spline methods as obsolete
 +=====6.1.0=====
 +  * Curvy Generator
 +    * <span lo>(FIXED)</span> Generators break when having other generators as children
 +    * <span lo>(FIXED)</span> The Auto Refresh parameters where ignored when modifying an input spline that is not a child of an input module.
 +    * <span lo>(FIXED)</span> Volume Caps module: end cap not using the right volume scaling
 +  * Others
 +    * <span lo>(FIXED)</span> Controllers: Offset feature still applies even when it should not i.e. when the Orientation mode is set to None.
 +    * <span lo>(FIXED)</span> The UI is broken in some places when using new UI system introduced by Unity 2019.3
 +    * <span lo>(FIXED)</span> When using Unity 2019.3, you can't assign a dynamic event handler to events inherited from parent class
 +    * <span lo>(FIXED)</span> When using Unity 2019.3, warnings are displayed when opening some example scenes
 +    * <span lo>(FIXED)</span> In rare cases, singletons can be duplicated
 +    * <span lo>(API/CHANGE)</span> Controllers have now some previously private members exposed to inheriting classes. This is to make it easier to make custom controllers.
 +=====6.0.1=====
 +    * <span lo>(OPTIM)</span> Reduced cost of drawing a spline's gizmos
 +    * <span lo>(FIXED)</span> The Create GameObject CG module, when instantiating a prefab, breaks the link between the instantiated objects and their prefab
 +=====6.0.0=====
 +  * Curvy Generator
 +    * <span lo>(NEW)</span> Variable Mix Shapes module: Interpolates between two shapes in a way that varies along the shape extrusion. This module is used in the example scene 27.
 +    * <span lo>(OPTIM)</span> Modules that are out of the view are now culled
 +    * <span lo>(OPTIM)</span> Optimized shapes interpolation
 +    * <span lo>(CHANGE)</span> Shape Extrusion module: The shape used in the extrusion can now vary along the extrusion. To do so, you should link as a shape input a module that provides a varying shape. This is the case of the Variable Mix Shapes module.
 +    * <span lo>(CHANGE)</span> Made TRS modules larger to show more digits
 +    * <span lo>(CHANGE)</span> Better error messages when something goes wrong with resources creation
 +    * <span lo>(FIXED)</span> Mix Shapes module: Normals interpolation in not correctly computed
 +    * <span lo>(FIXED)</span> Null reference exceptions happen when having as inputs splines with no Control Points
 +    * <span lo>(FIXED)</span> Mix Shapes and Mix Paths modules: The mixing slider did not considered the mixed paths/shapes in the same order consistently. The order was sometimes inverted depending on the complexity of said paths/shapes
 +    * <span lo>(FIXED)</span> When a scene has input spline path or input spline shape module, renaming objects from the hierarchy or though the F2 shortcut does not work
 +    * <span lo>(FIXED)</span> Null references when feeding the output path of BuildRasterizedPath or the output volume of BuildShapeExtrusion to the input of a module that takes a CGPath as an input
 +    * <span lo>(FIXED)</span> Volume Spots module: Null reference exception when using random distribution on items all of them of weight 0
 +    * <span lo>(FIXED)</span> Create Mesh module: Null reference exception when unloading a scene having a Create Mesh module which mesh was removed by hand through the inspector
 +    * <span lo>(API/NEW)</span> New types used by shape extrusions with variable shapes: CGDataRequestShapeRasterization, ShapeOutputSlotInfo and SlotInfo.SlotArrayType
 +    * <span lo>(API/CHANGE)</span> ModifierMixShapes.InterpolateShape has now an optional ignoreWarnings parameter
 +  * Control Point's Metadata
 +    * <span lo>(CHANGE)</span> Displays warnings when a Control Point has multiple instances of the same Metadata type
 +    * <span lo>(FIXED)</span> MetaData gets duplicated
 +    * <span lo>(API/CHANGE)</span> Started refactoring Metadata API. Obsolete MetaData API will be removed in version 7.0.0. More details here: https://forum.curvyeditor.com/thread-706.html
 +  * Others
 +    * <span lo>(OPTIM)</span> Various minor optimizations
 +    * <span lo>(CHANGE)</span> Corrected scene 24's name
 +    * <span lo>(FIXED)</span> CurvyUISpline's documentation link leads to the wrong page
 +    * <span lo>(FIXED)</span> UITextSplineController have wrong position when its canvas is scaled
 +    * <span lo>(FIXED)</span> CurvyLineRenderer not updating when attached to an object that is not a CurvSpline
 +    * <span lo>(FIXED)</span> CurvyLineRenderer not updating when a spline moves
 +    * <span lo>(FIXED)</span> The View Examples button in the About Curvy Window does not find the example scenes
 +    * <span lo>(FIXED)</span> Shapes resetting themselves (and loosing all modifications done outside the Shapes menu) when Curvy reload its assemblies
 +    * <span lo>(API/NEW)</span> Added an InterpolateAndGetTangentFast method to CurvySpline and CurvySplineSegment
 +    * <span lo>(API/CHANGE)</span> Removed various obsolete members
 +=====5.2.2=====
 +  * <span lo>(FIXED)</span> Curvy Generator: In some cases when using multiple material groups, properties of some material groups get overridden by the properties of other material groups
 +  * <span lo>(FIXED)</span> In some complex Curvy Generators, some modules don't get updated when needed
 +  * <span lo>(FIXED)</span> Normal computation is wrong in TRSShape
 +  * <span lo>(API/NEW)</span> Added method SamplePointsMaterialGroup.Clone()
 +=====5.2.1=====
 +  * <span lo>(FIXED)</span> Build error when using Unity 2019
 +=====5.2.0=====
 +  * Curvy Generator
 +    * <span lo>(NEW)</span> Added a new module: Debug Rasterized Path
 +    * <span lo>(NEW)</span> Input Spline Path and Input Shape Path modules: Added a "Use Global Space" option
 +    * <span lo>(CHANGE)</span> CG module's reset now resets the listeners too
 +    * <span lo>(CHANGE)</span> Modified the error message shown when failing to destroy a resource that is part of a prefab to make it more helpful
 +    * <span lo>(CHANGE)</span> Debug modules now show a warning if the generator's debug mode is not active
 +    * <span lo>(CHANGE)</span> DebugVolume now displays the path's normals too
 +    * <span lo>(OPTIM)</span> Optimized the CG resources creation and destruction process
 +    * <span lo>(FIXED)</span> In edit mode, automatic refresh is not respecting the set "Refresh Delay Editor" value
 +    * <span lo>(FIXED)</span> Resetting some CG modules does not reset all their properties
 +    * <span lo>(FIXED)</span> Newly created Templates not showing on the templates list until you close and reopen the CG window
 +    * <span lo>(FIXED)</span> Reordering CG modules in Play mode displays an error
 +    * <span lo>(FIXED)</span> TRS Mesh module not applying the TRS matrix as it should
 +    * <span lo>(FIXED)</span> Operations on meshes' transforms do not update the meshes' normals and tangents correctly
 +    * <span lo>(FIXED)</span> Shape Extrusion module: The Cross's "Shift" option doesn't work properly when its value is set to "By Orientation"
 +    * Create Mesh CG module
 +      * <span lo>(FIXED)</span> Exported meshes (to asset files) keep being updated even after the export operation
 +      * <span lo>(FIXED)</span> Removing an exported mesh removes the mesh from the Curvy generator too
 +  * Example scene 51_InfiniteTrack
 +    * <span lo>(FIXED)</span> The generated track has discontinuities between its sections
 +    * <span lo>(FIXED)</span> The track is material rendered weirdly
 +  * Others
 +    * <span lo>(NEW)</span> Added an example scene to showcase the usage of the Conform Path CG module
 +    * <span lo>(API/NEW)</span> Added a OnGlobalCoordinatesChanged delegate to CurvySpline
 +=====5.1.1=====
 +  * <span lo>(FIXED)</span> Projects don't build when using Unity 2017.2 or newer
 +=====5.1.0=====
 +  * Curvy Connection
 +    * <span lo>(CHANGE)</span> Reworked the inspector
 +    * <span lo>(CHANGE)</span> Gizmo labels now have the same color than the icon
 +    * <span lo>(FIXED)</span> Inspector is not displayed inside the Curvy Spline Segment inspector when deleting then re-adding a connection
 +    * <span lo>(FIXED)</span> When having some of the control points synchronized, and some not, moving a not synchronized control point make the synchronized ones move too.
 +    * <span lo>(FIXED)</span> When using Synchronization presets, the synchronized position/rotation is not the one of the connection's game object as it should be, but one of the synchronized control points
 +    * <span lo>(FIXED)</span> Gizmo labels are not drawn at the right position under some circumstances
 +    * <span lo>(FIXED)</span> Updating the synchronization options from the inspector don't apply them right away, but until one of the synchronized transforms is modified
 +    * <span lo>(FIXED)</span> Synchronization options not working properly when moving multiple connected control points at once
 +    * <span lo>(FIXED)</span> Gizmos are sometime drawn using the wrong color
 +  * Curvy Generator
 +    * <span lo>(OPTIM)</span> Various optimizations related to Shape Extrusion and Input Spline modules
 +    * <span lo>(API/FIXED)</span> CGShape.Bounds is not filled by SplineInputModuleBase when rasterization mode is equal to GDataRequestRasterization.ModeEnum.Even
 +    * <span lo>(API/CHANGE)</span> Made CGShape.Bounds obsolete
 +    * <span lo>(FIXED)</span> Shape Extrusion CG module: when Optimize is true, in certain conditions the following computations give wrong results:
 +      - advanced scaling
 +      - volume splitting
 +      - UV coordinates
 +  * Controllers
 +    * <span lo>(CHANGE)</span> "Update In" is now taken into consideration even when in Edit Mode. Note: Since in Edit Mode there no fixed updates, setting "Update In" to "Fixed Update" will be equivalent to setting it to "Late Update" while in Edit Mode
 +    * <span lo>(FIXED)</span> Controllers not updating frequently enough while in Edit Mode.
 +  * Others
 +    * <span lo>(FIXED)</span> When using Unity 2018.3, opening Curvy preferences from the toolbar does not work
 +    * <span lo>(CHANGE)</span> Made Curvy Global Manager execute before anything Curvy
 +    * <span lo>(FIXED)</span> You can end up with multiple Curvy Global Managers when opening multiple scenes at once
 +=====5.0.0=====
 +  * Import/Export splines:
 +    * <span lo>(FIXED)</span> Deserializing JSON files with missing fields do not assign the correct default values
 +    * <span lo>(FIXED)</span> An error is logged when closing the file selection window without selecting a file
 +  * Curvy Preferences window:
 +    * <span lo>(FIXED)</span> The "Reset to defaults" button int the does not reset all the preferences
 +    * <span lo>(FIXED] A warning appears when building Curvy asking to use Unity's new [SettingsProvider)</span> attribute
 +  * Curvy Generator:
 +    * <span lo>(NEW)</span> Added new CG module PathRelativeTranslation. It translates a Path relatively to it's direction, instead of relatively to the world as does the TRS Path module
 +    * <span lo>(CHANGE] Volume Spots CG module: Extended the valid range of Position Offset's values to [-1,1)</span>. Now all the volume can be covered
 +    * <span lo>(CHANGE)</span> The "Delete Resource" button now results in an undoable action. The confirmation message was updated to reflect this change.
 +    * <span lo>(FIXED)</span> Volume Spots CG module: crash when bounds are too small
 +    * <span lo>(FIXED)</span> Shape Extrusion CG module: resetting the module do not reset its scaling multiplier curves
 +    * <span lo>(FIXED)</span> TRS Path not transforming the Normals correctly
 +    * <span lo>(FIXED)</span> When using Unity 2018.3, showing debug information of a CG module stopped it from drawing
 +    * <span lo>(FIXED)</span> When using Unity 2018.3, error messages are logged when unloading scenes containing "Input Spline Path" or "Input Spline Shape" CG modules
 +    * <span lo>(API/NEW)</span> Shape Extrusion CG module: Exposed the scale multiplier curves
 +    * <span lo>(API/CHANGE)</span> Removed obsolete CGData.TimeStamp
 +    * <span lo>(API/CHANGE)</span> CGSplineResourceLoader.Destroy and CGShapeResourceLoader.Destroy do not register undoing actions anymore. This is to be coherent with other classes implementing ICGResourceLoader
 +  * Controllers:
 +    * <span lo>(NEW)</span> When setting "Orientation Mode" to None, the new "Lock Rotation" option allows you to enforce the rotation to stay the same. It is active by default, to keep the same behaviour than previous versions
 +    * <span lo>(CHANGE)</span> Spline controller: Added better error messages, especially when dealing with splines having segments of length 0
 +  * Others:
 +    * <span lo>(OPTIM)</span> Various minor optimizations, mostly in Curvy Generator
 +=====4.1.1=====
 +  * <span lo>(FIXED)</span> Subdivision of a Bézier spline does not update the Bézier handles to keep the original spline's shape
 +  * <span lo>(FIXED)</span> In Unity 2018.3, Curvy Generators that are an instance of a prefab don't show properly in the inspector
 +=====4.1.0=====
 +  * UI Text Spline Controller
 +    * <span lo>(NEW)</span> Added a new property, named "Static Orientation", to make the text keep it's orientation regardless of the spline it follows
 +    * <span lo>(FIXED)</span> Inspector displays unused properties
 +  * Curvy Generator
 +    * <span lo>(NEW)</span> Create Mesh CG module: Exposed GameObject.tag in the "General" tab
 +    * <span lo>(NEW)</span> Create Mesh CG module: Exposed MeshCollider.cookingOptions in the "Collider" tab
 +    * <span lo>(CHANGE)</span> A slightly better modules reordering algorithm
 +    * <span lo>(FIXED)</span> Saving a scene just after reordering modules does not save the modules positions
 +  * Others:
 +    * <span lo>(OPTIM)</span> Some splines related operations are faster thanks to C# 7.2, available when using Unity 2018.3 or above with .Net 4.x scripting runtime
 +    * <span lo>(FIXED)</span> Incompatibility issues with Unity 2018.3 beta
 +=====4.0.1=====
 +    * <span lo>(FIXED)</span> UI icons not showing in projects using .Net 3.5
 +=====4.0.0=====
 +  * Create Mesh CG module
 +    * <span lo>(CHANGE)</span> Combining meshes now always produce continuous meshes
 +    * <span lo>(CHANGE)</span> Enhanced the warnings when combining big meshes
 +    * <span lo>(OPTIM)</span> Memory and CPU savings, especially when combining (merging) meshes and/or generating a Mesh Collider
 +    * <span lo>(FIXED)</span> Null reference exception when combining big meshes
 +  * Volume Spots CG module
 +    * <span lo>(NEW)</span> Added warnings when the module is misconfigured
 +    * <span lo>(CHANGE)</span> The Use Volume option is now hidden when irrelevant
 +    * <span lo>(CHANGE)</span> The first available item is always added when creating groups
 +    * <span lo>(CHANGE)</span> When using objects with no bounds (like point lights), the module will assume a depth of 1 Unity unit for those objects
 +    * <span lo>(FIXED)</span> Various bugs and crashes happening in some situations where the module has null or empty input bounds and/or groups
 +    * <span lo>(FIXED)</span> Invalid spots computation when using objects with no bounds (like point lights) mixed with objects with bounds
 +    * <span lo>(FIXED)</span> Object's bounds computation sometimes not considering the colliders
 +  * Others:
 +    * <span lo>(FIXED)</span> Normalize tool failed to normalize properly some Bezier splines
 +    * <span lo>(FIXED)</span> Curvy Line Renderer not working properly when attached to an object that is not a spline
 +    * <span lo>(FIXED)</span> Removed obsolete warnings when compiling Curvy
 +    * <span lo>(API/CHANGE)</span> Made CGData.Timestamp obsolete
 +    * <span lo>(API/CHANGE)</span> Removed the deprecated method VolumeController.ConvertObsoleteCrossPosition
 +    * <span lo>(API/FIXED)</span> CGBounds copy constructor do not copy the source name
 +=====3.0.0=====
 +  * Curvy Generator:
 +    * <span lo>(NEW)</span> Added a  Reorder Modules" in the Curvy Generator toolbar. This will automatically sort the position of modules to make the graph easily readable
 +    * <span lo>(CHANGE)</span> Mix Shapes and Mix Paths CG modules show warning when mixing inputs with incompatible unmixable properties
 +    * <span lo>(FIXED)</span> Error when validating Input Spline Path or Input Spline Shape CG modules when they have a null source
 +    * <span lo>(FIXED)</span> UI warnings in some CG modules are never cleared, even when the reason for the warning is fixed
 +    * <span lo>(FIXED)</span> Mix Shapes CG module not working for shapes of different points counts
 +    * <span lo>(FIXED)</span> Mix Shapes and Mix Paths CG modules giving wrong normals, directions, length, F array and bounds
 +    * <span lo>(FIXED)</span> Create Mesh CG module can't generate a flat mesh collider
 +    * <span lo>(API/FIXED)</span> Mix Shapes and Mix Paths CG modules produce CGShape and CGPath objects with most field set to default value
 +    * <span lo>(API/FIXED)</span> CGShape and CGPath interpolation methods sometime returns non normalized vectors
 +  
 +  * Others:
 +      * <span lo>(CHANGE)</span> Removed features previously marked as deprecated
 +      * <span lo>(OPTIM)</span> Dynamic orientation computation optimized. Up to 20% performance increase
 +      * <span lo>(FIXED)</span> For splines long enough with control points close enough, a Spline Controller could fail to handle connections and/or send events for some control points
 +      * <span lo>(FIXED)</span> Control Points created using pooling get potentially a different orientation from ones created without pooling
 +      * <span lo>(FIXED)</span> Compiling Curvy shows a compilation warning
 +      * <span lo>(API/CHANGE)</span> Corrected the typo in CurvySpline.GetSegementIndex method
 +      * <span lo>(API/CHANGE)</span> Removed deprecated API members
 +      * <span lo>(API/CHANGE)</span> Merged CurvySplineBase with CurvySpline
 +=====2.3.0=====
 +  * Controllers:
 +    * All controllers:
 +      * <span lo>(NEW)</span> Added an OnInitialized Unity event
 +      * <span lo>(NEW)</span> Controller's position can now be animated via Unity's Animation window, or any other animation tool
 +      * <span lo>(DEPRECATED)</span> The "Animate" option is removed. Use Unity's Animation window or any other animation tool instead
 +      * <span lo>(DEPRECATED)</span> "Adapt On Change" is removed, but it's behaviour is still there. Controllers will now always "adapt" (keeping their relative or absolute position, depending on the Position Mode value) when there source changes.
 +      * <span lo>(DEPRECATED)</span> The Space parameter is no more used. The controller now works correctly without the need to set the correct Space value.
 +      * <span lo>(CHANGE)</span> Direction is no more set from the sign of the Speed, but through a new value, Direction
 +      * <span lo>(CHANGE)</span> When orientation's source has a value of "None", any rotation previously applied by the controller will be reverted
 +      * <span lo>(CHANGE)</span> When orientation's source has a value of "None", Target and Ignore Direction are no more displayed in the inspector
 +      * <span lo>(CHANGE)</span> When OrientationMode is set to None, controller now uses the object's rotation on initialization instead of keeping the last assigned rotation
 +      * <span lo>(FIXED)</span> Wrong controller orientation when Target has a value of Backward
 +      * <span lo>(FIXED)</span> When orientation's source has a value of "Tangent", the orientation of the spline is ignored
 +      * <span lo>(FIXED)</span> Position is using Move Mode instead of Position Mode
 +      * <span lo>(FIXED)</span> Wrong controller's position for 0 length splines
 +      * <span lo>(FIXED)</span> Damping causes infinite rotations when the controller is parented to a rotated object, and has "Self" as a Space value
 +      * <span lo>(FIXED)</span> Very high values of OffsetRadius sometimes lead to the controller stopping
 +      * <span lo>(FIXED)</span> Offset compensation is always a frame late
 +      * <span lo>(FIXED)</span> Offset compensation is is computed based on world speed even when move mode is set to "Relative"
 +      * <span lo>(FIXED)</span> When OrientationMode is set to "None", the controller in some cases compensates the offset even when no offset is applied
 +      * <span lo>(API/NEW)</span> TeleportBy and TeleportTo methods
 +      * <span lo>(API/CHANGE)</span> Stop method now always rewinds the controller to its position it had when starting playing
 +      * <span lo>(API/CHANGE)</span> Some properties are no more virtual
 +      * <span lo>(API/CHANGE)</span> Moved all controllers related code inside the FluffyUnderware.Curvy.Controllers namespace
 +      * <span lo>(API/FIXED)</span> UserAfterUpdate not being called like its documentation states
 +      * <span lo>(API/FIXED)</span> Wrap method does not take Offset into consideration
 +      * <span lo>(API/FIXED)</span> Apply method does not take Offset into consideration
 +    * Spline Controller:
 +      * <span lo>(NEW)</span> Added options in the inspector to define the controller's behaviour when reaching a Connection: continue on the current spline, use the follow up, ...
 +      * <span lo>(FIXED)</span> Adding a listener to a SplineController's event is ignored if that event had no listener when the controller is initialized
 +      * <span lo>(FIXED)</span> Spline Controller not working properly with Catmull-Rom splines having Auto End Tangents to false
 +      * <span lo>(FIXED)</span> Switching splines ignores Offset
 +      * <span lo>(FIXED)</span> Switching splines ignores Damping
 +      * <span lo>(FIXED)</span> Switch duration is ignored when On Switch event is listened to
 +      * <span lo>(FIXED)</span> Controller has wrong position when following a moved spline while having "Self" as a Space
 +      * <span lo>(FIXED)</span> When spline and spline controller are parented to a rotated object, rotation of the controller is wrong when having "World" as a Space
 +      * <span lo>(FIXED)</span> When spline and spline controller are parented to a moved object, controller switching between splines has wrong position when having "World" as a Space
 +      * <span lo>(API/NEW)</span> Added FinishCurrentSwitch and CancelCurrentSwitch methods
 +      * <span lo>(API/CHANGE)</span> SwitchTo method now raises an error if called on a stopped controller
 +      * <span lo>(API/CHANGE)</span> CurvySplineMoveEventArgs fields are now read only. To modify a controller movement, modify the controller properties instead of CurvySplineMoveEventArgs fields
 +      * <span lo>(API/CHANGE)</span> CurvySplineMoveEventArgs: sender is now always a SplineController
 +    * UI Text Spline controller:
 +      * <span lo>(FIXED)</span> Invalid position when having "World" as a Space
 +    * Path and Volume Controllers
 +      * <span lo>(FIXED)</span> "Adapt On Change" option has no effect
 +  * Curvy Splines:
 +    * <span lo>(OPTIM)</span> Real time splines modification takes tens of percents less CPU
 +    * <span lo>(CHANGE)</span> Transforming a spline into a shape will remove all its connections
 +    * <span lo>(CHANGE)</span> GetTangentFast now uses slerp instead of lerp to interpolate between cached tangents
 +    * <span lo>(FIXED)</span> Connection inspector forbids setting some Heading values when control point is connected to a closed spline's first control point
 +    * <span lo>(FIXED)</span> Slowdowns due to some connected control points synchronizing unnecessarily their transforms every frame
 +    * <span lo>(FIXED)</span> Events are triggered before the spline is refreshed
 +    * <span lo>(FIXED)</span> OnAfterControlPointChanges event was sometimes send with a null Spline property
 +    * <span lo>(FIXED)</span> OnAfterControlPointAdd and OnAfterControlPointChanges events where sometimes called with the wrong value of CurvyControlPointEventArgs.Mode
 +    * <span lo>(API/NEW)</span> InsertBefore and InsertAfter methods's overrides that set the created control point's position
 +    * <span lo>(API/NEW)</span> CurvySpline.GlobalCoordinatesChangedThisFrame
 +    * <span lo>(API/CHANGE)</span> CurvySpline.DistanceToTF will now return 0 (instead of 1) when spline's length is 0
 +    * <span lo>(API/CHANGE)</span> InsertBefore, InsertAfter and Delete methods now have an optional parameter to make them not call the Refresh method, and not trigger events
 +    * <span lo>(API/CHANGE)</span> Start now calls Refresh, which means OnRefresh event can be send in Start method
 +    * <span lo>(API/CHANGE)</span> Adding and deleting control points events are no more cancellable
 +    * <span lo>(API/CHANGE/FIXED)</span> Made methods that add or removes control points from splines coherent between themselves in the following ways:
 +      * They now all call Refresh at their end
 +      * OnAfterControlPointChanges will always send a CurvySplineEvent
 +      * Methods that add or remove multiple control points will now always send only one event of each relevant type
 +    * <span lo>(API/FIXED)</span> TFToDistance and DistanceToTF behave differently when handling the TF and Distance of the last Control Point of a spline
 +    * <span lo>(API/FIXED)</span> CurvySpline.GetTangentFast returns non normalized vectors
 +    * <span lo>(API/FIXED)</span> DistanceToSegment returns different result that TFToSegment for the same segment
 +  * Misc:
 +    * <span lo>(NEW)</span> Added support for compiler symbol: CURVY_SANITY_CHECKS. It activates various sanity checks in Curvy's code. Very useful to debug your code when using the Curvy API. This symbol is not set by default. For performance reasons, please do not set this symbol when building your release binary.
 +    * <span lo>(CHANGE)</span> Set script execution order for some script: CurvyConection < CurvySplineSegment < CurvySpline < CurvyController
 +    * <span lo>(CHANGE)</span> CurvySplineExportWizard do not support CurvySplineGroups anymore (but still supports multiple CurvySplines)
 +    * <span lo>(CHANGE)</span> Moved files to the Plugins folder
 +    * <span lo>(FIXED)</span> Draw splines tool: undoing the creation of a connected Control Point gives console errors
 +    * <span lo>(FIXED)</span> Draw Splines tool: the "Add & Smart Connect" action generates splines that have incorrect shapes
 +    * <span lo>(FIXED)</span> CG options handled incorrectly when extruding a mesh using a Cross with non null Start PC and End CP
 +    * <span lo>(FIXED)</span> Namespace conflict with Oculus example project
 +    * <span lo>(FIXED)</span> ThreadPoolWorker does not use all available cores in some cases.
 +=====2.2.4.2=====
 +  * <span lo>(OPTIM)</span> Huge optimizations related to splines modification. Real time splines modification can take up to an order of magnitude less time
 +  * <span lo>(OPTIM)</span> Reduced multi threading computational and memory overheads
 +  * <span lo>(OPTIM)</span> Optimized splines interpolation
 +  * <span lo>(CHANGE)</span> Made splines initialize earlier, in Start instead of the first Update/FixedUpdate/LateUpdate
 +  * <span lo>(CHANGE)</span> Resetting a Control Point will now keep it's connections
 +  * <span lo>(CHANGE)</span> Connection inspector: to no allow invalid Heading settings
 +  * <span lo>(CHANGE)</span> Curvy Spline Segment inspector: OrientationAnchor is no more visible when it's value is irrelevant
 +  * <span lo>(CHANGE)</span> Made materials in example scenes compatible with Unity 2018 (dropping of Substance based ones)
 +  * <span lo>(CHANGE)</span> Transformation from text to number of user provided values now uses the invariant culture instead of the culture on the user's machine. More about invariant culture here: https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture%28v=vs.110%29.aspx
 +  * <span lo>(FIXED)</span> Exceptions thrown when updating splines with "Use Threading" and "Bake Orientation" in one of the control points set to true
 +  * <span lo>(FIXED)</span> Occasional exceptions thrown when undoing some operations
 +  * <span lo>(FIXED)</span> In Meta CG Options' inspector, setting First U from neighbors lead to thrown exceptions or invalid values
 +  * <span lo>(FIXED)</span> Spline Controller does not work when setting its spline from code
 +  * <span lo>(FIXED)</span> Changing spline controller's speed through the SetFromString does not work
 +  * <span lo>(FIXED)</span> Controller's orientation can be wrong when TimeScale is set to 0 or when unpausing the game
 +  * <span lo>(FIXED)</span> If a Control Point is used as a Follow Up, moving it sometimes does not update the connected spline
 +  * <span lo>(FIXED)</span> Control points that have already a next or previous Control point are allowed to have Follow ups
 +  * <span lo>(FIXED)</span> A spline does not get updated when its first Control Point has a Follow Up that moves
 +  * <span lo>(FIXED)</span> Changing a spline's Auto End Tangents do not refresh following up spline
 +  * <span lo>(FIXED)</span> Connection between control points at the end or start of a spline prevent those control points to become invisible when Auto End Tangents is set to false
 +  * <span lo>(FIXED)</span> Connection persists after deletion
 +  * <span lo>(FIXED)</span> Connections still existing even if all the connected control points are removed
 +  * <span lo>(FIXED)</span> When changing Auto End Tangents from false to true, the Orientation Anchor value of the second control point is always overridden to true
 +  * <span lo>(FIXED)</span> Selecting an orphan control point from a loaded scene leads to null references
 +  * <span lo>(FIXED)</span> Spline does not get updated when one of its children Control Points is moved elsewhere via the Hierarchy window
 +  * <span lo>(FIXED)</span> First tangent of a segment is sometimes not up to date
 +  * <span lo>(FIXED)</span> When switching from Orientation Static or Dynamic to None, orientation for some control points is not recomputed
 +  * <span lo>(FIXED)</span> The orientation of the last segment's cached points is sometimes not up to date
 +  * <span lo>(FIXED)</span> A spline's Length can have a negative value when removing all control points
 +  * <span lo>(FIXED)</span> A spline keeps a non zero value for Cache Size and Segments count even after removing all control points
 +  * <span lo>(FIXED)</span> Sometimes, when enabling a disabled spline, the control points hierarchy is not reflecting the actual splines' control points
 +  * <span lo>(FIXED)</span> Changing the number of points in a Spiral (in the Shape wizard) sometimes make the spiral "entangled"
 +  * <span lo>(FIXED)</span> "Max Points Per Unit" is not correctly imported when using the splines import/export tool
 +  * <span lo>(FIXED)</span> Resetting a CurvySpline component will set invalid value to its "Max Points Per Unit"
 +  * <span lo>(API/CHANGE)</span> CurvySpline.Create now returns an initialized splines
 +  * <span lo>(API/CHANGE)</span> Now all CurvySplineSegments have approximation arrays of a length of CacheSize + 1
 +  * <span lo>(API/CHANGE)</span> Made CurvySplineBase abstract
 +  * <span lo>(API/CHANGE)</span> CurvySplineSegment's ControlPointIndex can no longer be set. It is now handled by CurvySpline
 +  * <span lo>(API/CHANGE)</span> Made components stripping systematic when pushing CurvySplineSegments to pools
 +  * <span lo>(API/FIXED)</span> IsLastSegment returns true even if Control Point was not a segment
 +  * <span lo>(API/FIXED)</span> When using follow ups, GetPreviousControlPoint returns a Control Point that is not a segment even when segmentsOnly is true
 +  * <span lo>(API/FIXED)</span> Poolable objects do not get their OnBeforePush method called before being pushed into a pool
 +  * <span lo>(API/FIXED)</span> Setters of CurvySpline.MaxPointsPerUnit, CurvySplineGroup.Splines and BuildShapeExtrusion.CrossShiftValue did not update these values correctly
 +  * **Changes since 2.2.4.1**
 +    * <span lo>(FIXED)</span> StartCP and EndCP in InputSplinePath and InputSplineShape modules are set automatically to null.
 +=====2.2.3=====
 +  * <span lo>(NEW)</span> [[https://docs.unity3d.com/2017.3/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html|Assembly definitions]] support
 +    * Curvy was restructured and modified to support Unity's assembly definitions. This feature is disabled by default in this release. To enable it, search in Curvy installed folders for files with ".asmdef.disabled" extension, and rename the extension to ".asmdef".
 +  * <span lo>(NEW)</span> CG module slots can be renamed without breaking the generator's data
 +  * <span lo>(CHANGE)</span> Spline sampling parameters were modified:
 +    * The global "Max Cache PPU" is now obsolete and replaced with a per spline "Max Max Points Per Unit"
 +    * The "Min Distance" parameter of the Curvy Generators is now obsolete
 +    * For more details please go here https://forum.curvyeditor.com/thread-526.html  
 +  * <span lo>(CHANGE)</span> Fixed an example script's namespace
 +  * <span lo>(CHANGE)</span> Added relevant dlls generated by asmdefs to link.xml
 +  * <span lo>(CHANGE)</span> 0 is no more a valid value for the Resolution parameter in "Rasterize Path" and "Shape Extrusion" CG modules
 +  * <span lo>(CHANGE)</span> Modified some CG module slots names to reflect the need for a rasterized path, in opposition to a non rasterized one.
 +  * <span lo>(FIXED)</span> Some CurvyUISpline properties do not get reset properly when resetting the component
 +  * <span lo>(FIXED)</span> Spline's level of detail is different between the editor and the build.
 +  * <span lo>(FIXED)</span> Extruded shapes become two dimensional if small enough
 +  * <span lo>(FIXED)</span> The "Use Cache" parameter in the spline input CG modules is ignored when linked to "Shape Extrusion" or "Rasterize Path" CG modules having "Optimize" set to true. 
 +  * <span lo>(FIXED)</span> The rasterization resolution in the "Rasterize Path" CG module is modified if the module's Length parameter is modified.
 +  * <span lo>(FIXED)</span> Extruded mesh jitters when modifying its path spline's length
 +  * <span lo>(FIXED)</span> Wrong name of Rasterize Path in the CG modules list
 +  * <span lo>(FIXED, except when building against .NET Core)</span> Curvy doesn't detect custom CG modules and Shapes from other assemblies.
 +  * <span lo>(FIXED)</span> The Curvy generator templates list is broken in .Net 4.6
 +  * <span lo>(FIXED)</span> In the CG graph, the suggested list of modules to connect with the current module contains modules you can't connect to
 +  * <span lo>(FIXED)</span> Spline to Mesh tool generated spline at the wrong position
 +  * <span lo>(FIXED)</span> Pools get duplicated if the pooled object's class is in a different assembly from the pool
 +  * <span lo>(FIXED)</span> Multiple pools of the same component crash the game
 +  * <span lo>(FIXED)</span> Obsolete messages from Unity 2017.3 and newer
 +  * <span lo>(FIXED)</span> WebGL application crashes when using a spline having Use Threading set to true
 +  Example scenes:
 +      * <span lo>(CHANGE)</span> Set assets serialization mode to Text
 +      * <span lo>(CHANGE)</span> Reduced Ressource images size
 +      * <span lo>(CHANGE)</span> Various tweaks and enhancements
 +      * <span lo>(FIXED)</span> Example scenes do not render properly on WebGL and Mobile
 +=====2.2.2=====
 +  * Spline to Mesh:
 +    * <span lo>(CHANGE)</span> Renamed the "Mesh Export" tool to "Spline to Mesh" to avoid confusion.
 +    * <span lo>(CHANGE)</span> Spline to Mesh does no more require the input spline to be on the X/Y plane
 +    * <span lo>(FIXED)</span> Spline to Mesh does not open in recent Unity version
 +    * <span lo>(FIXED)</span> Spline to Mesh produces wrong values in UV2.y
 +  * Spline Import/Export wizard:
 +    * <span lo>(NEW)</span> Added link to documentation in the spline Import/Export wizard
 +    * <span lo>(CHANGE)</span> Spline Import/Export wizard modified to make it more straight forward to use
 +    * <span lo>(CHANGE)</span> Modified the field names in the exported spline JSON format, to make it similar to the spline field names in the inspector
 +    * <span lo>(FIXED)</span> Spline Import/Export wizard does not open in recent Unity versions
 +    * <span lo>(FIXED)</span> "String too long" error when displaying long text in the spline Import/Export wizard TextMeshGenerator Cutting off characters
 +  * Others:
 +    * <span lo>(CHANGE)</span> Replaced the usage of the obsolete UnityEditor.EditorApplication.playmodeStateChanged method with UnityEditor.EditorApplication.playModeStateChanged and UnityEditor.EditorApplication.pauseStateChanged for Unity 2017.2 and above
 +    * <span lo>(FIXED)</span> WebGL builds fail
 +    * <span lo>(FIXED)</span> Builds that use code stripping fail on Unity 2017.1 and older
 +    * <span lo>(FIXED)</span> When synchronizing connected spline handles, moving a handle can invert the others
 +=====2.2.1=====
 +  * <span lo>(CHANGE)</span> Modified the UI of the CG module "Create Mesh" to avoid confusion regarding the "Make Static" option.
 +    *"Make Static" is now not editable in play mode, since its Unity equivalent (GameObject.IsStatic) is an editor only property.
 +    * When "Make Static" is true, the other options are not editable while in play mode. This is to reflect the behaviour of the "Create Mesh" module, which is to not update the mesh while under those conditions, to avoid overriding the optimizations Unity do to static game objects' meshs.
 +  * <span lo>(FIXED)</span> When combining multiple Volumes having different values for the "Generate UV" setting, the created mesh has invalid UVs
 +  * <span lo>(FIXED)</span> "Mesh.normals is out of bounds" error when Generating a mesh that has Caps while using the Combine option
 +  * <span lo>(FIXED)</span> Convex property, in CG module Create Mesh, not applied on generated mesh collider
 +  * <span lo>(FIXED)</span> Negative SwirlTurns are ignored
 +  * <span lo>(FIXED)</span> Orientation interpolated the wrong way (Lerping instead of SLerping)
 +  * <span lo>(FIXED)</span> Cross's "Reverse Normal" in "Shape Extrusion" module is ignored when a "Volume Hollow" is set
 +  * <span lo>(FIXED)</span> Crash on IOS when using code stripping on Unity 2017.2 and above.
 +  * <span lo>(OPTIM)</span> Various optimizations, the most important ones are related to "Shape Extrusion"'s normals computations and Orientation computation
 +  * <span lo>(API)</span> Added a new GetNearestPointTF overload that also returns the nearestSegment and the nearestSegmentF
 +  * <span lo>(API)</span> Made CrossReverseNormals, HollowInset and HollowReverseNormals properties public in BuildShapeExtrusion
 +
 +=====2.2.0=====
 +  * <span lo>(NEW)</span> Addressed Unity 2017.3 incompatibilities
 +  * <span lo>(NEW)</span> Added a RendererEnabled option to the CreateMesh CG module. Useful if you generate a mesh for collider purposes only
 +  * <span lo>(FIXED)</span> Error when using pooling with Unity 2017.2 and above
 +  * <span lo>(FIXED)</span> Incompatibility with UWP10 build
 +  * <span lo>(FIXED)</span> SceneSwitcher.cs causing issues with the global namespace of Scene Switcher being occupied by the PS4's SDK
 +  * <span lo>(FIXED)</span> Curvy crashing when compiled with the -checked compiler option
 +  * <span lo>(FIXED)</span> TRSShape CG module not updating properly the shape's normals
 +  * <span lo>(FIXED)</span> ReverseNormals not reversing normals in some cases. Note: You might have ticked "Reverse Normals" in some of your Curvy Generators, but didn't notice it because of the bug. Now that the bug is fixed, those accidental "Reverse Normals" will get activated.
 +  * <span lo>(FIXED)</span> Split meshes not having the correct normals
 +  * <span lo>(CHANGE)</span> Replaced website, documentation and forum URLs with the new ones
 +  * <span lo>(OPTIM)</span> Various optimizations, the most important ones are related to mesh generation (UVs, normals and tangents computation)
 +
 +=====2.1.3=====
 +  * <span lo>(FIXED)</span> TimeScale affects controller movement when Animate is off
 +  * <span lo>(FIXED)</span> Reverse spline movement going wrong under some rare conditions
 +
 +=====2.1.2=====
 +  * <span lo>(NEW)</span> Added CreatePathLineRenderer CG module
 +  * <span lo>(NEW)</span> Addressed Unity 5.5 incompatibilities
 +  * <span lo>(FIXED)</span> SplineController.AdaptOnChange failing under some conditions
 +  * <span lo>(FIXED)</span> Selecting a spline while the Shape wizard is open immediately changes it's shape
 +  * <span lo>(FIXED)</span> ModifierMixShapes module not generating normals
 +  * <span lo>(CHANGE)</span> Changed 20_CGPath example to showcase CreatePathLineRenderer module
 +
 =====2.1.1===== =====2.1.1=====
-[NEWAdded CurvySplineBase.GetApproximationPoints+  * <span lo>(NEW)</span> Added CurvySplineBase.GetApproximationPoints
   * <span lo>(NEW)</span> Added Offsetting and offset speed compensation to CurvyController   * <span lo>(NEW)</span> Added Offsetting and offset speed compensation to CurvyController
-  * <span lo>(FIX)</span> ImportExport toolbar button ignoring ShowGlobalToolbar option +  * <span lo>(FIXED)</span> ImportExport toolbar button ignoring ShowGlobalToolbar option 
-  * <span lo>(FIX)</span> Assigning CGDataReference to VolumeController.Volume and PathController.Path fails at runtime+  * <span lo>(FIXED)</span> Assigning CGDataReference to VolumeController.Volume and PathController.Path fails at runtime
   * <span lo>(CHANGE)</span> OrientationModeEnum and OrientationAxisEnum moved from CurvyController to FluffyUnderware.Curvy namespace   * <span lo>(CHANGE)</span> OrientationModeEnum and OrientationAxisEnum moved from CurvyController to FluffyUnderware.Curvy namespace
   * <span lo>(CHANGE)</span> ImportExport Wizard now cuts text and logs a warning if larger then allowed by Unity's TextArea   * <span lo>(CHANGE)</span> ImportExport Wizard now cuts text and logs a warning if larger then allowed by Unity's TextArea
Line 14: Line 1076:
   * <span lo>(NEW)</span> Import/Export API & wizard for JSON serialization of Splines and Control Points (Catmull-Rom & Bezier) - **//Experimental//**   * <span lo>(NEW)</span> Import/Export API & wizard for JSON serialization of Splines and Control Points (Catmull-Rom & Bezier) - **//Experimental//**
   * <span lo>(NEW)</span> Added 22_CGClonePrefabs example scene   * <span lo>(NEW)</span> Added 22_CGClonePrefabs example scene
-  * <span lo>(NEW)</span> Windows Store compatiblity (Universal 8.1, Universal 10) +  * <span lo>(NEW)</span> Windows Store compatibility (Universal 8.1, Universal 10) 
-  * <span lo>(FIX)</span> BuildVolumeMesh.KeepAspect not working properly +  * <span lo>(FIXED)</span> BuildVolumeMesh.KeepAspect not working properly 
-  * <span lo>(FIX)</span> CreateMesh.SaveToScene() not working properly +  * <span lo>(FIXED)</span> CreateMesh.SaveToScene() not working properly 
-  * <span lo>(FIX)</span> NRE when using CreateMesh module's Mesh export option +  * <span lo>(FIXED)</span> NRE when using CreateMesh module's Mesh export option 
-  * <span lo>(FIX)</span> Spline layer always resets to default spline layer +  * <span lo>(FIXED)</span> Spline layer always resets to default spline layer 
-  * <span lo>(FIX)</span> CurvySpline.TFToSegmentIndex returning wrong values +  * <span lo>(FIXED)</span> CurvySpline.TFToSegmentIndex returning wrong values 
-  * <span lo>(FIX)</span> SceneSwitcher helper script raise errors at some occasions+  * <span lo>(FIXED)</span> SceneSwitcher helper script raise errors at some occasions
   * <span lo>(CHANGE)</span> Setting CurvyController.Speed will only change movement direction if it had a value of 0 before   * <span lo>(CHANGE)</span> Setting CurvyController.Speed will only change movement direction if it had a value of 0 before
   * <span lo>(CHANGE)</span> Dropped poly2tri in favor of LibTessDotNet for triangulation tasks   * <span lo>(CHANGE)</span> Dropped poly2tri in favor of LibTessDotNet for triangulation tasks
Line 34: Line 1096:
   * <span lo>(NEW)</span> Added CurvyController.OnAnimationEnd event   * <span lo>(NEW)</span> Added CurvyController.OnAnimationEnd event
   * <span lo>(NEW)</span> Added option to select Connection GameObject to Control Point inspector   * <span lo>(NEW)</span> Added option to select Connection GameObject to Control Point inspector
-  * <span lo>(FIX)</span> UV2 calculation not working properly +  * <span lo>(FIXED)</span> UV2 calculation not working properly 
-  * <span lo>(FIX)</span> CurvyController.IsInitialized becoming true too early +  * <span lo>(FIXED)</span> CurvyController.IsInitialized becoming true too early 
-  * <span lo>(FIX)</span> Controller Damping not working properly when moving backwards +  * <span lo>(FIXED)</span> Controller Damping not working properly when moving backwards 
-  * <span lo>(FIX)</span> Control Point pool keeps invalid objects after scene load +  * <span lo>(FIXED)</span> Control Point pool keeps invalid objects after scene load 
-  * <span lo>(FIX)</span> _CurvyGlobal_ frequently causes errors in editor when switching scenes +  * <span lo>(FIXED)</span> _CurvyGlobal_ frequently causes errors in editor when switching scenes 
-  * <span lo>(FIX)</span> Curve Gizmo drawing allocating memory unnecessarily +  * <span lo>(FIXED)</span> Curve Gizmo drawing allocating memory unnecessarily 
-  * <span lo>(FIX)</span> SplineController allocates memory at some occasions +  * <span lo>(FIXED)</span> SplineController allocates memory at some occasions 
-  * <span lo>(FIX)</span> CurvyDefaultEventHandler.UseFollowUp causing Stack Overflow/Unity crashing +  * <span lo>(FIXED)</span> CurvyDefaultEventHandler.UseFollowUp causing Stack Overflow/Unity crashing 
-  * <span lo>(FIX)</span> _CurvyGlobal_ GameObject disappearing by DontDestroyOnLoad bug introduced by Unity 5.3+  * <span lo>(FIXED)</span> _CurvyGlobal_ GameObject disappearing by DontDestroyOnLoad bug introduced by Unity 5.3
   * <span lo>(CHANGE)</span> UITextSplineController resets state when you disable it   * <span lo>(CHANGE)</span> UITextSplineController resets state when you disable it
   * <span lo>(CHANGE)</span> CurvyGenerator.OnRefresh() now returns the first changed module in CGEventArgs.Module   * <span lo>(CHANGE)</span> CurvyGenerator.OnRefresh() now returns the first changed module in CGEventArgs.Module
Line 49: Line 1111:
   * <span lo>(NEW)</span> Added Pooling example scene   * <span lo>(NEW)</span> Added Pooling example scene
   * <span lo>(NEW)</span> Added [[.:documentation:components:CurvyGLRenderer|CurvyGLRenderer]].Add() and [[.:documentation:components:CurvyGLRenderer|CurvyGLRenderer]].Delete()   * <span lo>(NEW)</span> Added [[.:documentation:components:CurvyGLRenderer|CurvyGLRenderer]].Add() and [[.:documentation:components:CurvyGLRenderer|CurvyGLRenderer]].Delete()
-  * <span lo>(FIX)</span> CG graph not refreshing properly +  * <span lo>(FIXED)</span> CG graph not refreshing properly 
-  * <span lo>(FIX)</span> CG module window background rendering transparent under Unity 5.2 at some occasions +  * <span lo>(FIXED)</span> CG module window background rendering transparent under Unity 5.2 at some occasions 
-  * <span lo>(FIX)</span> Precise Movement over connections causing position warps +  * <span lo>(FIXED)</span> Precise Movement over connections causing position warps 
-  * <span lo>(FIX)</span> Curvy values resetting to default editor settings on upgrade +  * <span lo>(FIXED)</span> Curvy values resetting to default editor settings on upgrade 
-  * <span lo>(FIX)</span> Control Points not pooled when deleting spline +  * <span lo>(FIXED)</span> Control Points not pooled when deleting spline 
-  * <span lo>(FIX)</span> Pushing Control Points to pool at runtime causing error +  * <span lo>(FIXED)</span> Pushing Control Points to pool at runtime causing error 
-  * <span lo>(FIX)</span> Bezier orientation not updated at all occasions +  * <span lo>(FIXED)</span> Bezier orientation not updated at all occasions 
-  * <span lo>(FIX)</span> MetaCGOptions: Explicit U unable to influence faces on both sides of hard edges +  * <span lo>(FIXED)</span> MetaCGOptions: Explicit U unable to influence faces on both sides of hard edges 
-  * <span lo>(FIX)</span> Changed UITextSplineController to use VertexHelper.Dispose() instead of VertexHelper.Clear() +  * <span lo>(FIXED)</span> Changed UITextSplineController to use VertexHelper.Dispose() instead of VertexHelper.Clear() 
-  * <span lo>(FIX)</span> CurvySplineSegment.ConnectTo() fails at some occasions+  * <span lo>(FIXED)</span> CurvySplineSegment.ConnectTo() fails at some occasions
  
 ===== 2.0.2 ===== ===== 2.0.2 =====
Line 67: Line 1129:
   * <span lo>(NEW)</span> Added CurvySpline.IsPlanar(CurvyPlane) and CurvySpline.MakePlanar(CurvyPlane)   * <span lo>(NEW)</span> Added CurvySpline.IsPlanar(CurvyPlane) and CurvySpline.MakePlanar(CurvyPlane)
   * <span lo>(NEW)</span> Added [[.:documentation:controllers:#DampingDirection|CurvyController.DampingDirection]] and [[.:documentation:controllers:#DampingUp|CurvyController.DampingUp]]   * <span lo>(NEW)</span> Added [[.:documentation:controllers:#DampingDirection|CurvyController.DampingDirection]] and [[.:documentation:controllers:#DampingUp|CurvyController.DampingUp]]
-  * <span lo>(FIX)</span> Controller Inspector leaking textures +  * <span lo>(FIXED)</span> Controller Inspector leaking textures 
-  * <span lo>(FIX)</span> Controllers refreshing when Speed==0 +  * <span lo>(FIXED)</span> Controllers refreshing when Speed==0 
-  * <span lo>(FIX)</span> VolumeController not using individual faces at all occasions +  * <span lo>(FIXED)</span> VolumeController not using individual faces at all occasions 
-  * <span lo>(FIX)</span> Unity 5.2.1p1 silently introduced breaking changes in IMeshModifier +  * <span lo>(FIXED)</span> Unity 5.2.1p1 silently introduced breaking changes in IMeshModifier 
-  * <span lo>(FIX)</span> IOS deployment code stripping (link.xml)+  * <span lo>(FIXED)</span> IOS deployment code stripping (link.xml)
   * <span lo>(CHANGE)</span> CurvyController.OrientationDamping now obsolete!   * <span lo>(CHANGE)</span> CurvyController.OrientationDamping now obsolete!
 +
 ===== 2.0.1 ===== ===== 2.0.1 =====
   * <span lo>(NEW)</span> CG path rasterization now has a dedicated angle threshold   * <span lo>(NEW)</span> CG path rasterization now has a dedicated angle threshold
-  * <span lo>(NEW)</span> Added [[http://www.fluffyunderware.com/curvy/documentation/extend/createcontrollerssimple#applytransformposition| CurvyController.ApplyTransformPosition()]] and [[http://www.fluffyunderware.com/curvy/documentation/extend/createcontrollerssimple#applytransformrotation|CurvyController.ApplyTransformRotation()]] +  * <span lo>(NEW)</span> Added CurvyController.ApplyTransformPosition() and CurvyController.ApplyTransformRotation() 
-  * <span lo>(FIX)</span> CG not refreshing as intended in the editor +  * <span lo>(FIXED)</span> CG not refreshing as intended in the editor 
-  * <span lo>(FIX)</span> CG not refreshing when changing used splines +  * <span lo>(FIXED)</span> CG not refreshing when changing used splines 
-  * <span lo>(FIX)</span> Controllers resets when changing inspector while playing +  * <span lo>(FIXED)</span> Controllers resets when changing inspector while playing
  
 ===== 2.0.0 ===== ===== 2.0.0 =====
-Initial Curvy 2 release! Existing usersplease read the [[.documentation:upgrading|upgrading guide]]!+  * Initial Curvy 2 release 
 +   
 +===== 1.61 ===== 
 +  * New: 
 +    * Added option to SplinePathMeshBuilder to refresh an existing mesh collider 
 +  * Changes: 
 +    * Added shortcut to "Select First CP" toolbar action (defaults to 'T'
 +  * Fixes: 
 +    * Fixed Toolbar bug when using Deferred Rendering together with Perspective SceneView 
 +    * Several small bugfixes 
 +   
 +===== 1.60 ===== 
 +  * New: 
 +    * Added new UI: Toolbar with Hotkey-Binding, new Inspectors 
 +    * Added new components: AlignToSpline, FollowSpline 
 +    * Added CurvySplineBase.IsContinuous and CurvySplineBase.IsClosed 
 +    * Added CurvySplineBase.GetPolygonByAngle() 
 +    * Added CurvySpline.FirstVisibleControlPoint/CurvySpline.LastVisibleControlPoint 
 +    * Added option to inverse rotation in CurvySplineBase.GetOrientationFast() 
 +    * Added Spline2Mesh class 
 +    * Reworked Mesh Export wizard (featuring Delauny Triangulation and holes support) 
 +  * Changes: 
 +    * Old components (SplineAlign, SplineWalker, SplineWalkerCon, SplineWalkerDistance) moved to Legacy folder 
 +    * Except the legacy components Curvy is now completely namespaced 
 +    * Streamlined Uppercasing of some of CurvyUtility's methods. Old methods flagged as obsolete 
 +    * CurvyUtility.CreateSplineMesh is obsolete now. Use the new Spline2Mesh class instead! 
 +    * UI Icons moved to Ressource DLL 
 +  * Fixes: 
 +    * Undo now working for all 4.x versions 
 +    * Distance of the last visible Control Point now set correctly 
 +    * Fixed problem with saving MeshBuilder's mesh 
 +    * Fixed a floating point accuracy problem in CurvySpline.DistanceToSegment() 
 +   
 +===== 1.51 ===== 
 +  * New: 
 +    * Added CurvySplineGroup component 
 +    * Added class CurvySplineBase as base class for CurvySpline and CurvySplineGroup. Almost all functionality now working on Groups as well 
 +    * Added CurvyInterpolation.Bezierincluding full handle control 
 +    * Added Shortcut Key Bindings to Preferences 
 +    * Added custom Transform Handle that takes Constraints into account 
 +    * Added options to split, join and flip splines 
 +    * Added option to clone another spline's settings to CurvySpline.Create() 
 +    * New Control Points in the scene view will be created at mouse position if not inserted within an existing segment 
 +    * Added CurvySplineBase.MoveByLengthFast() to move by distance using actual length calculations instead of extrapolating 
 +    * Added CurvySplineSegment.IsFirstControlPoint() / CurvySplineSegment.IsLastControlPoint() 
 +    * Added option to show labels in the Scene View 
 +    * Added option to SplineMeshBuilder to calculate tangents 
 +    * Added new examplesEndlessRunner, JunctionWalker,SplineGroup 
 +    * Added CurvyShaper (Superformula) 
 +    * Added an option to CurvySpline.GetNearestPointTF() to accept a list of segments to check 
 +    * Added CurvySplineBase.ExtrapolateDistanceToTF()/CurvySplineBase.ExtrapolateDistanceToTFFast() 
 +    * Added Forward option to SplineWalker and SplineWalkerDistance to set movement direction 
 +    * Code now Windows Store compliant (untested) 
 +  * Changes: 
 +    * CurvySplineBase.Refresh() now refreshes on the next call to Update(). Use RefreshImmediately() for instant refresh 
 +    * Renamed OnRefreshEvent to RefreshEvent 
 +    * Changed SplinePathCloneBuilder.Spline type to support CurvySplineBase 
 +    * Changed SplinePathMeshBuilder.Spline type to support CurvySplineBase 
 +    * Closing the Constraint Window will now deactivate any constraints 
 +    * Reworked Control Point Gizmo Scaling 
 +    * CurvySplineBase.Interpolate() now accepts an additional interpolation method 
 +    * Changed examples folder structure to better categorize the examples 
 +    * CurvySplineBase.GetExtrusionPoint() simplified. Flagged the old syntax as obsolete (will be removed in the next version) 
 +    * SplineWalker and SplineWalkerFixed don't set initial direction by the sign of speed anymore. 
 +  * Fixes: 
 +    * Shortcuts working when Control Point is selected in the hierarchy window. Finally! 
 +    * Fixed several methods (mostly movement based) not dealing with large values correctly 
 +    * Fixed some bugs and possible runtime errors in SplineMeshBuilder 
 +    * Fixed UserValue array size could be set to a negative value 
 +    * Several small bugfixes 
 +    * Several stability and performance optimizations 
 +   
 +===== 1.50 ===== 
 +  * New: 
 +    * Added SplinePathCloneBuilder script to dynamically clone transforms along a spline  
 +    * Added SplinePathMeshBuilder script to dynamically create a mesh representation 
 +    * Added Export wizard to export closed splines as meshes 
 +    * Added SceneView shortcuts for adding (G/Shift-G), deleting(H) and toggling Control Points (T/Shift-T) 
 +    * Added option to let a Control Point become the first Control Point 
 +    * Added option to CurvySpline.Add() to insert before (also available in the Control Point's scene GUI) 
 +    * Added option to CurvySpline.MoveBy() and CurvySpline.MoveByFast() to change accuracy 
 +    * Added option to GetApproximation() to return local coordinates 
 +    * Added CurvySpline.GetBounds() 
 +    * Added CurvySpline.MoveByAngle() and CurvySpline.MoveByAngleFast() to move until a certain curvation angle is reached 
 +    * Added CurvySpline.OnRefresh event that will be raised when the spline updates 
 +    * Added CurvySpline.InterpolateScale() and CurvySplineSegment.InterpolateScale() 
 +    * Added CurvySpline.Destroy() 
 +  * Changes: 
 +    * Removed RailRunner example 
 +    * Improved inspector look&feel 
 +    * Reworked GameObject->Create Other->Curvy menu structure into a subfolder to make room for future components 
 +    * Added proper Undo support for all scene view operations 
 +    * Reworked Constraint wizard 
 +  * Fixes: 
 +    * Fixed TCB properties bug when multi-editing Control Points 
 +    * Fixed distance to f returning 0.9999999 instead of 1 due to float inaccuracy 
 +    * Fixed some crash cases when recompiling during runtime 
 +    * Fixed broken AlignWizard example 
 +    * Fixed a bug sometimes causing weird spline orientation when entering runtime 
 +    * Fixed several minor bugs 
 +   
 +===== 1.04 ===== 
 +  * New: 
 +    * Added CurvySplineSegment.NextControlPoint and CurvySplineSegment.PreviousControlPoint 
 +    * Added CurvySplineSegment.IsFirstSegment and CurvySplineSegment.IsLastSegment 
 +    * Added CurvySpline.Swirl to swirl orientation vector by several modes 
 +    * Added option to show tangent gizmos 
 +    * Added option to show UserValues in the scene view 
 +    * Added CurvySplineSegment.SmoothEdgeTangent (results in orientation lerp between corners) 
 +    * Added API for better playMaker access: CurvySplineSegment.SegmentIndex, CurvySplineSegment.ControlPointIndex, CurvySpline.Segments 
 +    * Added Rails example scene 
 +    * Improved documentation 
 +  * Changes: 
 +    * Changed Orientation calculation to Parallel Transport Framing, making it much more stable 
 +    * Tangent->ControlPoint orientation: First Up-Vector now keeps orthogonal 
 +    * Huge performance increase of Distance based methods 
 +    * Reworked Performance example 
 +  * Fixes: 
 +    * Several fixes regarding caching 
 +    * Fixed Tangent calculation 
 +    * Fixed error when using GetNearestTF on an empty spline 
 +   
 +===== 1.02/1.03 ===== 
 +  * New: 
 +    * Added SplineWalkerDistance script - can be useful when working with dynamic splines 
 +    * Added CurvySpline.ReloadControlPoints() 
 +    * Added new example scene: DynamicSpline 
 +  * Changes: 
 +    * Improved SplineWalker script 
 +    * Control points now will be numbered consecutively when adding/deleting control points 
 +  * Fixes: 
 +    * - CurvySpline.GetApproximation(), CurvySpline.GetApproximationT() and CurvySpline.GetApproximationUpVectors() returning wrong values 
 +    * - CurvySplineAlignWizard now uses ArrowCap instead of DrawArrow 
 +   
 +===== 1.01 ===== 
 +  * New: 
 +    * Added UserValues array to Control Points, to be used with InterpolateUserValue() 
 +    * Added editor wizard to align objects to a spline 
 +    * SplineAlign script to just align position and rotation of objects both in editor and at runtime 
 +  * Changes: 
 +    * SplineWalker now continuously sets initial position and rotation in the editor 
 +  * Fixes: 
 +    * - Up-Vectors of closed splines not smoothed out when using Tangent Orientation 
 +   
 +===== 1.00 ===== 
 +  * Initial release