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();
            }
Esempio n. 2
0
 public void Write(EndianBinaryWriter er)
 {
     er.Write(ObjectID);
     er.Write(Unknown1);
     er.Write(Position.X);
     er.Write(Position.Y);
     er.Write(Position.Z);
     er.Write(RadianDegree.ToRadians(Rotation.X));
     er.Write(RadianDegree.ToRadians(Rotation.Y));
     er.Write(RadianDegree.ToRadians(Rotation.Z));
     er.Write(Scale.X);
     er.Write(Scale.Y);
     er.Write(Scale.Z);
     er.Write(RouteID);
     er.Write(Settings1);
     er.Write(Settings2);
     er.Write(Settings3);
     er.Write(Settings4);
     er.Write(Settings5);
     er.Write(Settings6);
     er.Write(Settings7);
     er.Write(Settings8);
     er.Write(Visibility);
     er.Write(Unknown2);
     er.Write(Unknown3);
 }
Esempio n. 3
0
 public void Write(EndianBinaryWriter er)
 {
     er.Write(Type);
     er.Write(Next);
     er.Write(VideoNext);
     er.Write(RouteID);
     er.Write(PointSpeed);
     er.Write(FOVSpeed);
     er.Write(ViewpointSpeed);
     er.Write(StartFlag);
     er.Write(VideoFlag);
     er.Write(Position.X);
     er.Write(Position.Y);
     er.Write(Position.Z);
     er.Write(RadianDegree.ToRadians(Rotation.X));
     er.Write(RadianDegree.ToRadians(Rotation.Y));
     er.Write(RadianDegree.ToRadians(Rotation.Z));
     er.Write(FOVBegin);
     er.Write(FOVEnd);
     er.Write(Viewpoint1.X);
     er.Write(Viewpoint1.Y);
     er.Write(Viewpoint1.Z);
     er.Write(Viewpoint2.X);
     er.Write(Viewpoint2.Y);
     er.Write(Viewpoint2.Z);
     er.Write(Duration);
 }
Esempio n. 4
0
 public void Write(EndianBinaryWriter er)
 {
     er.Write(Position.X);
     er.Write(Position.Y);
     er.Write(Position.Z);
     er.Write(RadianDegree.ToRadians(Rotation.X));
     er.Write(RadianDegree.ToRadians(Rotation.Y));
     er.Write(RadianDegree.ToRadians(Rotation.Z));
     er.Write(Index);
 }
Esempio n. 5
0
 public void Write(EndianBinaryWriter er)
 {
     er.Write(Mode);
     er.Write(Type);
     er.Write(CAMEIndex);
     er.Write(Unknown1);
     er.Write(Position.X);
     er.Write(Position.Y);
     er.Write(Position.Z);
     er.Write(RadianDegree.ToRadians(Rotation.X));
     er.Write(RadianDegree.ToRadians(Rotation.Y));
     er.Write(RadianDegree.ToRadians(Rotation.Z));
     er.Write(Scale.X);
     er.Write(Scale.Y);
     er.Write(Scale.Z);
     er.Write(Settings1);
     er.Write(Settings2);
     er.Write(RouteID);
     er.Write(EnemyID);
     er.Write(Unknown5);
 }
Esempio n. 6
0
 public AREAEntry(EndianBinaryReaderEx er)
 {
     er.ReadObject(this);
     Rotation = new Vector3(RadianDegree.ToDegrees(Rotation.X), RadianDegree.ToDegrees(Rotation.Y), RadianDegree.ToDegrees(Rotation.Z));
 }