コード例 #1
0
            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();
            }
コード例 #2
0
                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);
                    }
                }
コード例 #3
0
                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();
                    }
                }