本文整理汇总了C#中GuiRenderer.AddCircle方法的典型用法代码示例。如果您正苦于以下问题:C# GuiRenderer.AddCircle方法的具体用法?C# GuiRenderer.AddCircle怎么用?C# GuiRenderer.AddCircle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GuiRenderer
的用法示例。
在下文中一共展示了GuiRenderer.AddCircle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnRenderUI
protected override void OnRenderUI(GuiRenderer renderer)
{
Rect r = new Rect();
var pos = this.GetScreenPosition();
var sz = this.GetScreenSize();
r.Left = pos.X;
r.Right = r.Left + sz.X;
r.Top = pos.Y;
r.Bottom = r.Top + sz.Y;
if (mBorderRadius.Value != Vec2.Zero)
{
#if DebugDraw
ColorValue debugColor = new ColorValue(0f, 1f, 0f, .5f);
ColorValue debugColor2 = new ColorValue(0f, 0f, 1f, .5f);
#endif
Vec2 screenRelRad = this.ScreenFromValue(mBorderRadius);
// By using clipping and a set of 3 rectangles, we ensure that each point
// on the screen is only drawn once, thus allowing the alpha value to be
// used in the color without it looking weird.
// Top-Left
#if DebugDraw
renderer.AddCircle(r.LeftTop + screenRelRad, debugColor, screenRelRad, (float)Math.PI, (float)(Math.PI * 1.5f));
#else
renderer.AddCircle(r.LeftTop + screenRelRad, mColor, screenRelRad, (float)Math.PI, (float)(Math.PI * 1.5f));
#endif
// Top-Right
#if DebugDraw
renderer.AddCircle(new Vec2(r.Right - screenRelRad.X, r.Top + screenRelRad.Y), debugColor, screenRelRad, (float)(Math.PI * 1.5f));
#else
renderer.AddCircle(new Vec2(r.Right - screenRelRad.X, r.Top + screenRelRad.Y), mColor, screenRelRad, (float)(Math.PI * 1.5f));
#endif
// Bottom-Right
#if DebugDraw
renderer.AddCircle(new Vec2(r.Right - screenRelRad.X, r.Bottom - screenRelRad.Y), debugColor, screenRelRad, 0f, (float)(Math.PI * 0.5f));
#else
renderer.AddCircle(new Vec2(r.Right - screenRelRad.X, r.Bottom - screenRelRad.Y), mColor, screenRelRad, 0f, (float)(Math.PI * 0.5f));
#endif
// Bottom-Left
#if DebugDraw
renderer.AddCircle(new Vec2(r.Left + screenRelRad.X, r.Bottom - screenRelRad.Y), debugColor, screenRelRad, (float)(Math.PI * 0.5), (float)Math.PI);
#else
renderer.AddCircle(new Vec2(r.Left + screenRelRad.X, r.Bottom - screenRelRad.Y), mColor, screenRelRad, (float)(Math.PI * 0.5), (float)Math.PI);
#endif
// Middle-Middle
#if DebugDraw
renderer.AddQuad(new Rect(r.Left, r.Top + screenRelRad.Y, r.Right, r.Bottom - screenRelRad.Y), debugColor2);
#else
renderer.AddQuad(new Rect(r.Left, r.Top + screenRelRad.Y, r.Right, r.Bottom - screenRelRad.Y), mColor);
#endif
// Middle-Top
renderer.AddQuad(new Rect(r.Left + screenRelRad.X, r.Top, r.Right - screenRelRad.X, r.Top + screenRelRad.Y), mColor);
// Middle-Bottom
renderer.AddQuad(new Rect(r.Left + screenRelRad.X, r.Bottom - screenRelRad.Y, r.Right - screenRelRad.X, r.Bottom), mColor);
if (mBorderWidth.Value != Vec2.Zero)
{
Vec2 screenRel = this.ScreenFromValue(mBorderWidth);
float xHalfWidth = screenRel.X / 2;
float yHalfWidth = screenRel.Y / 2;
// Top
renderer.AddQuad(new Rect(r.Left + screenRelRad.X, r.Top + yHalfWidth, r.Right - screenRelRad.X, r.Top - yHalfWidth), mBorderColor);
// Right
renderer.AddQuad(new Rect(r.Right - xHalfWidth, r.Top + screenRelRad.Y, r.Right + xHalfWidth, r.Bottom - screenRelRad.Y), mBorderColor);
// Bottom
renderer.AddQuad(new Rect(r.Left + screenRelRad.X, r.Bottom - yHalfWidth, r.Right - screenRelRad.X, r.Bottom + yHalfWidth), mBorderColor);
// Left
renderer.AddQuad(new Rect(r.Left - xHalfWidth, r.Top + screenRelRad.Y, r.Left + xHalfWidth, r.Bottom - screenRelRad.Y), mBorderColor);
// Top-Left
BezierCurve curve = new BezierCurve();
curve.AddValue(0, new Vec3(r.Left, r.Top + screenRelRad.Y, 0f));
curve.AddValue(1, new Vec3(r.LeftTop, 0f));
curve.AddValue(2, new Vec3(r.Left + screenRelRad.X, r.Top, 0f));
renderer.AddTriangles(LineRenderer.GenerateTrianglesFromCurve(renderer, curve, 0.1f, screenRel, mBorderColor));
// Top-Right
curve = new BezierCurve();
curve.AddValue(0, new Vec3(r.Right - screenRelRad.X, r.Top, 0f));
curve.AddValue(1, new Vec3(r.RightTop, 0f));
curve.AddValue(2, new Vec3(r.Right, r.Top + screenRelRad.Y, 0f));
renderer.AddTriangles(LineRenderer.GenerateTrianglesFromCurve(renderer, curve, 0.1f, screenRel, mBorderColor));
// Bottom-Right
curve = new BezierCurve();
curve.AddValue(0, new Vec3(r.Right, r.Bottom - screenRelRad.Y, 0f));
curve.AddValue(1, new Vec3(r.RightBottom, 0f));
curve.AddValue(2, new Vec3(r.Right - screenRelRad.X, r.Bottom, 0f));
renderer.AddTriangles(LineRenderer.GenerateTrianglesFromCurve(renderer, curve, 0.1f, screenRel, mBorderColor));
// Bottom-Left
curve = new BezierCurve();
//.........这里部分代码省略.........