public void RenderView(VisualSettings Settings, Vector3 pos, Vector3 lookatpos, float FOV) { ViewPlaneHandler vph = (Application.OpenForms[0] as Form1).vph; double angle = Math.Atan2(vph.getViewCoord(lookatpos, 1) - vph.getViewCoord(pos, 1), vph.getViewCoord(lookatpos, 0) - vph.getViewCoord(pos, 0)); double xcenter = Math.Cos(angle) * 1000000000d; double ycenter = Math.Sin(angle) * 1000000000d; double xside1 = Math.Cos(angle + RadianDegree.ToRadiansD((double)FOV / 2)) * 1000000000d; double yside1 = Math.Sin(angle + RadianDegree.ToRadiansD((double)FOV / 2)) * 1000000000d; double xside2 = Math.Cos(angle - RadianDegree.ToRadiansD((double)FOV / 2)) * 1000000000d; double yside2 = Math.Sin(angle - RadianDegree.ToRadiansD((double)FOV / 2)) * 1000000000d; Gl.glColor4f((Settings.HighlightPointColor.R / 255f), (Settings.HighlightPointColor.G / 255f), (Settings.HighlightPointColor.B / 255f), 0.25f); Gl.glBegin(Gl.GL_TRIANGLE_FAN); vph.draw2DVertice(pos); Gl.glVertex2d(xside1, yside1); Gl.glVertex2d(xside2, yside2); Gl.glEnd(); Gl.glColor4f((Settings.CameColor.R / 255f), (Settings.CameColor.G / 255f), (Settings.CameColor.B / 255f), Settings.CameColor.A); Gl.glBegin(Gl.GL_LINE_LOOP); Gl.glVertex2d(xside1, yside1); vph.draw2DVertice(pos); Gl.glVertex2d(xside2, yside2); Gl.glEnd(); Gl.glColor4f((Settings.HighlightPointborderColor.R / 255f), (Settings.HighlightPointborderColor.G / 255f), (Settings.HighlightPointborderColor.B / 255f), Settings.HighlightPointborderColor.A); Gl.glLineWidth(Settings.LineWidth / 2f); Gl.glPushAttrib(Gl.GL_ENABLE_BIT); Gl.glLineStipple(3, 0xAAAA); Gl.glEnable(Gl.GL_LINE_STIPPLE); Gl.glBegin(Gl.GL_LINES); vph.draw2DVertice(pos); Gl.glVertex2d(xcenter, ycenter); Gl.glEnd(); Gl.glPopAttrib(); }
public void RenderPoint() { ViewPlaneHandler vph = (Application.OpenForms[0] as Form1).vph; VisualSettings Settings = (Application.OpenForms[0] as Form1).Settings; List <object> SelectedDots = (Application.OpenForms[0] as Form1).SelectedDots; float PointScale = 50f * Scale; Gl.glPointSize(Settings.PointSize + 2f); Gl.glBegin(Gl.GL_POINTS); if (SelectedDots.Contains(this)) { Gl.glColor4f(Settings.HighlightPointborderColor.R / 255f, Settings.HighlightPointborderColor.G / 255f, Settings.HighlightPointborderColor.B / 255f, Settings.HighlightPointborderColor.A); } else { Gl.glColor4f(Settings.PointborderColor.R / 255f, Settings.PointborderColor.G / 255f, Settings.PointborderColor.B / 255f, Settings.PointborderColor.A); } vph.draw2DVertice(Pos); Gl.glEnd(); Gl.glPointSize(Settings.PointSize); Gl.glBegin(Gl.GL_POINTS); if (SelectedDots.Contains(this)) { Gl.glColor4f(Settings.HighlightPointColor.R / 255f, Settings.HighlightPointColor.G / 255f, Settings.HighlightPointColor.B / 255f, Settings.HighlightPointColor.A); } else { Gl.glColor4f(Settings.GliderColor.R / 255f, Settings.GliderColor.G / 255f, Settings.GliderColor.B / 255f, Settings.GliderColor.A); } vph.draw2DVertice(Pos); Gl.glEnd(); Gl.glLineWidth(Settings.LineWidth); if (SelectedDots.Contains(this)) { DrawFilledCircle(vph.getViewCoord(Pos, 0), vph.getViewCoord(Pos, 1), PointScale, 24, Settings.HighlightPointborderColor, Settings.HighlightPointColor); } else { DrawFilledCircle(vph.getViewCoord(Pos, 0), vph.getViewCoord(Pos, 1), PointScale, 24, Settings.GliderColor, Settings.GliderColor); } }
public void RenderPoint() { VisualSettings Settings = (Application.OpenForms[0] as Form1).Settings; List <object> SelectedDots = (Application.OpenForms[0] as Form1).SelectedDots; float PointScale = 50f * Scale; Color newcolor = decideColor(this); ViewPlaneHandler vph = (Application.OpenForms[0] as Form1).vph; Gl.glPointSize(Settings.PointSize + 2f); Gl.glBegin(Gl.GL_POINTS); if (SelectedDots.Contains(this)) { Gl.glColor4f(Settings.HighlightPointborderColor.R / 255f, Settings.HighlightPointborderColor.G / 255f, Settings.HighlightPointborderColor.B / 255f, Settings.HighlightPointborderColor.A); } else { Gl.glColor4f(1 - Settings.PointborderColor.R / 255f, 1 - Settings.PointborderColor.G / 255f, 1 - Settings.PointborderColor.B / 255f, Settings.PointborderColor.A); } vph.draw2DVertice(Pos); Gl.glEnd(); Gl.glPointSize(Settings.PointSize); Gl.glBegin(Gl.GL_POINTS); if (SelectedDots.Contains(this)) { Gl.glColor4f(Settings.HighlightPointColor.R / 255f, Settings.HighlightPointColor.G / 255f, Settings.HighlightPointColor.B / 255f, Settings.HighlightPointColor.A); } else { Gl.glColor4f(newcolor.R / 255f, newcolor.G / 255f, newcolor.B / 255f, newcolor.A); } vph.draw2DVertice(Pos); Gl.glEnd(); Gl.glLineWidth(Settings.LineWidth); if (SelectedDots.Contains(this)) { DrawFilledCircle(vph.getViewCoord(Pos, 0), vph.getViewCoord(Pos, 1), PointScale, 24, Settings.HighlightPointborderColor, Settings.HighlightPointColor); } else { DrawFilledCircle(vph.getViewCoord(Pos, 0), vph.getViewCoord(Pos, 1), PointScale, 24, newcolor, newcolor); } if (SelectedDots.Contains(this) && MaxSearchYOffsetVal != 0 && (vph.mode == ViewPlaneHandler.PLANE_MODES.XY || vph.mode == ViewPlaneHandler.PLANE_MODES.ZY)) { int toDraw = MaxSearchYOffsetVal; if (toDraw == -1) { toDraw = 75; } Gl.glColor4f(Settings.HighlightPointColor.R / 255f, Settings.HighlightPointColor.G / 255f, Settings.HighlightPointColor.B / 255f, Settings.HighlightPointColor.A); Gl.glPushAttrib(Gl.GL_ENABLE_BIT); Gl.glLineStipple(3, 0xAAAA); Gl.glEnable(Gl.GL_LINE_STIPPLE); Gl.glBegin(Gl.GL_LINES); vph.draw2DVertice(new Vector3(100000, Pos.Y + toDraw, 100000)); vph.draw2DVertice(new Vector3(-100000, Pos.Y + toDraw, -100000)); Gl.glEnd(); Gl.glBegin(Gl.GL_LINES); vph.draw2DVertice(new Vector3(100000, Pos.Y - toDraw, 100000)); vph.draw2DVertice(new Vector3(-100000, Pos.Y - toDraw, -100000)); Gl.glEnd(); Gl.glPopAttrib(); } }