예제 #1
0
 public void OnMouseSelection(Rect selection, Pipe.HandleSelected handleCallback)
 {
     if (pipe_gizmos != null && drawGizmos)
     {
         pipe_gizmos.OnMouseSelection(selection);
         pipe_layout_to_mesh.OnMouseSelection(selection, handleCallback);
     }
 }
예제 #2
0
 public void OnMoveHandle(Vector3 delta_pos, Pipe.HandleSelected handleCallback)
 {
     for (int i = 0; i < selected_vertices.Count; i++)
     {
         if (selected_vertices[i] != Vector3.zero)
         {
             vertices [i]         -= delta_pos;
             selected_vertices [i] = vertices [i];
         }
     }
     pipe_layout.heading_pos -= (delta_pos * 2);
 }
예제 #3
0
        private void setHandleToAverage(List <Vector3> vector_list, Pipe.HandleSelected handleCallback)
        {
            if (vector_list.Count > 0 && handleCallback != null)
            {
                //not Average but the min and max's halfway point
                Vector3 average_vector = new Vector3(
                    vector_list.Average(x => x.x),
                    vector_list.Average(x => x.y),
                    vector_list.Average(x => x.z)
                    );

                setHandlePosition(average_vector, handleCallback);
            }
        }
예제 #4
0
        public void OnMouseSelection(Rect selection, Pipe.HandleSelected handleCallback)
        {
            selected_vertices = Enumerable.Repeat(Vector3.zero, vertices.Count).ToList();
            List <Vector3> only_selected = new List <Vector3> ();

            for (int i = 0; i < vertices.Count; i++)
            {
                if (Camera.current != null)
                {
                    Vector2 screen_position = Camera.current.WorldToScreenPoint(vertices [i]);
                    if (selection.Contains(new Vector2(screen_position.x, Screen.height - screen_position.y), true))
                    {
                        selected_vertices [i] = vertices [i];
                        only_selected.Add(vertices [i]);
                    }
                }
            }
            setHandleToAverage(only_selected, handleCallback);
        }
예제 #5
0
 public void OnMoveHandle(Vector3 delta_pos, Pipe.HandleSelected handleCallback)
 {
     pipe_gizmos.OnMoveHandle(delta_pos);
     pipe_layout_to_mesh.OnMoveHandle(delta_pos, handleCallback);
     //UpdateLayout ();
 }
예제 #6
0
 private void setHandlePosition(Vector3 position, Pipe.HandleSelected handleCallback)
 {
     handleCallback(position);
 }