mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-01-04 20:38:24 -05:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
57 lines
2.1 KiB
C#
57 lines
2.1 KiB
C#
namespace Sandbox;
|
|
|
|
public partial class DebugOverlaySystem
|
|
{
|
|
/// <summary>
|
|
/// Draw a frustum
|
|
/// </summary>
|
|
public void Frustum( Frustum frustum, Color color = new Color(), float duration = 0, Transform transform = default, bool overlay = false )
|
|
{
|
|
if ( transform == default ) transform = Transform.Zero;
|
|
if ( color == default ) color = Color.White;
|
|
|
|
var c0 = frustum.GetCorner( 0 ) ?? Vector3.Zero;
|
|
var c1 = frustum.GetCorner( 1 ) ?? Vector3.Zero;
|
|
var c2 = frustum.GetCorner( 2 ) ?? Vector3.Zero;
|
|
var c3 = frustum.GetCorner( 3 ) ?? Vector3.Zero;
|
|
var c4 = frustum.GetCorner( 4 ) ?? Vector3.Zero;
|
|
var c5 = frustum.GetCorner( 5 ) ?? Vector3.Zero;
|
|
var c6 = frustum.GetCorner( 6 ) ?? Vector3.Zero;
|
|
var c7 = frustum.GetCorner( 7 ) ?? Vector3.Zero;
|
|
|
|
var so = new SceneDynamicObject( Scene.SceneWorld );
|
|
so.Transform = transform;
|
|
so.Material = LineMaterial;
|
|
so.Flags.CastShadows = false;
|
|
so.RenderLayer = overlay ? SceneRenderLayer.OverlayWithoutDepth : SceneRenderLayer.OverlayWithDepth;
|
|
so.Init( Graphics.PrimitiveType.Lines );
|
|
|
|
so.AddVertex( new Vertex( c0, color ) );
|
|
so.AddVertex( new Vertex( c1, color ) );
|
|
so.AddVertex( new Vertex( c1, color ) );
|
|
so.AddVertex( new Vertex( c2, color ) );
|
|
so.AddVertex( new Vertex( c2, color ) );
|
|
so.AddVertex( new Vertex( c3, color ) );
|
|
so.AddVertex( new Vertex( c3, color ) );
|
|
so.AddVertex( new Vertex( c0, color ) );
|
|
so.AddVertex( new Vertex( c4, color ) );
|
|
so.AddVertex( new Vertex( c5, color ) );
|
|
so.AddVertex( new Vertex( c5, color ) );
|
|
so.AddVertex( new Vertex( c6, color ) );
|
|
so.AddVertex( new Vertex( c6, color ) );
|
|
so.AddVertex( new Vertex( c7, color ) );
|
|
so.AddVertex( new Vertex( c7, color ) );
|
|
so.AddVertex( new Vertex( c4, color ) );
|
|
so.AddVertex( new Vertex( c0, color ) );
|
|
so.AddVertex( new Vertex( c4, color ) );
|
|
so.AddVertex( new Vertex( c1, color ) );
|
|
so.AddVertex( new Vertex( c5, color ) );
|
|
so.AddVertex( new Vertex( c2, color ) );
|
|
so.AddVertex( new Vertex( c6, color ) );
|
|
so.AddVertex( new Vertex( c3, color ) );
|
|
so.AddVertex( new Vertex( c7, color ) );
|
|
|
|
Add( duration, so );
|
|
}
|
|
}
|