//### Bezier Logic Interface //Describes public functions of any BezierLogic component // //It controlls only particles path, it does not controll any other aspect ot their behaviour or loock. // //License information: [ASSET STORE TERMS OF SERVICE AND EULA](https://unity3d.com/legal/as_terms) // //Developed by [MathArtCode](https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=popularity/query=publisher:8738) team, 2015 using UnityEngine; namespace Assets.Scripts.BezierCurvedParticlesFlow.Interfaces { public interface IBezierLogic { // Returns a coordinate point relative to curve 'time' where 0 is bezier curve beginning and 1 is end of the bezier curve (length vise) Vector3 GetPoint(float t); // Returns a velocity point relative to curve 'time' where 0 is bezier curve beginning and 1 is end of the bezier curve (length vise) Vector3 GetVelocity(float t); // Returns a normalized velocity point relative to curve 'time' where 0 is bezier curve beginning and 1 is end of the bezier curve (length vise) Vector3 GetDirection(float t); // Sets a value of a point //- positioning (end points) have indexes 0, 3, 6, ... //- angles (control points) have indexes 1,2, 4,5, ... void SetControlPoint(int index, Vector3 point); //Gets a point value //- positioning (end points) have indexes 0, 3, 6, ... //- angles (control points) have indexes 1,2, 4,5, ... Vector3 GetControlPoint(int index); //Gets all avaliable points ammount (including end points) int ControlPointCount { get; } //Removes void RemovePoint(int selectedIndex); } }