public static void Draw <C>(QuaternionMsg message, Drawing3d drawing, GameObject drawAtPosition = null, float size = 0.1f, bool drawUnityAxes = false) where C : ICoordinateSpace, new() { Vector3 position = drawAtPosition != null ? drawAtPosition.transform.position : Vector3.zero; VisualizationUtils.DrawAxisVectors <C>(drawing, position.To <C>(), message, size, drawUnityAxes); }
public void OnChanged(TFStream stream) { Drawing3d drawing; if (!drawings.TryGetValue(stream.Name, out drawing)) { drawing = Drawing3d.Create(); drawings[stream.Name] = drawing; if (stream.Parent != null) { OnChanged(stream.Parent); Drawing3d parentStream; if (drawings.TryGetValue(stream.Parent.Name, out parentStream)) { drawing.transform.parent = parentStream.transform; } } } TFFrame frame = stream.GetLocalTF(); drawing.transform.localPosition = frame.translation; drawing.transform.localRotation = frame.rotation; drawing.Clear(); EnsureSettings(stream); if (m_ShowAxes[stream]) { VisualizationUtils.DrawAxisVectors <FLU>(drawing, Vector3.zero.To <FLU>(), Quaternion.identity.To <FLU>(), axesScale, false); } if (m_ShowLinks[stream]) { drawing.DrawLine(Quaternion.Inverse(frame.rotation) * -frame.translation, Vector3.zero, color, lineThickness); } if (m_ShowNames[stream]) { drawing.DrawLabel(stream.Name, Vector3.zero, color); } }
public static void Draw <C>(QuaternionMsg message, Drawing3d drawing, Vector3 position, float size = 0.1f, bool drawUnityAxes = false) where C : ICoordinateSpace, new() { VisualizationUtils.DrawAxisVectors <C>(drawing, position.To <C>(), message, size, drawUnityAxes); }