private void add_to_local_list(edge_store e, triangle_store t) { //____________________________________________________________________________________________________________________________________________________________________ // !! Addition on main list here //Form1.planar_object_store.point2d spt = local_input_points.Find(obj => obj.Equals(new Form1.planar_object_store.point2d(e.start_pt.pt_id, e.start_pt.x, e.start_pt.y))); //Form1.planar_object_store.point2d ept = local_input_points.Find(obj => obj.Equals(new Form1.planar_object_store.point2d(-1, e.end_pt.x, e.end_pt.y))); Form1.planar_object_store.edge2d temp_edge = new Form1.planar_object_store.edge2d(e.edge_id, e.start_pt.get_parent_data_type, e.end_pt.get_parent_data_type); local_output_edges.Add(temp_edge); if (t != null) { Form1.planar_object_store.face2d temp_face = new Form1.planar_object_store.face2d(t.tri_id, t.p1.get_parent_data_type, t.p2.get_parent_data_type, t.p3.get_parent_data_type); local_output_triangle.Add(temp_face); } // ################################################################# Form1.planar_object_store.instance_tracker temp_edge_tracker = new Form1.planar_object_store.instance_tracker(); temp_edge_tracker.edge_list = new List <Form1.planar_object_store.edge2d>(); temp_edge_tracker.edge_list.AddRange(local_output_edges); temp_edge_tracker.face_list = new List <Form1.planar_object_store.face2d>(); temp_edge_tracker.face_list.AddRange(local_output_triangle); local_history_tracker.Add(temp_edge_tracker); // ################################################################# }
private void delete_from_local_list(edge_store e, int t1_id, int t2_id) { Form1.planar_object_store.edge2d temp_edge, temp_edge_sym; int rem_index; // edge e // !! removal on main list here temp_edge = new Form1.planar_object_store.edge2d(e.edge_id, e.start_pt.get_parent_data_type, e.end_pt.get_parent_data_type); temp_edge_sym = new Form1.planar_object_store.edge2d(e.edge_id, e.end_pt.get_parent_data_type, e.start_pt.get_parent_data_type); rem_index = local_output_edges.FindIndex(obj => obj.Equals(temp_edge) || obj.Equals(temp_edge_sym)); if (rem_index != -1) { local_output_edges.RemoveAt(rem_index); // !! Deletion on main list here if (t1_id != -1 || t2_id != -1) // Check whether triangle need to be removed { if (t1_id < t2_id) // swap to remove in order { int temp = t1_id; t1_id = t2_id; t2_id = temp; } if (t1_id != -1) { int t1_index = local_output_triangle.FindIndex(obj => obj.face_id == triangle_list[t1_id].tri_id); local_output_triangle.RemoveAt(t1_index); } if (t2_id != -1) { int t2_index = local_output_triangle.FindIndex(obj => obj.face_id == triangle_list[t2_id].tri_id); local_output_triangle.RemoveAt(t2_index); } } // ################################################################# Form1.planar_object_store.instance_tracker temp_edge_tracker = new Form1.planar_object_store.instance_tracker(); temp_edge_tracker.edge_list = new List <Form1.planar_object_store.edge2d>(); temp_edge_tracker.edge_list.AddRange(local_output_edges); temp_edge_tracker.face_list = new List <Form1.planar_object_store.face2d>(); temp_edge_tracker.face_list.AddRange(local_output_triangle); local_history_tracker.Add(temp_edge_tracker); // ################################################################# } }
private void add_to_local_trianlge_list(triangle_store t) { //____________________________________________________________________________________________________________________________________________________________________ // !! Addition on main list here Form1.planar_object_store.face2d temp_face = new Form1.planar_object_store.face2d(t.tri_id, t.pt1.get_parent_data_type, t.pt2.get_parent_data_type, t.pt3.get_parent_data_type); local_output_triangle.Add(temp_face); // ################################################################# Form1.planar_object_store.instance_tracker temp_edge_tracker = new Form1.planar_object_store.instance_tracker(); temp_edge_tracker.edge_list = new List <Form1.planar_object_store.edge2d>(); temp_edge_tracker.edge_list.AddRange(local_output_edges); temp_edge_tracker.face_list = new List <Form1.planar_object_store.face2d>(); temp_edge_tracker.face_list.AddRange(local_output_triangle); local_history_tracker.Add(temp_edge_tracker); // ################################################################# }
private void remove_from_local_trianlge_list(triangle_store t) { //____________________________________________________________________________________________________________________________________________________________________ // !! Addition on main list here Form1.planar_object_store.face2d temp_face = new Form1.planar_object_store.face2d(t.tri_id, t.pt1.get_parent_data_type, t.pt2.get_parent_data_type, t.pt3.get_parent_data_type); int temp_id = local_output_triangle.FindLastIndex(obj => obj.face_id == t.tri_id); local_output_triangle.RemoveAt(temp_id); //local_output_triangle.Remove(temp_face); // ################################################################# Form1.planar_object_store.instance_tracker temp_edge_tracker = new Form1.planar_object_store.instance_tracker(); temp_edge_tracker.edge_list = new List <Form1.planar_object_store.edge2d>(); temp_edge_tracker.edge_list.AddRange(local_output_edges); temp_edge_tracker.face_list = new List <Form1.planar_object_store.face2d>(); temp_edge_tracker.face_list.AddRange(local_output_triangle); local_history_tracker.Add(temp_edge_tracker); // ################################################################# }