static void DrawSlidingLine(Vector3D startPosition, Vector3D endPosition, Color color1, Color color2)
{
float pieceLength = 0.1f;
float lineLength = Vector3.Distance(startPosition, endPosition);
Vector3D lineDir = Vector3D.Normalize(endPosition - startPosition);
Vector3D delta = lineDir * pieceLength;
Color currentColor = color1;
Vector3D min = Vector3D.Min(startPosition, endPosition);
Vector3D max = Vector3D.Max(startPosition, endPosition);
float startOffset = SlidingOffset - (pieceLength * 2.0f) * ((int)(SlidingOffset / (pieceLength * 2.0f))) - 2 * pieceLength;
Vector3D currentPos = startPosition + startOffset * lineDir;
float actualLength = 0;
while (actualLength < lineLength)
{
MyRenderProxy.DebugDrawLine3D(Vector3D.Clamp(currentPos, min, max), Vector3D.Clamp(currentPos + delta, min, max), currentColor, currentColor, false);
if (currentColor == color1)
{
currentColor = color2;
}
else
{
currentColor = color1;
}
actualLength += pieceLength;
currentPos += delta;
}
//MyRenderProxy.DebugDrawLine3D(startPosition, endPosition, color1, color2, false);
}