public static void DrawDirection(Vector2 p, Vector2 d, string text, Color col) { #if UNITY_EDITOR if (!enabled) { return; } GizmoLabel.LabelDirection(text, Utils.ToV3(p), Utils.ToV3(d), col, 1); #endif }
public static void LabelNode(Node node) { #if UNITY_EDITOR if (!enabled) { return; } GizmoLabel.Label("Node " + node.id, Utils.ToV3(node.position)); #endif }
public static void DrawDirection(Vector3 p, Vector3 d, string text, Color col) { #if UNITY_EDITOR if (!enabled) { return; } GizmoLabel.LabelDirection(text, p, d, col, 1); #endif }
public static void DrawLabel(Vector2 p, string text) { #if UNITY_EDITOR if (!enabled) { return; } GizmoLabel.Label(text, Utils.ToV3(p)); #endif }
public static void DrawShapeNodes(Shape shape) { #if UNITY_EDITOR if (shape == null) { return; } int baseShapeSize = shape.baseShape.Length; for (int i = 0; i < baseShapeSize; i++) { Debug.DrawLine(Utils.ToV3(shape.baseShape[i]), Utils.ToV3(shape.baseShape[(i + 1) % baseShapeSize]), new Color(1, 1, 1, 0.5f));//base shape } // for (int i = 0; i < shape.liveNodeCount; i++) // Debug.DrawLine(Utils.ToV3(shape.liveNodes[i].position), Utils.ToV3(shape.liveNodes[(i + 1) % shape.liveNodeCount].position), new Color(0, 1, 0, 0.3f)); // if(shape.terminatedNodeCount == shape.staticNodeCount) // Debug.Log(shape.staticNodeCount); for (int i = 0; i < shape.liveNodeCount; i++) { Node nodeA = shape.LiveNode(i); // Node nodeB = shape.LiveNode((i + 1) % shape.liveNodeCount); // if (nodeA.earlyTemination || nodeB.earlyTemination) // Debug.DrawLine(Utils.ToV3(nodeA.position), Utils.ToV3(nodeB.position), new Color(1, 1, 0, 0.8f)); if (shape.formingEdges.ContainsKey(nodeA)) { Debug.DrawLine(Utils.ToV3(shape.formingEdges[nodeA].nodeA.position), Utils.ToV3(shape.formingEdges[nodeA].nodeB.position), new Color(1, 0, 1, 0.5f));//forming edges } } for (int e = 0; e < shape.liveEdges.Count; e++) { Edge liveEdge = shape.liveEdges[e]; Debug.DrawLine(Utils.ToV3(liveEdge.nodeA.position), Utils.ToV3(liveEdge.nodeB.position), new Color(1, 0, 0, 0.5f));//live edges } for (int s = 0; s < shape.edges.Count; s++) { Node nodeA = shape.edges[s].nodeA; Node nodeB = shape.edges[s].nodeB; Debug.DrawLine(Utils.ToV3(nodeA.position), Utils.ToV3(nodeB.position), new Color(0, 1, 1, 0.5f)); //internal shape GizmoLabel.Label(nodeA.ToString(), Utils.ToV3(nodeA.position) + Vector3.up * s * 0.1f, 2); //static nodes GizmoLabel.Label(nodeB.ToString(), Utils.ToV3(nodeB.position) + Vector3.up * s * 0.1f, 2); //static nodes } for (int i = 0; i < shape.liveNodeCount; i++) { GizmoLabel.Label("Live Node " + shape.LiveNode(i).id, Utils.ToV3(shape.LiveNode(i).position - shape.LiveNode(i).direction), 2);//live nodes Debug.DrawLine(Utils.ToV3(shape.LiveNode(i).position), Utils.ToV3(shape.LiveNode(i).position - shape.LiveNode(i).direction), Color.yellow); Debug.DrawLine(Utils.ToV3(shape.LiveNode(i).position), Utils.ToV3(shape.LiveNode(i).position + shape.LiveNode(i).direction *shape.LiveNode(i).distance), new Color(1, 1, 0, 0.2f)); Debug.DrawLine(Utils.ToV3(shape.LiveNode(i).previousPosition), Utils.ToV3(shape.LiveNode(i).previousPosition) + Vector3.up, Color.green); } for (int i = 0; i < shape.staticNodeCount; i++) { GizmoLabel.Label("Static Node " + shape.StaticNode(i).id, Utils.ToV3(shape.StaticNode(i).position) + Vector3.up, 2); //static nodes // Debug.DrawLine(Utils.ToV3(shape.StaticNode(i).position), Utils.ToV3(shape.StaticNode(i).position) + Vector3.up, Color.white); } // for (int i = 0; i < shape.edges.Count; i++) // { // Debug.DrawLine(Utils.ToV3(shape.baseEdges[i].nodeA.position), Utils.ToV3(shape.baseEdges[i].nodeB.position), Color.green);//live edges // } #endif }