2 using System.Collections.Generic;
6 namespace droid.Runtime.Utilities.Misc.Drawing {
20 Material _line_mat = null;
25 GameObject _main_point = null;
27 [SerializeField]
float _offset = 0.3f;
32 GameObject[] _points = null;
34 [SerializeField] Vector3[] _vec3_points = null;
37 void DrawConnectingLines(IReadOnlyCollection<Tuple<Vector3, Vector3>> vec_pairs) {
38 if (vec_pairs.Count > 0) {
40 foreach (var point
in vec_pairs) {
41 var main_point_pos = point.Item1;
42 var point_pos = point.Item2;
45 this._line_mat.SetPass(0);
46 GL.Color(
new Color(this._line_mat.color.r,
47 this._line_mat.color.g,
48 this._line_mat.color.b,
49 this._line_mat.color.a));
50 GL.Vertex3(main_point_pos.x, main_point_pos.y, main_point_pos.z);
51 GL.Vertex3(point_pos.x, point_pos.y, point_pos.z);
53 GL.Vertex3(point_pos.x -
this._offset, point_pos.y, point_pos.z);
54 GL.Vertex3(point_pos.x, point_pos.y -
this._offset, point_pos.z);
55 GL.Vertex3(point_pos.x, point_pos.y, point_pos.z -
this._offset);
56 GL.Vertex3(point_pos.x +
this._offset, point_pos.y, point_pos.z);
57 GL.Vertex3(point_pos.x, point_pos.y +
this._offset, point_pos.z);
58 GL.Vertex3(point_pos.x, point_pos.y, point_pos.z +
this._offset);
67 this._vec3_points = this._points.Select(v => v.transform.position).ToArray();
68 var s = this._vec3_points
69 .Select(v =>
new Tuple<Vector3, Vector3>(this._main_point.transform.position, v)).ToArray();
70 this.DrawConnectingLines(s);
75 this._vec3_points = this._points.Select(v => v.transform.position).ToArray();
76 var s = this._vec3_points
77 .Select(v =>
new Tuple<Vector3, Vector3>(this._main_point.transform.position, v)).ToArray();
78 this.DrawConnectingLines(s);