Add DebugDraw::DrawLine with separate start/end colors
This commit is contained in:
@@ -938,6 +938,26 @@ void DebugDraw::DrawLine(const Vector3& start, const Vector3& end, const Color&
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DebugDraw::DrawLine(const Vector3& start, const Vector3& end, const Color& startColor, const Color& endColor, float duration, bool depthTest)
|
||||||
|
{
|
||||||
|
const Float3 startF = start - Context->Origin, endF = end - Context->Origin;
|
||||||
|
auto& debugDrawData = depthTest ? Context->DebugDrawDepthTest : Context->DebugDrawDefault;
|
||||||
|
if (duration > 0)
|
||||||
|
{
|
||||||
|
// TODO: separate start/end colors for persistent lines
|
||||||
|
DebugLine l = { startF, endF, Color32(startColor), duration };
|
||||||
|
debugDrawData.DefaultLines.Add(l);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Vertex l = { startF, Color32(startColor) };
|
||||||
|
debugDrawData.OneFrameLines.Add(l);
|
||||||
|
l.Position = endF;
|
||||||
|
l.Color = Color32(endColor);
|
||||||
|
debugDrawData.OneFrameLines.Add(l);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DebugDraw::DrawLines(const Span<Float3>& lines, const Matrix& transform, const Color& color, float duration, bool depthTest)
|
void DebugDraw::DrawLines(const Span<Float3>& lines, const Matrix& transform, const Color& color, float duration, bool depthTest)
|
||||||
{
|
{
|
||||||
if (lines.Length() == 0)
|
if (lines.Length() == 0)
|
||||||
|
|||||||
@@ -79,6 +79,17 @@ API_CLASS(Static) class FLAXENGINE_API DebugDraw
|
|||||||
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
||||||
API_FUNCTION() static void DrawLine(const Vector3& start, const Vector3& end, const Color& color, float duration = 0.0f, bool depthTest = true);
|
API_FUNCTION() static void DrawLine(const Vector3& start, const Vector3& end, const Color& color, float duration = 0.0f, bool depthTest = true);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Draws the line.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="start">The start point.</param>
|
||||||
|
/// <param name="end">The end point.</param>
|
||||||
|
/// <param name="startColor">The color of the start point.</param>
|
||||||
|
/// <param name="endColor">The color of the end point.</param>
|
||||||
|
/// <param name="duration">The duration (in seconds). Use 0 to draw it only once.</param>
|
||||||
|
/// <param name="depthTest">If set to <c>true</c> depth test will be performed, otherwise depth will be ignored.</param>
|
||||||
|
API_FUNCTION() static void DrawLine(const Vector3& start, const Vector3& end, const Color& startColor, const Color& endColor, float duration = 0.0f, bool depthTest = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Draws the lines. Line positions are located one after another (e.g. l0.start, l0.end, l1.start, l1.end,...).
|
/// Draws the lines. Line positions are located one after another (e.g. l0.start, l0.end, l1.start, l1.end,...).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user