public abstract void UpdateWithWorldTransform(WorldTransform wt);
public GLCameraChase(WorldTransform wt) { eye = eyeRel; center = centerRel; up = new v3f(0, 0, 1); UpdateWithWorldTransform(wt); }
public static void GoToTransform(WorldTransform wt) { Gl.glPushMatrix(); Gl.glTranslatef((float)wt.CenterPoint.X, (float)wt.CenterPoint.Y, 0.0f); }
public static void InitScene(WorldTransform transform) { Coordinates ll = transform.WorldLowerLeft; Coordinates ur = transform.WorldUpperRight; Gl.glViewport(0, 0, (int)transform.ScreenSize.Width, (int)transform.ScreenSize.Height); Gl.glLoadIdentity(); Gl.glOrtho(ll.X,ur.X,ll.Y,ur.Y,-100.0,100.0); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); }
public static void DrawGrid(int gridStep, WorldTransform w, bool drawRadii, Color lineColor, Color textColor, Color radiiColor) { GLUtility.DisableNiceLines(); for (int i = (int)w.WorldLowerLeft.Y; i < w.WorldUpperRight.Y; i ++) { if (i % gridStep == 0) { GLUtility.DrawLine(new GLPen(lineColor, 1.0f), (float)w.WorldLowerLeft.X, i, (float)w.WorldUpperRight.X, i); GLUtility.DrawString(i.ToString() + "m", new Font("verdana", 1), textColor, new PointF(0, i + .25f)); } } for (int i = (int)w.WorldLowerLeft.X; i < w.WorldUpperRight.X; i ++) { if (i % gridStep == 0) { GLUtility.DrawLine(new GLPen(lineColor, 1.0f), i, (float)w.WorldLowerLeft.Y, i, (float)w.WorldUpperRight.Y); GLUtility.DrawString(i.ToString() + "m", new Font("verdana", 1), textColor, new PointF(i, (float)(w.WorldUpperRight.Y - w.WorldLowerLeft.Y) / 2.0f)); } } if (drawRadii) { RectangleF r = new RectangleF(new PointF(-gridStep, -gridStep), new SizeF(gridStep * 2.0f, gridStep * 2.0f)); for (int i = 0; i < 20; i++) { r.Inflate(gridStep, gridStep); GLUtility.DrawEllipse(new GLPen(radiiColor, 1), r); } } GLUtility.EnableNiceLines(); }
public static void DrawGrid3D(int gridStep, WorldTransform w, float z, Color lineColor, Color textColor, Color radiiColor) { GLUtility.DisableNiceLines(); GLPen pen = new GLPen(lineColor, 1.0f); pen.GLApplyPen(); Gl.glBegin(Gl.GL_LINES); for (int i = (int)w.WorldLowerLeft.Y; i < w.WorldUpperRight.Y; i++) { if (i % gridStep == 0) { Gl.glVertex3f((float)w.WorldLowerLeft.X, i, z); Gl.glVertex3f((float)w.WorldUpperRight.X, i, z); //GLUtility.DrawString(i.ToString() + "m", new Font("verdana", 1), textColor, new PointF(0, i + .25f)); } } for (int i = (int)w.WorldLowerLeft.X; i < w.WorldUpperRight.X; i++) { if (i % gridStep == 0) { Gl.glVertex3f(i,(float)w.WorldLowerLeft.Y,z); Gl.glVertex3f(i, (float)w.WorldUpperRight.Y, z); //GLUtility.DrawString(i.ToString() + "m", new Font("verdana", 1), textColor, new PointF(i, (float)(w.WorldUpperRight.Y - w.WorldLowerLeft.Y) / 2.0f)); } } Gl.glEnd(); GLUtility.EnableNiceLines(); }
public static void DrawGrid(int gridStep, WorldTransform w, bool drawRadii) { DrawGrid(gridStep, w, drawRadii, Color.LightGray, Color.LightGray, Color.LightPink); }
public override void UpdateWithWorldTransform(WorldTransform wt) { left = wt.WorldLowerLeft.X; right = wt.WorldUpperRight.X; bottom = wt.WorldLowerLeft.Y; top = wt.WorldUpperRight.Y; zNear = -200; zFar = 200; scale = wt.Scale; }
public GLCameraOrtho(WorldTransform wt) { UpdateWithWorldTransform(wt); }
public override void UpdateWithWorldTransform(WorldTransform wt) { aspect = (double)(wt.ScreenSize.Width / wt.ScreenSize.Height); scale = wt.Scale; }
float pitch, yaw; // both in degrees #endregion Fields #region Constructors public GLCameraFree(WorldTransform wt) { location = new v3f(-5.0f, -5, 5); up = new v3f(0, 0, 1); pitch = 30; yaw = 30; UpdateWithWorldTransform(wt); }