#include "epix2.h"

using namespace ePiX2;

int main()
{
  const int N(20);

  World world;
  Camera camera;
  Picture pic(Pair(-4,-4), Pair(4,4), "6x6in");

  degrees();
  Pen bright(Yellow(), "1pt");
  Pen fine_red(Red(), "0.5pt");

  Ink finish(RGB(0.5, 0.3, 0.8), 0.5, true);
  Ink interior(RGB(1, 0.7, 0.2), 0.25, true);

  Point on_plane(0,0,3);

  Vector v1(Origin, 1,1,0), v2(Origin, -1,1,0), v3(on_plane, 1,1,-1);

  Knife k(v3, bright);

  Polygon square(v1, v2, 4);

  square.limn(bright);

  for (int i=0; i<N; ++i)
    for (int j=0; j<N; ++j)
      if ((i+j)%2 == 0)
	world << square.move_to(Point(2*i,2*j,0)).paint(Green(0.6));
      else
	world << square.move_to(Point(2*i,2*j,0)).paint(Green(1.2));

  world << Sphere(Origin, 2, 32, 24).rotate(-30, E_2())
    .chop(k).front_ink(finish).back_ink(interior).move_to(Point(0,N,2));

  text_style().text(RGB(0.6,0,0.8)).back(RGB(1,0.8,1))
    .edge(fine_red).font(BFACE).align(c);
  world << Label(Point(0,0.5*N,0), "\\LARGE ePiX-2");

  camera.at(Point(-20,N,8)).look_at(Point(N,N,0)).focus(10);
  world.fog(0.1, 15)
    .light(Point(10,60,-30))
    .light(Point(10,60,0))
    .light(Point(10,60,30));

  world.photo(pic, camera);

  pic.print_to("logo.eepic", PSTricks());
}
