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
Next revisionBoth sides next revision
curvy:releasenotes [2017/02/07 15:29] Jakereleasenotes [2019/02/05 11:16] – [5.2.0 (Pending Unity's approval)] _Aka_
Line 1: Line 1:
 ====== 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>
 +=====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 behavior 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 orientaion 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 behavior 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 behavior 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 cancelable
 +    * <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 execptions 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===== =====2.1.2=====
   * <span lo>(NEW)</span> Added CreatePathLineRenderer CG module   * <span lo>(NEW)</span> Added CreatePathLineRenderer CG module
   * <span lo>(NEW)</span> Addressed Unity 5.5 incompatibilities   * <span lo>(NEW)</span> Addressed Unity 5.5 incompatibilities
-  * <span lo>(FIX)</span> SplineController.AdaptOnChange failing under some conditions +  * <span lo>(FIXED)</span> SplineController.AdaptOnChange failing under some conditions 
-  * <span lo>(FIX)</span> Selecting a spline while the Shape wizard is open immediately changes it's shape +  * <span lo>(FIXED)</span> Selecting a spline while the Shape wizard is open immediately changes it's shape 
-  * <span lo>(FIX)</span> ModifierMixShapes module not generating normals+  * <span lo>(FIXED)</span> ModifierMixShapes module not generating normals
   * <span lo>(CHANGE)</span> Changed 20_CGPath example to showcase CreatePathLineRenderer module   * <span lo>(CHANGE)</span> Changed 20_CGPath example to showcase CreatePathLineRenderer module
  
Line 11: Line 354:
   * <span lo>(NEW)</span> Added 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 23: Line 366:
   * <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 compatiblity (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 42: Line 385:
   * <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 57: Line 400:
   * <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 75: Line 418:
   * <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 [[https://www.curvyeditor.com/documentation/extend/createcontrollerssimple#applytransformposition| CurvyController.ApplyTransformPosition()]] and [[https://www.curvyeditor.com/documentation/extend/createcontrollerssimple#applytransformrotation|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