Branch

Create

 //create new branch
 public static int Branch_Create(SPData sPData)

Delete

 //Delete branch
 public static void Delete_Branch(SPData sPData, int branchKey)

Merge

 //merge branch
 public static int Branch_Merge(SPData sPData, int branchKey1, int branchKey2)

Reverse

 //Reverse branch
 public static void Branch_Reverse(SPData sPData, int branchKey)

Selected Node

 //get the selected branch
 public static Branch Branch_Selected(this SPData sPData)

Add Node

 //Add node in the beginning
 public static void Branch_Add_Node_Beginning(SPData sPData, int branchKey, Node nodeToAdd)

 //Add node in the end
 public static void Branch_Add_Node_End(SPData sPData, int branchKey, Node nodeToAdd)

 //Add node at index
 public static void  Branch_Add_Node_At_Index(SPData sPData, int branchKey, Node nodeToAdd,   int index)

Break

 //break branch at the node provided
 public static void Branch_Break(SPData sPData, Node node)

Length

 //get branch length
 public static float Branch_Get_Length(SPData sPData, int branchKey)

Nodes

 // get branch nodes list
 public static List<Node> Branch_Get_Nodes(SPData sPData, int branchKey)

Normals

 //get branch normals list
 public static List<Vector3> Branch_Get_Normals(SPData sPData,int branchKey)

Tangents

 //get branch tangents list
 public static List<Vector3> Branch_Get_Tangents(SPData sPData,int branchKey)

Vertices

 //get branch vertics list
 public static List<Vector3> Branch_Get_Vertices(SPData sPData,int branchKey)