<?xml version="1.0"?>
<doc>
    <assembly>
        <name>UnifiedUILib</name>
    </assembly>
    <members>
        <member name="M:UnifiedUI.Helpers.UnsavedInputKey.OnConflictResolved">
            <summary>
            Override this to serialize hotkey when user changes hotkey inside UUI.
            </summary>
        </member>
        <member name="P:UnifiedUI.Helpers.UUICustomButton.Button">
            <summary>
            UUI button. you can hide this if necessary.
            </summary>
        </member>
        <member name="P:UnifiedUI.Helpers.UUICustomButton.IsPressed">
            <summary>
            Use this to change buttons state when mod is closed externally (without clicking on the UUI button).
            </summary>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.GetParameterTypes``1">
            <typeparam name="TDelegate">delegate type</typeparam>
            <returns>Type[] representing arguments of the delegate.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.GetMethod``1(System.Type,System.String)">
            <summary>
            Gets directly declared method based on a delegate that has
            the same name as the target method
            </summary>
            <param name="type">the class/type where the method is declared</param>
            <param name="name">the name of the method</param>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterToolButton(System.String,System.String,System.String,System.String,ToolBase,ColossalFramework.SavedInputKey,System.Collections.Generic.Dictionary{ColossalFramework.SavedInputKey,System.Func{System.Boolean}})">
            <summary>
            register a button to tie to the given tool.
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="spritefile">full path to the file that contains 4 40x40x button sprites(see example)</param>
            <param name="tool">the tool to tie the button to.</param>
            <param name="activationKey">hot key to trigger the button</param>
            <param name="activeKeys">turn off these hotkeys in other mods</param>
            <returns>component containing the button. you can hide this component if necessary.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterToolButton(System.String,System.String,System.String,System.String,ToolBase,ColossalFramework.SavedInputKey,System.Collections.Generic.IEnumerable{ColossalFramework.SavedInputKey})">
            <summary>
            register a button to tie to the given tool.
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="spritefile">full path to the file that contains 4 40x40x button sprites(see example)</param>
            <param name="tool">the tool to tie the button to.</param>
            <param name="activationKey">hot key to trigger the button</param>
            <param name="activeKeys">turn off these hotkeys in other mods</param>
            <returns>component containing the button. you can hide this component if necessary.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterCustomButton(System.String,System.String,System.String,System.String,System.Action{System.Boolean},System.Action{ToolBase},ColossalFramework.SavedInputKey,System.Collections.Generic.Dictionary{ColossalFramework.SavedInputKey,System.Func{System.Boolean}})">
            <summary>
            register a custom button .
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="spritefile">full path to the file that contains 4 40x40x button sprites(see example)</param>
            <param name="onToggle">call-back for when the button is activated/deactivated</param>
            <param name="onToolChanged">call-back for when any active tool changes.</param>
            <param name="activationKey">hot key to trigger the button</param>
            <param name="activeKeys">hotkey->active dictionary. turns off these hotkeys in other mods while active</param>
            <returns>wrapper for the button which you can use to change the its state.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterCustomButton(System.String,System.String,System.String,System.String,System.Action{System.Boolean},System.Action{ToolBase},ColossalFramework.SavedInputKey,System.Collections.Generic.IEnumerable{ColossalFramework.SavedInputKey})">
            <summary>
            register a custom button .
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="spritefile">full path to the file that contains 4 40x40x button sprites(see example)</param>
            <param name="onToggle">call-back for when the button is activated/deactivated</param>
            <param name="onToolChanged">call-back for when any active tool changes.</param>
            <param name="activationKey">hot key to trigger the button</param>
            <param name="activeKeys">hotkey->active dictionary. turns off these hotkeys in other mods while active</param>
            <returns>wrapper for the button which you can use to change the its state.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterToolButton(System.String,System.String,System.String,ToolBase,UnifiedUI.Helpers.UUISprites,UnifiedUI.Helpers.UUIHotKeys)">
            <summary>
            register a button to tie to the given tool.
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="tool">the tool to tie the button to.</param>
            <returns>component containing the button. you can hide this component if necessary.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterCustomButton(System.String,System.String,System.String,UnifiedUI.Helpers.UUISprites,System.Action{System.Boolean},System.Action{ToolBase},UnifiedUI.Helpers.UUIHotKeys)">
            <summary>
            register a custom button .
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="onToggle">call-back for when the button is activated/deactivated</param>
            <param name="onToolChanged">call-back for when any active tool changes.</param>
            <returns>wrapper for the button which you can use to change the its state.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterToolButton(System.String,System.String,System.String,ToolBase,UnityEngine.Texture2D,UnifiedUI.Helpers.UUIHotKeys)">
            <summary>
            register a button to tie to the given tool.
            </summary>
            <param name="name">game object name for button. must be unique.</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="tool">the tool to tie the button to.</param>
            <returns>component containing the button. you can hide this component if necessary.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterCustomButton(System.String,System.String,System.String,UnityEngine.Texture2D,System.Action{System.Boolean},System.Action{ToolBase},UnifiedUI.Helpers.UUIHotKeys)">
            <summary>
            register a custom button .
            </summary>
            <param name="name">game object name for button</param>
            <param name="groupName">the group under which button will be added. use null to add to the default group.</param>
            <param name="onToggle">call-back for when the button is activated/deactivated</param>
            <param name="onToolChanged">call-back for when any active tool changes.</param>
            <returns>wrapper for the button which you can use to change the its state.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.RegisterHotkeys(System.Action,ColossalFramework.SavedInputKey,System.Collections.Generic.Dictionary{ColossalFramework.SavedInputKey,System.Func{System.Boolean}})">
            <summary>
            register hotkeys.
            </summary>
            <param name="onToggle">call back for when activationKey is pressed.</param>
            <param name="onToolChanged">call-back for when any active tool changes.</param>
            <param name="activationKey">hot key to toggle</param>
            <param name="activeKeys">hotkey->active dictionary. turns off these hotkeys in other mods while active</param>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.Destroy(UnityEngine.Component)">
            <summary>
            Destroy all gameObjects, components, and children
            </summary>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.GetModPath(ICities.IUserMod)">
            <summary>
            Gets the path to the mod that has the user mod instance.
            </summary>
            <param name="userModInstance">instance of IUserMod</param>
            <returns>path to mod</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.GetFullPath(ICities.IUserMod,System.String[])">
            <summary>
            Gets the full path to a file from the input mod
            </summary>
            <param name="userModInstance">instance of IUserMod</param>
            <param name="paths">directories,file names to combine</param>
            <returns>full path to file.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.GetFullPath``1(System.String[])">
            <summary>
            Gets the full path to a file from the input mod
            </summary>
            <typeparam name="UserModT">user mod type</typeparam>
            <param name="paths">directories/files to combine</param>
            <returns>full path to file.</returns>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.IsUUIEnabled">
            <summary>
            test if UnifiedUI is present and enable.
            </summary>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHelpers.KeyActivated(ColossalFramework.SavedInputKey)">
            <summary>
            checks if hotkey is activated on key Down/Up depending on UUI's user settings.
            </summary>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHotKeys.AddInToolKey(ColossalFramework.SavedInputKey)">
            <summary>
            add in-mod hotkey. this will take priority over (suppress) the activation key of other mods.
            when your mod is active.
            </summary>
        </member>
        <member name="M:UnifiedUI.Helpers.UUIHotKeys.AddInToolKey(ColossalFramework.SavedInputKey,System.Func{System.Boolean})">
            <summary>
            add in-mod hotkey. this will take priority over (suppress) the activation key of other mods.
            when your mod is active and the hotkey is availble.
            </summary>
            <param name="isAvailble">a function that returns true when the in-mod hotkey is availble
            (for example when the mod has sub-tools)
            in other wors, if isAvailbe returns true, then activation key of other mods are suppressed.
            </param>
        </member>
        <member name="M:UnifiedUI.API.UUIAPI.Register(System.String,System.String,System.String,System.String,System.Action{System.Boolean},System.Action{ToolBase},ColossalFramework.SavedInputKey,System.Collections.Generic.Dictionary{ColossalFramework.SavedInputKey,System.Func{System.Boolean}})">
            <summary>
            Register custom button
            </summary>
        </member>
        <member name="M:UnifiedUI.API.UUIAPI.Register(System.String,System.String,System.String,UnityEngine.Texture2D,System.Action{System.Boolean},System.Action{ToolBase},ColossalFramework.SavedInputKey,System.Collections.Generic.Dictionary{ColossalFramework.SavedInputKey,System.Func{System.Boolean}})">
            <summary>
            Register custom button
            </summary>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.Travel2(ColossalFramework.Math.Bezier3,System.Single,UnityEngine.Vector3@)">
            <summary>
            Travels some distance on beizer and calculates the point and tangent at that distance.
            </summary>
            <param name="distance">distance to travel on the arc in meteres</param>
            <param name="tangent">normalized tangent on the curve toward the end of the beizer.</param>
            <returns>point on the curve at the given distance.</returns>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.Travel2(ColossalFramework.Math.Bezier2,System.Single,UnityEngine.Vector2@)">
            <summary>
            Travels some distance on beizer and calculates the point and tangent at that distance.
            </summary>
            <param name="distance">distance to travel on the arc in meteres</param>
            <param name="tangent">normalized tangent on the curve toward the end of the beizer.</param>
            <returns>point on the curve at the given distance.</returns>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.Bezier2ByDir(UnityEngine.Vector2,UnityEngine.Vector2,UnityEngine.Vector2,UnityEngine.Vector2)">
            <param name="startDir">should be going toward the end of the bezier.</param>
            <param name="endDir">should be going toward the start of the  bezier.</param>
            <returns></returns>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.Bezier3ByDir(UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.Vector3,UnityEngine.Vector3)">
            <param name="startDir">should be going toward the end of the bezier.</param>
            <param name="endDir">should be going toward the start of the  bezier.</param>
            <returns></returns>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.NormalTangent(ColossalFramework.Math.Bezier2@,System.Single,System.Boolean,UnityEngine.Vector2@,UnityEngine.Vector2@)">
            <summary>
            results are normalized.
            fast for t==0 or t==1
            </summary>
            <param name="lefSide">is normal to the left of tangent (going away from origin) </param>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.NormalTangent(ColossalFramework.Math.Bezier3@,System.Single,System.Boolean,UnityEngine.Vector3@,UnityEngine.Vector3@)">
            <summary>
            results are normalized.
            fast for t==0 or t==1
            </summary>
            <param name="lefSide">is normal to the left of tangent (going away from origin) </param>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.CalculateParallelBezier(ColossalFramework.Math.Bezier2,System.Single,System.Boolean)">
            <param name="bLeft">going from start to end</param>
        </member>
        <member name="M:KianCommons.Math.BezierUtil.CalculateParallelBezier(ColossalFramework.Math.Bezier3,System.Single,System.Boolean)">
            <param name="bLeft">going from start to end</param>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.UnsignedAngleRad(UnityEngine.Vector2,UnityEngine.Vector2)">
            <summary>
            return value is between 0 to pi. v1 and v2 are interchangable.
            </summary>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.Vector2ByAngleRadCCW(System.Single,System.Single)">
            <param name="angle">angle in rad with Vector.right in CCW direction</param>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.SignedAngleRadCCW(UnityEngine.Vector2)">
            result is between -pi to +pi. angle is CCW with respect to Vector2.right
        </member>
        <member name="M:KianCommons.Math.VectorUtil.SignedAngleRadCCW(UnityEngine.Vector2,UnityEngine.Vector2)">
            <summary>
            return value is between -pi to pi. v1 and v2 are not interchangable.
            the angle goes CCW from v1 to v2.
            eg v1=0,1 v2=1,0 => angle=pi/2
            Note: to convert CCW to CW EITHER swap v1 and v2 OR take the negative of the result.
            </summary>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.NormalCW(UnityEngine.Vector3)">
             <summary>
             rotates horizontally (XZ) by 90 Clock Wise and sets height to zero.
             the resutl is normalized
            </summary>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.NormalCCW(UnityEngine.Vector3)">
            <summary>
            rotates horizontally (XZ) by 90 Counter Clock Wise and sets height to zero.
            the resutl is normalized
            </summary>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.SetI(UnityEngine.Vector3,System.Single,System.Int32)">
            <summary>
            returns a new vector with corresponding index set to input value.
            </summary>
            <param name="index">0:x 1:y 2:z</param>
        </member>
        <member name="M:KianCommons.Math.VectorUtil.CompareAngles_CCW_Right(System.Single,System.Single)">
            <summary>
            calculates if <paramref name="target"/> angle is to the right of 0 and <paramref name="source"/> angle.
            assuming input angles are (-pi,pi) CCW.
            assuming all angles are unique non-zero
            </summary>
            <param name="source">angle to compare with</param>
            <param name="target">angle being comapred</param>
        </member>
        <member name="M:KianCommons.Math.Vector2D.UnsignedAngleRad(KianCommons.Math.Vector2D,KianCommons.Math.Vector2D)">
            <summary>
            return value is between 0 to pi. v1 and v2 are interchangable.
            </summary>
        </member>
        <member name="M:KianCommons.Math.Vector2D.SignedAngleRadCCW">
            result is between -pi to +pi. angle is CCW with respect to Vector2D.right
        </member>
        <member name="M:KianCommons.Math.Vector2D.SignedAngleRadCCW(KianCommons.Math.Vector2D,KianCommons.Math.Vector2D)">
            <summary>
            return value is between -pi to pi. v1 and v2 are not interchangable.
            the angle goes CCW from v1 to v2.
            eg v1=0,1 v2=1,0 => angle=pi/2
            Note: to convert CCW to CW EITHER swap v1 and v2 OR take the negative of the result.
            </summary>
        </member>
        <member name="M:KianCommons.Plugins.DelegateUtil.GetParameterTypes``1">
            <typeparam name="TDelegate">delegate type</typeparam>
            <returns>Type[] represeting arguments of the delegate.</returns>
        </member>
        <member name="M:KianCommons.Plugins.DelegateUtil.GetMethod``1(System.Type,System.String)">
            <summary>
            Gets directly declared method based on a delegate that has
            the same name as the target method
            </summary>
            <param name="type">the class/type where the method is delcared</param>
            <param name="name">the name of the method</param>
        </member>
        <member name="M:KianCommons.Plugins.PluginExtensions.IsActive(ColossalFramework.Plugins.PluginManager.PluginInfo)">
            <summary>
            shortcut for plugin?.isEnabled ?? false
            </summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.CaseInsensetive">
            <summary></summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.IgnoreWhiteSpace">
            <summary></summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.UserModName">
            <summary>search for IUserMod.Name</summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.UserModType">
            <summary>search for the type of user mod instance excluding name space</summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.RootNameSpace">
            <summary>search for the root name space of user mod type</summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.PluginName">
            <summary>search for the PluginInfo.name</summary>
        </member>
        <member name="F:KianCommons.Plugins.PluginUtil.SearchOptionT.AssemblyName">
            <summary>search for the name of the main assembly</summary>
        </member>
        <member name="P:KianCommons.UI.UIAutoSizePanel.AutoSize2">
            <summary>auto size in the direction other than the autosize direction</summary>
        </member>
        <member name="M:KianCommons.UI.RenderUtil.DrawCutSegmentEnd(RenderManager.CameraInfo,System.UInt16,System.Single,System.Boolean,UnityEngine.Color,System.Boolean)">
            <summary>
            Draws a half sausage at segment end.
            </summary>
            <param name="segmentId"></param>
            <param name="cut">The lenght of the highlight [0~1] </param>
            <param name="bStartNode">Determines the direction of the half sausage.</param>
        </member>
        <member name="M:KianCommons.UI.TextureExtensions.GetReadableCopy(UnityEngine.Texture2D,System.Boolean)">
            <summary>
            reteurns a copy of the texture with the differenc that: mipmap=false, linear=false, readable=true;
            </summary>
        </member>
        <member name="M:KianCommons.UI.TextureUtil.CreateTextureAtlas(System.String,UnityEngine.Texture2D[])">
            <summary>
            Create a new atlas.
            </summary>
        </member>
        <member name="M:KianCommons.EnumBitMaskExtensions.ToUInt64(System.IConvertible)">
            <summary>
            can convirt any enum based on signed/unsigned integer to long
            </summary>
        </member>
        <member name="M:KianCommons.EnumBitMaskExtensions.ToInt64(System.IConvertible)">
            <summary>
            can convirt any enum based on signed/unsigned integer to long
            </summary>
        </member>
        <member name="M:KianCommons.EnumerationExtensions.Clone1``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            returns a new List of cloned items.
            </summary>
        </member>
        <member name="M:KianCommons.EnumerationExtensions.IsNullorEmpty``1(System.Collections.Generic.ICollection{``0})">
            <summary>
            fast way of determining if collection is null or empty
            </summary>
        </member>
        <member name="M:KianCommons.EnumerationExtensions.IsNullorEmpty``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            generic way of determining if IEnumerable is null or empty
            </summary>
        </member>
        <member name="P:KianCommons.HelpersExtensions.InGameOrEditor">
            <summary>
            determines if simulation is inside game/editor. useful to detect hot-reload.
            </summary>
        </member>
        <member name="P:KianCommons.HelpersExtensions.InGame">
            <summary>
            checks if game is loaded in and user is playing a city. (returns false early in the loading process)
            </summary>
        </member>
        <member name="P:KianCommons.HelpersExtensions.InAssetEditor">
            <summary>
            checks if game is loaded in asset editor mod. (returns false early in the loading process)
            </summary>
        </member>
        <member name="T:KianCommons.Log">
             <summary>
             A simple logging class.
            
             When mod activates, it creates a log file in same location as `output_log.txt`.
             Mac users: It will be in the Cities app contents.
             </summary>
        </member>
        <member name="F:KianCommons.Log.ShowLevel">
            <summary>
            Set to <c>true</c> to include log level in log entries.
            </summary>
        </member>
        <member name="F:KianCommons.Log.ShowTimestamp">
            <summary>
            Set to <c>true</c> to include timestamp in log entries.
            </summary>
        </member>
        <member name="F:KianCommons.Log.LogFileName">
            <summary>
            File name for log file.
            </summary>
        </member>
        <member name="F:KianCommons.Log.LogFilePath">
            <summary>
            Full path and file name of log file.
            </summary>
        </member>
        <member name="F:KianCommons.Log.Timer">
            <summary>
            Stopwatch used if <see cref="F:KianCommons.Log.ShowTimestamp"/> is <c>true</c>.
            </summary>
        </member>
        <member name="P:KianCommons.Log.Buffered">
            <summary>
            buffered logging is much faster but requires extra care for hot-reload/external modifications.
            to use Buffered mode with hot-reload: set when mod is enabled and unset when mod is disabled.
            IMPORTANT: Buffer must be set to false as part of cleanup (particularly for hot reload).
            Note: buffered mode is 20 times faster but only if you do not copy to game log.
            </summary>
        </member>
        <member name="M:KianCommons.Log.Flush">
            <summary>
            if buffered then lock the file and flush.
            otherwise return silently.
            </summary>
        </member>
        <member name="M:KianCommons.Log.#cctor">
            <summary>
            Initializes static members of the <see cref="T:KianCommons.Log"/> class.
            Resets log file on startup.
            </summary>
        </member>
        <member name="T:KianCommons.Log.LogLevel">
            <summary>
            Log levels. Also output in log file.
            </summary>
        </member>
        <member name="M:KianCommons.Log.Debug(System.String,System.Boolean)">
            <summary>
            Logs debug trace, only in <c>DEBUG</c> builds.
            </summary>
            <param name="message">Log entry text.</param>
            <param name="copyToGameLog">If <c>true</c> will copy to the main game log file.</param>
        </member>
        <member name="M:KianCommons.Log.Info(System.String,System.Boolean)">
            <summary>
            Logs info message.
            </summary>
            
            <param name="message">Log entry text.</param>
            <param name="copyToGameLog">If <c>true</c> will copy to the main game log file.</param>
        </member>
        <member name="M:KianCommons.Log.Error(System.String,System.Boolean)">
            <summary>
            Logs error message and also outputs a stack trace.
            </summary>
            
            <param name="message">Log entry text.</param>
            <param name="copyToGameLog">If <c>true</c> will copy to the main game log file.</param>
        </member>
        <member name="M:KianCommons.Log.LogImpl(System.String,KianCommons.Log.LogLevel,System.Boolean)">
            <summary>
            Write a message to log file.
            </summary>
            
            <param name="message">Log entry text.</param>
            <param name="level">Logging level. If set to <see cref="F:KianCommons.Log.LogLevel.Error"/> a stack trace will be appended.</param>
        </member>
        <member name="M:KianCommons.LogExtensions.LogRet``1(``0,System.String)">
            <summary>
            useful for easily debuggin inline functions
            to be used like this example:
            TYPE inlinefunctionname(...) => expression
            TYPE inlinefunctionname(...) => expression.LogRet("messege");
            </summary>
        </member>
        <member name="M:KianCommons.NetUtil.GetLaneData(System.UInt32)">
            <summary>
            returns lane data of the given lane ID.
            throws exception if unsuccessful.
            </summary>
        </member>
        <member name="M:KianCommons.NetUtil.CalculateSegmentBezier3(NetSegment@,System.Boolean)">
            Note: inverted flag or LHT does not influce the beizer.
        </member>
        <member name="M:KianCommons.NetUtil.CalculateSegmentBezier2(System.UInt16,System.Boolean)">
            <param name="startNode"> if true the bezier is inverted so that it will be facing start node</param>
            Note: inverted flag or LHT does not influce the beizer.
        </member>
        <member name="M:KianCommons.NetUtil.CalculateSegmentBezier2(System.UInt16,System.UInt16)">
            <param name="endNodeID">bezier will be facing endNodeID</param>
        </member>
        <member name="M:KianCommons.NetUtil.CalculateCorner(System.UInt16,System.UInt16,System.Boolean,UnityEngine.Vector2@,UnityEngine.Vector2@)">
            <param name="bLeft2">if other segment is to the left side of segmentID.</param>
            <param name="cornerDir">is normalized</param>
        </member>
        <member name="M:KianCommons.NetUtil.CalculateOtherCorner(System.UInt16,System.UInt16,System.Boolean,UnityEngine.Vector2@,UnityEngine.Vector2@)">
            <param name="bLeft2">if other segment is to the left side of segmentID.</param>
        </member>
        <member name="M:KianCommons.NetUtil.CalculateCorner(System.UInt16,System.UInt16,System.Boolean,UnityEngine.Vector3@,UnityEngine.Vector3@)">
            <param name="bLeft2">if other segment is to the left side of segmentID.</param>
        </member>
        <member name="P:KianCommons.NetUtil.LHT">
            <summary>
            left hand traffic (traffic drives on left like UK).
            </summary>
        </member>
        <member name="P:KianCommons.NetUtil.RHT">
            <summary>
            right hand traffic (traffic drives on right like most places).
            </summary>
        </member>
        <member name="M:KianCommons.NetUtil.IsGoingBackward(NetInfo.Direction)">
            <summary>
            checks if vehicles move backward or bypass backward (considers LHT)
            </summary>
            <returns>true if vehicles move backward,
            false if vehilces going ward, bi-directional, or non-directional</returns>
        </member>
        <member name="M:KianCommons.NetUtil.IsGoingBackward(NetInfo.Lane,System.Boolean)">
            <summary>
            checks if vehicles move backward or bypass backward (considers LHT)
            </summary>
            <returns>true if vehicles move backward,
            false if vehilces going ward, bi-directional, or non-directional</returns>
        </member>
        <member name="M:KianCommons.NetUtil.GetCCSegList(System.UInt16)">
            <summary>
            returns a counter-clockwise list of segments of the given node ID.
            </summary>
        </member>
        <member name="M:KianCommons.NetUtil.GetCWSegList(System.UInt16)">
            <summary>
            returns a clock-wise list of segments of the given node ID.
            </summary>
        </member>
        <member name="M:KianCommons.NetUtil.GetSortedLanes(System.UInt16,System.Nullable{System.Boolean},System.Nullable{NetInfo.LaneType},System.Nullable{VehicleInfo.VehicleType})">
            <summary>
            sorted from outer lane to inner lane when heading toward <paramref name="startNode"/>
            </summary>
        </member>
        <member name="F:KianCommons.LaneData.StartNode">
            <summary>true if the lane is going toward the start node of its segment (undefined for bidirectional lanes)</summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.CopyPropertiesForced``1(System.Object,System.Object)">
            <summary>
            copies fields with identical name from origin to target.
            even if the declaring types don't match.
            only copies existing fields and their types match.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.SetAllDeclaredFieldsToNull(ColossalFramework.UI.UIComponent)">
            <summary>
            call this in OnDestroy() to clear all refrences.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.GetFieldValue(System.Object,System.String)">
            <summary>
            get value of the instant field target.Field.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.GetFieldValue``1(System.String)">
            <summary>
            Get value of a static field from T.fieldName
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.GetFieldValue(System.Type,System.String)">
            <summary>
            Get value of a static field from type.fieldName
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.SetFieldValue``1(System.String,System.Object)">
            <summary>
            sets static T.fieldName to value.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.SetFieldValue(System.Type,System.String,System.Object)">
            <summary>
            sets static targetType.fieldName to value.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.SetFieldValue(System.Object,System.String,System.Object)">
            <summary>
            sets target.fieldName to value.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.GetMethod(System.Type,System.String,System.Boolean)">
            <summary>
            gets method of any access type.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.GetMethod(System.Type,System.String,System.Reflection.BindingFlags,System.Type[],System.Boolean)">
            <summary>
            gets method of any access type.
            </summary>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.InvokeMethod``1(System.String)">
            <summary>
            Invokes static method of any access type.
            like: type.method()
            </summary>
            <param name="method">static method without parameters</param>
            <returns>return value of the function if any. null otherwise</returns>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.InvokeMethod(System.Type,System.String)">
            <summary>
            Invokes static method of any access type.
            like: type.method()
            </summary>
            <param name="method">static method without parameters</param>
            <returns>return value of the function if any. null otherwise</returns>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.InvokeMethod(System.String,System.String)">
            <summary>
            Invokes static method of any access type.
            like: qualifiedType.method()
            </summary>
            <param name="method">static method without parameters</param>
            <returns>return value of the function if any. null otherwise</returns>
        </member>
        <member name="M:KianCommons.ReflectionHelpers.InvokeMethod(System.Object,System.String)">
            <summary>
            Invokes instance method of any access type.
            like: qualifiedType.method()
            </summary>
            <param name="method">instance method without parameters</param>
            <returns>return value of the function if any. null otherwise</returns>
        </member>
        <member name="M:KianCommons.StringExtensions.Remove(System.String,System.String)">
            <summary>
            returns a new string without r
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.RemoveChar(System.String,System.Char)">
            <summary>
            returns a new string without c
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.ToSTR(System.Object)">
            <summary>
            Like To string but:
             - returns "null" if object is null
             - returns string.ToSTR() if object is string.
             - recursively returns all items as string if object is IEnumerable
             - returns id and type if object is InstanceID
             - returns id and type of both key and value if obj is InstanceID->InstanceID pair
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.ToSTR(System.String)">
            <summary>
             - returns "null" if string is null
             - returns "empty" if string is empty
             - returns string otherwise.
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.ToSTR(InstanceID)">
            <summary>
            returns id and type of InstanceID
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.ToSTR(System.Collections.Generic.KeyValuePair{InstanceID,InstanceID})">
            <summary>
            returns id and type of both key and value
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.ToSTR(System.Collections.IEnumerable)">
            <summary>
            returns all items as string
            </summary>
        </member>
        <member name="M:KianCommons.StringExtensions.ToSTR``1(System.Collections.IEnumerable,System.String)">
            <summary>
            prints all items of the list with the given format.
            throws exception if T.ToString(format) does not exists.
            </summary>
        </member>
        <member name="T:ThisAssembly">
            <summary>Provides access to the current assembly information.</summary>
        </member>
        <member name="T:ThisAssembly.Git">
            <summary>Provides access to the git information for the current assembly.</summary>
        </member>
        <member name="F:ThisAssembly.Git.IsDirty">
            <summary>IsDirty: true</summary>
        </member>
        <member name="F:ThisAssembly.Git.IsDirtyString">
            <summary>IsDirtyString: true</summary>
        </member>
        <member name="F:ThisAssembly.Git.RepositoryUrl">
            <summary>Repository URL: https://github.com/kianzarrin/UnifiedUI</summary>
        </member>
        <member name="F:ThisAssembly.Git.Branch">
            <summary>Branch: master</summary>
        </member>
        <member name="F:ThisAssembly.Git.Commit">
            <summary>Commit: 50c3904</summary>
        </member>
        <member name="F:ThisAssembly.Git.Sha">
            <summary>Sha: 50c390401ddf01a425e3b0024348866778f0337a</summary>
        </member>
        <member name="F:ThisAssembly.Git.CommitDate">
            <summary>Commit date: 2022-04-23T18:51:06+03:00</summary>
        </member>
        <member name="F:ThisAssembly.Git.Commits">
            <summary>Commits on top of base version: 2</summary>
        </member>
        <member name="F:ThisAssembly.Git.Tag">
            <summary>Tag: V2.2.9-2-g50c3904</summary>
        </member>
        <member name="F:ThisAssembly.Git.BaseTag">
            <summary>Base tag: V2.2.9</summary>
        </member>
        <member name="T:ThisAssembly.Git.BaseVersion">
            <summary>Provides access to the base version information used to determine the <see cref="T:ThisAssembly.Git.SemVer" />.</summary>      
        </member>
        <member name="F:ThisAssembly.Git.BaseVersion.Major">
            <summary>Major: 2</summary>
        </member>
        <member name="F:ThisAssembly.Git.BaseVersion.Minor">
            <summary>Minor: 2</summary>
        </member>
        <member name="F:ThisAssembly.Git.BaseVersion.Patch">
            <summary>Patch: 9</summary>
        </member>
        <member name="T:ThisAssembly.Git.SemVer">
            <summary>Provides access to SemVer information for the current assembly.</summary>
        </member>
        <member name="F:ThisAssembly.Git.SemVer.Major">
            <summary>Major: 2</summary>
        </member>
        <member name="F:ThisAssembly.Git.SemVer.Minor">
            <summary>Minor: 2</summary>
        </member>
        <member name="F:ThisAssembly.Git.SemVer.Patch">
            <summary>Patch: 11</summary>
        </member>
        <member name="F:ThisAssembly.Git.SemVer.Label">
            <summary>Label: </summary>
        </member>
        <member name="F:ThisAssembly.Git.SemVer.DashLabel">
            <summary>Label with dash prefix: </summary>
        </member>
        <member name="F:ThisAssembly.Git.SemVer.Source">
            <summary>Source: Tag</summary>
        </member>
    </members>
</doc>
