public static void DrawEffectExcitation(RectangleBox rect, RGBAColor col, double intensity, double depth = -1.0) { if (Globals.enableeffects) { UpdateDepth(depth); SetBlendMode(BlendModes.Add); Gl.glPushMatrix(); Gl.glTranslated(rect.left, rect.bottom, currentdepth); double left = rect.Width * (1.0 - intensity); Gl.glBegin(Gl.GL_TRIANGLE_FAN); glColor4d(col.Fade(0)); Gl.glVertex2d(left, 0); Gl.glVertex2d(left, rect.Height); glColor4d(col.Fade(0.5)); Gl.glVertex2d(0.2 * left + 0.8 * rect.Width, rect.Height); Gl.glVertex2d(0.2 * left + 0.8 * rect.Width, 0); Gl.glEnd(); Gl.glBegin(Gl.GL_TRIANGLE_FAN); glColor4d(col.Fade(0.5)); Gl.glVertex2d(0.2 * left + 0.8 * rect.Width, 0); Gl.glVertex2d(0.2 * left + 0.8 * rect.Width, rect.Height); glColor4d(col); Gl.glVertex2d(rect.Width, rect.Height); Gl.glVertex2d(rect.Width, 0); Gl.glEnd(); Gl.glPopMatrix(); SetBlendMode(BlendModes.Normal); } }
public static void DrawRectangle(RectangleBox rect, RGBAColor col, double borderwidth, double depth = -1.0, bool outer = false, bool glow = false) { UpdateDepth(depth); Gl.glPushMatrix(); Gl.glTranslated(rect.left, rect.bottom, currentdepth); glColor4d(col); double rectw = rect.right - rect.left, recth = rect.top - rect.bottom; double borderwidthr = outer?-borderwidth:borderwidth; if (borderwidth <= 0) { Gl.glBegin(Gl.GL_TRIANGLE_FAN); Gl.glVertex2d(0, 0); Gl.glVertex2d(rectw, 0); Gl.glVertex2d(rectw, recth); Gl.glVertex2d(0, recth); Gl.glEnd(); } else { Gl.glBegin(Gl.GL_TRIANGLE_FAN); Gl.glVertex2d(0, 0); Gl.glVertex2d(rectw, 0); if (glow) { glColor4d(col.Fade(0.0)); } Gl.glVertex2d(rectw - borderwidthr, borderwidthr); Gl.glVertex2d(borderwidthr, borderwidthr); Gl.glVertex2d(borderwidthr, recth - borderwidthr); if (glow) { glColor4d(col); } Gl.glVertex2d(0, recth); Gl.glEnd(); Gl.glBegin(Gl.GL_TRIANGLE_FAN); Gl.glVertex2d(rectw, recth); Gl.glVertex2d(rectw, 0); if (glow) { glColor4d(col.Fade(0.0)); } Gl.glVertex2d(rectw - borderwidthr, borderwidthr); Gl.glVertex2d(rectw - borderwidthr, recth - borderwidthr); Gl.glVertex2d(borderwidthr, recth - borderwidthr); if (glow) { glColor4d(col); } Gl.glVertex2d(0, recth); Gl.glEnd(); } Gl.glPopMatrix(); }
public static void DrawPieMark(RectangleBox rect, double xpos, double ypos, double size, double percent, RGBAColor col, string text, double depth = -1.0, bool bold = false) { UpdateDepth(depth); Gl.glPushMatrix(); Gl.glTranslated(rect.left, rect.bottom, currentdepth); Gl.glPushMatrix(); Gl.glTranslated(xpos, ypos, 0); glColor4d(col); if (bold) { Gl.glLineWidth(2); } Gl.glBegin(Gl.GL_LINE_STRIP); for (int i = 0; i <= 32; i++) { Gl.glVertex2d(-size * Math.Sin((double)i / 32 * 2 * Math.PI), size * Math.Cos((double)i / 32 * 2 * Math.PI)); } Gl.glEnd(); Gl.glLineWidth(1); glColor4d(col.Fade(0.5)); Gl.glBegin(Gl.GL_TRIANGLE_FAN); Gl.glVertex2d(0, 0); for (int i = 0; i <= 32 * percent; i++) { Gl.glVertex2d(-0.8 * size * Math.Sin((double)i / 32 * 2 * Math.PI), 0.8 * size * Math.Cos((double)i / 32 * 2 * Math.PI)); } Gl.glEnd(); Gl.glPopMatrix(); DrawString(xpos - 5, ypos - 5, text, new RGBAColor(1, 1, 1, 1)); Gl.glPopMatrix(); }