15-462 Graphics Project 3: Simulating a Jello Cube

Description of the world file

World file is a file version of the structure 'world', which is defined in the following way (you need not change this):
struct point
{
   double x;
   double y;
   double z;
};

struct world
{
  char integrator[10]; // "RK4" or "Euler"
  double dt; // timestep, e.g.. 0.001
  int n; // display only every nth timepoint
  double kElastic; // Hook's elasticity coefficient for all springs except collision springs
  double dElastic; // Damping coefficient for all springs except collision springs
  double kCollision; // Hook's elasticity coefficient for collision springs
  double dCollision; // Damping coefficient collision springs
  double mass; // mass of each of the 512 control points, mass assumed to be equal for every control point
  int incPlanePresent; // Is the inclined plane present? 1 = YES, 0 = NO
  double a,b,c,d; // inclined plane has equation a * x + b * y + c * z + d = 0; if no inclined plane, these four fields are not used
  int resolution; // resolution for the 3d grid specifying the external force field; value of 0 means that there is no force field
  struct point * forceField; // pointer to the array of values of the force field
  struct point p[8][8][8]; // position of the 512 control points
  struct point v[8][8][8]; // velocities of the 512 control points
};

Further explanation of the fields:

How to create your own world files

You will need to create your own world files when you will be testing your program. Except for the header, you probably don't want to edit world files directly. The lines describing positions and velocities are meant to be machine-readable and not human-readable. Instead, use the createWorld application to generate your own files, and then use them for the simulation. Complete code for createWorld is provided together with the starter.code.

createWorld is a simple application that sets the fields of a world structure, and then uses writeWorld routine to write it to a disk file. To create different world files, you have to manually edit the code in the main() function of createWorld.c . Functionality to re-compile createWorld is included in the Makefile. To make different models, modify the fields of the jello world structure in main(). Also, modify the for loops to set the positions and velocities as you wish them for that particular world file. Don't forget to change the name of the output file in the call to writeWorld at the very end of main().

To use the world file you just created, load it with loadWorld in your main program.

Technical description of world files (taken from a comment in starter.c)

File should first contain a line specifying the integrator (EULER or RK4).
Example: EULER

Then, follows one line specifying the size of the timestep for the integrator, and
an integer parameter n specifying  that every nth timestep will actually be drawn
(the other steps will only be used for internal calculation)

Example: 0.001 5
Now, timestep equals 0.001. Every fifth time point will actually be drawn,
i.e. frame1 <--> t = 0
frame2 <--> t = 0.005
frame3 <--> t = 0.010
frame4 <--> t = 0.015
...

Then, there should be three lines for physical parameters and external acceleration.
Format is:
  kElastic dElastic kCollision dCollision
  fExternal.x fExternal.y fExternal.z
  mass
Here
  kElastic = elastic coefficient of the spring (same for all springs except collision springs)
  dElastic = damping coefficient of the spring (same for all springs except collision springs)
  kCollision = elastic coefficient of collision springs (same for all collision springs)
  dCollision = damping coefficient of collision springs (same for all collision springs)
  mass = mass in kilograms of each of the 512 points which model the jello cube
(mass assumed to be the same for all the points;
 total mass of the jello cube = 512 * mass)


Example:
  10000 25 10000 15
  -1 0 0
  0.002

Then, follow one or two lines for the inclined plane, with the obvious synax.
If there is no inclined plane, there should be only one line with a 0 value. There
is no line for the coefficient. Otherwise, there are two lines, first one containing 1,
and the second one containing the coefficients.
Example:
  1
  0.31 -0.78 0.5 5.39

Next, is the forceField block, first with the resolution and then the data, one point per row.
Example:
  30
  < here 30 * 30 * 30 = 27 000 lines follow, each containing 3 real numbers>

After this, there should be 1024 lines, each containing three floating-point numbers.
The first 512 lines correspond to initial point locations.
The last 512 lines correspond to initial point velocities.

There should no blank lines anywhere in the file.

Example of a valid world file

RK4
0.001000 1
10.000000 0.250000 1000.000000 0.250000
0.000000 0.000000 0.000000
0.001953
1
0.31 -0.78 0.5 5.39
0
0.000000 0.000000 0.000000
0.000000 0.000000 0.142857
0.000000 0.000000 0.285714
0.000000 0.000000 0.428571
0.000000 0.000000 0.571429
0.000000 0.000000 0.714286
0.000000 0.000000 0.857143
0.000000 0.000000 1.000000
0.000000 0.142857 0.000000
0.000000 0.142857 0.142857
0.000000 0.142857 0.285714
0.000000 0.142857 0.428571
0.000000 0.142857 0.571429
0.000000 0.142857 0.714286
0.000000 0.142857 0.857143
0.000000 0.142857 1.000000
0.000000 0.285714 0.000000
0.000000 0.285714 0.142857
0.000000 0.285714 0.285714
0.000000 0.285714 0.428571
0.000000 0.285714 0.571429
0.000000 0.285714 0.714286
0.000000 0.285714 0.857143
0.000000 0.285714 1.000000
0.000000 0.428571 0.000000
0.000000 0.428571 0.142857
0.000000 0.428571 0.285714
0.000000 0.428571 0.428571
0.000000 0.428571 0.571429
0.000000 0.428571 0.714286
0.000000 0.428571 0.857143
0.000000 0.428571 1.000000
0.000000 0.571429 0.000000
0.000000 0.571429 0.142857
0.000000 0.571429 0.285714
0.000000 0.571429 0.428571
0.000000 0.571429 0.571429
0.000000 0.571429 0.714286
0.000000 0.571429 0.857143
0.000000 0.571429 1.000000
0.000000 0.714286 0.000000
0.000000 0.714286 0.142857
0.000000 0.714286 0.285714
0.000000 0.714286 0.428571
0.000000 0.714286 0.571429
0.000000 0.714286 0.714286
0.000000 0.714286 0.857143
0.000000 0.714286 1.000000
0.000000 0.857143 0.000000
0.000000 0.857143 0.142857
0.000000 0.857143 0.285714
0.000000 0.857143 0.428571
0.000000 0.857143 0.571429
0.000000 0.857143 0.714286
0.000000 0.857143 0.857143
0.000000 0.857143 1.000000
0.000000 1.000000 0.000000
0.000000 1.000000 0.142857
0.000000 1.000000 0.285714
0.000000 1.000000 0.428571
0.000000 1.000000 0.571429
0.000000 1.000000 0.714286
0.000000 1.000000 0.857143
0.000000 1.000000 1.000000
0.142857 0.000000 0.000000
0.142857 0.000000 0.142857
0.142857 0.000000 0.285714
0.142857 0.000000 0.428571
0.142857 0.000000 0.571429
0.142857 0.000000 0.714286
0.142857 0.000000 0.857143
0.142857 0.000000 1.000000
0.142857 0.142857 0.000000
0.142857 0.142857 0.142857
0.142857 0.142857 0.285714
0.142857 0.142857 0.428571
0.142857 0.142857 0.571429
0.142857 0.142857 0.714286
0.142857 0.142857 0.857143
0.142857 0.142857 1.000000
0.142857 0.285714 0.000000
0.142857 0.285714 0.142857
0.142857 0.285714 0.285714
0.142857 0.285714 0.428571
0.142857 0.285714 0.571429
0.142857 0.285714 0.714286
0.142857 0.285714 0.857143
0.142857 0.285714 1.000000
0.142857 0.428571 0.000000
0.142857 0.428571 0.142857
0.142857 0.428571 0.285714
0.142857 0.428571 0.428571
0.142857 0.428571 0.571429
0.142857 0.428571 0.714286
0.142857 0.428571 0.857143
0.142857 0.428571 1.000000
0.142857 0.571429 0.000000
0.142857 0.571429 0.142857
0.142857 0.571429 0.285714
0.142857 0.571429 0.428571
0.142857 0.571429 0.571429
0.142857 0.571429 0.714286
0.142857 0.571429 0.857143
0.142857 0.571429 1.000000
0.142857 0.714286 0.000000
0.142857 0.714286 0.142857
0.142857 0.714286 0.285714
0.142857 0.714286 0.428571
0.142857 0.714286 0.571429
0.142857 0.714286 0.714286
0.142857 0.714286 0.857143
0.142857 0.714286 1.000000
0.142857 0.857143 0.000000
0.142857 0.857143 0.142857
0.142857 0.857143 0.285714
0.142857 0.857143 0.428571
0.142857 0.857143 0.571429
0.142857 0.857143 0.714286
0.142857 0.857143 0.857143
0.142857 0.857143 1.000000
0.142857 1.000000 0.000000
0.142857 1.000000 0.142857
0.142857 1.000000 0.285714
0.142857 1.000000 0.428571
0.142857 1.000000 0.571429
0.142857 1.000000 0.714286
0.142857 1.000000 0.857143
0.142857 1.000000 1.000000
0.285714 0.000000 0.000000
0.285714 0.000000 0.142857
0.285714 0.000000 0.285714
0.285714 0.000000 0.428571
0.285714 0.000000 0.571429
0.285714 0.000000 0.714286
0.285714 0.000000 0.857143
0.285714 0.000000 1.000000
0.285714 0.142857 0.000000
0.285714 0.142857 0.142857
0.285714 0.142857 0.285714
0.285714 0.142857 0.428571
0.285714 0.142857 0.571429
0.285714 0.142857 0.714286
0.285714 0.142857 0.857143
0.285714 0.142857 1.000000
0.285714 0.285714 0.000000
0.285714 0.285714 0.142857
0.285714 0.285714 0.285714
0.285714 0.285714 0.428571
0.285714 0.285714 0.571429
0.285714 0.285714 0.714286
0.285714 0.285714 0.857143
0.285714 0.285714 1.000000
0.285714 0.428571 0.000000
0.285714 0.428571 0.142857
0.285714 0.428571 0.285714
0.285714 0.428571 0.428571
0.285714 0.428571 0.571429
0.285714 0.428571 0.714286
0.285714 0.428571 0.857143
0.285714 0.428571 1.000000
0.285714 0.571429 0.000000
0.285714 0.571429 0.142857
0.285714 0.571429 0.285714
0.285714 0.571429 0.428571
0.285714 0.571429 0.571429
0.285714 0.571429 0.714286
0.285714 0.571429 0.857143
0.285714 0.571429 1.000000
0.285714 0.714286 0.000000
0.285714 0.714286 0.142857
0.285714 0.714286 0.285714
0.285714 0.714286 0.428571
0.285714 0.714286 0.571429
0.285714 0.714286 0.714286
0.285714 0.714286 0.857143
0.285714 0.714286 1.000000
0.285714 0.857143 0.000000
0.285714 0.857143 0.142857
0.285714 0.857143 0.285714
0.285714 0.857143 0.428571
0.285714 0.857143 0.571429
0.285714 0.857143 0.714286
0.285714 0.857143 0.857143
0.285714 0.857143 1.000000
0.285714 1.000000 0.000000
0.285714 1.000000 0.142857
0.285714 1.000000 0.285714
0.285714 1.000000 0.428571
0.285714 1.000000 0.571429
0.285714 1.000000 0.714286
0.285714 1.000000 0.857143
0.285714 1.000000 1.000000
0.428571 0.000000 0.000000
0.428571 0.000000 0.142857
0.428571 0.000000 0.285714
0.428571 0.000000 0.428571
0.428571 0.000000 0.571429
0.428571 0.000000 0.714286
0.428571 0.000000 0.857143
0.428571 0.000000 1.000000
0.428571 0.142857 0.000000
0.428571 0.142857 0.142857
0.428571 0.142857 0.285714
0.428571 0.142857 0.428571
0.428571 0.142857 0.571429
0.428571 0.142857 0.714286
0.428571 0.142857 0.857143
0.428571 0.142857 1.000000
0.428571 0.285714 0.000000
0.428571 0.285714 0.142857
0.428571 0.285714 0.285714
0.428571 0.285714 0.428571
0.428571 0.285714 0.571429
0.428571 0.285714 0.714286
0.428571 0.285714 0.857143
0.428571 0.285714 1.000000
0.428571 0.428571 0.000000
0.428571 0.428571 0.142857
0.428571 0.428571 0.285714
0.428571 0.428571 0.428571
0.428571 0.428571 0.571429
0.428571 0.428571 0.714286
0.428571 0.428571 0.857143
0.428571 0.428571 1.000000
0.428571 0.571429 0.000000
0.428571 0.571429 0.142857
0.428571 0.571429 0.285714
0.428571 0.571429 0.428571
0.428571 0.571429 0.571429
0.428571 0.571429 0.714286
0.428571 0.571429 0.857143
0.428571 0.571429 1.000000
0.428571 0.714286 0.000000
0.428571 0.714286 0.142857
0.428571 0.714286 0.285714
0.428571 0.714286 0.428571
0.428571 0.714286 0.571429
0.428571 0.714286 0.714286
0.428571 0.714286 0.857143
0.428571 0.714286 1.000000
0.428571 0.857143 0.000000
0.428571 0.857143 0.142857
0.428571 0.857143 0.285714
0.428571 0.857143 0.428571
0.428571 0.857143 0.571429
0.428571 0.857143 0.714286
0.428571 0.857143 0.857143
0.428571 0.857143 1.000000
0.428571 1.000000 0.000000
0.428571 1.000000 0.142857
0.428571 1.000000 0.285714
0.428571 1.000000 0.428571
0.428571 1.000000 0.571429
0.428571 1.000000 0.714286
0.428571 1.000000 0.857143
0.428571 1.000000 1.000000
0.571429 0.000000 0.000000
0.571429 0.000000 0.142857
0.571429 0.000000 0.285714
0.571429 0.000000 0.428571
0.571429 0.000000 0.571429
0.571429 0.000000 0.714286
0.571429 0.000000 0.857143
0.571429 0.000000 1.000000
0.571429 0.142857 0.000000
0.571429 0.142857 0.142857
0.571429 0.142857 0.285714
0.571429 0.142857 0.428571
0.571429 0.142857 0.571429
0.571429 0.142857 0.714286
0.571429 0.142857 0.857143
0.571429 0.142857 1.000000
0.571429 0.285714 0.000000
0.571429 0.285714 0.142857
0.571429 0.285714 0.285714
0.571429 0.285714 0.428571
0.571429 0.285714 0.571429
0.571429 0.285714 0.714286
0.571429 0.285714 0.857143
0.571429 0.285714 1.000000
0.571429 0.428571 0.000000
0.571429 0.428571 0.142857
0.571429 0.428571 0.285714
0.571429 0.428571 0.428571
0.571429 0.428571 0.571429
0.571429 0.428571 0.714286
0.571429 0.428571 0.857143
0.571429 0.428571 1.000000
0.571429 0.571429 0.000000
0.571429 0.571429 0.142857
0.571429 0.571429 0.285714
0.571429 0.571429 0.428571
0.571429 0.571429 0.571429
0.571429 0.571429 0.714286
0.571429 0.571429 0.857143
0.571429 0.571429 1.000000
0.571429 0.714286 0.000000
0.571429 0.714286 0.142857
0.571429 0.714286 0.285714
0.571429 0.714286 0.428571
0.571429 0.714286 0.571429
0.571429 0.714286 0.714286
0.571429 0.714286 0.857143
0.571429 0.714286 1.000000
0.571429 0.857143 0.000000
0.571429 0.857143 0.142857
0.571429 0.857143 0.285714
0.571429 0.857143 0.428571
0.571429 0.857143 0.571429
0.571429 0.857143 0.714286
0.571429 0.857143 0.857143
0.571429 0.857143 1.000000
0.571429 1.000000 0.000000
0.571429 1.000000 0.142857
0.571429 1.000000 0.285714
0.571429 1.000000 0.428571
0.571429 1.000000 0.571429
0.571429 1.000000 0.714286
0.571429 1.000000 0.857143
0.571429 1.000000 1.000000
0.714286 0.000000 0.000000
0.714286 0.000000 0.142857
0.714286 0.000000 0.285714
0.714286 0.000000 0.428571
0.714286 0.000000 0.571429
0.714286 0.000000 0.714286
0.714286 0.000000 0.857143
0.714286 0.000000 1.000000
0.714286 0.142857 0.000000
0.714286 0.142857 0.142857
0.714286 0.142857 0.285714
0.714286 0.142857 0.428571
0.714286 0.142857 0.571429
0.714286 0.142857 0.714286
0.714286 0.142857 0.857143
0.714286 0.142857 1.000000
0.714286 0.285714 0.000000
0.714286 0.285714 0.142857
0.714286 0.285714 0.285714
0.714286 0.285714 0.428571
0.714286 0.285714 0.571429
0.714286 0.285714 0.714286
0.714286 0.285714 0.857143
0.714286 0.285714 1.000000
0.714286 0.428571 0.000000
0.714286 0.428571 0.142857
0.714286 0.428571 0.285714
0.714286 0.428571 0.428571
0.714286 0.428571 0.571429
0.714286 0.428571 0.714286
0.714286 0.428571 0.857143
0.714286 0.428571 1.000000
0.714286 0.571429 0.000000
0.714286 0.571429 0.142857
0.714286 0.571429 0.285714
0.714286 0.571429 0.428571
0.714286 0.571429 0.571429
0.714286 0.571429 0.714286
0.714286 0.571429 0.857143
0.714286 0.571429 1.000000
0.714286 0.714286 0.000000
0.714286 0.714286 0.142857
0.714286 0.714286 0.285714
0.714286 0.714286 0.428571
0.714286 0.714286 0.571429
0.714286 0.714286 0.714286
0.714286 0.714286 0.857143
0.714286 0.714286 1.000000
0.714286 0.857143 0.000000
0.714286 0.857143 0.142857
0.714286 0.857143 0.285714
0.714286 0.857143 0.428571
0.714286 0.857143 0.571429
0.714286 0.857143 0.714286
0.714286 0.857143 0.857143
0.714286 0.857143 1.000000
0.714286 1.000000 0.000000
0.714286 1.000000 0.142857
0.714286 1.000000 0.285714
0.714286 1.000000 0.428571
0.714286 1.000000 0.571429
0.714286 1.000000 0.714286
0.714286 1.000000 0.857143
0.714286 1.000000 1.000000
0.857143 0.000000 0.000000
0.857143 0.000000 0.142857
0.857143 0.000000 0.285714
0.857143 0.000000 0.428571
0.857143 0.000000 0.571429
0.857143 0.000000 0.714286
0.857143 0.000000 0.857143
0.857143 0.000000 1.000000
0.857143 0.142857 0.000000
0.857143 0.142857 0.142857
0.857143 0.142857 0.285714
0.857143 0.142857 0.428571
0.857143 0.142857 0.571429
0.857143 0.142857 0.714286
0.857143 0.142857 0.857143
0.857143 0.142857 1.000000
0.857143 0.285714 0.000000
0.857143 0.285714 0.142857
0.857143 0.285714 0.285714
0.857143 0.285714 0.428571
0.857143 0.285714 0.571429
0.857143 0.285714 0.714286
0.857143 0.285714 0.857143
0.857143 0.285714 1.000000
0.857143 0.428571 0.000000
0.857143 0.428571 0.142857
0.857143 0.428571 0.285714
0.857143 0.428571 0.428571
0.857143 0.428571 0.571429
0.857143 0.428571 0.714286
0.857143 0.428571 0.857143
0.857143 0.428571 1.000000
0.857143 0.571429 0.000000
0.857143 0.571429 0.142857
0.857143 0.571429 0.285714
0.857143 0.571429 0.428571
0.857143 0.571429 0.571429
0.857143 0.571429 0.714286
0.857143 0.571429 0.857143
0.857143 0.571429 1.000000
0.857143 0.714286 0.000000
0.857143 0.714286 0.142857
0.857143 0.714286 0.285714
0.857143 0.714286 0.428571
0.857143 0.714286 0.571429
0.857143 0.714286 0.714286
0.857143 0.714286 0.857143
0.857143 0.714286 1.000000
0.857143 0.857143 0.000000
0.857143 0.857143 0.142857
0.857143 0.857143 0.285714
0.857143 0.857143 0.428571
0.857143 0.857143 0.571429
0.857143 0.857143 0.714286
0.857143 0.857143 0.857143
0.857143 0.857143 1.000000
0.857143 1.000000 0.000000
0.857143 1.000000 0.142857
0.857143 1.000000 0.285714
0.857143 1.000000 0.428571
0.857143 1.000000 0.571429
0.857143 1.000000 0.714286
0.857143 1.000000 0.857143
0.857143 1.000000 1.000000
1.000000 0.000000 0.000000
1.000000 0.000000 0.142857
1.000000 0.000000 0.285714
1.000000 0.000000 0.428571
1.000000 0.000000 0.571429
1.000000 0.000000 0.714286
1.000000 0.000000 0.857143
1.000000 0.000000 1.000000
1.000000 0.142857 0.000000
1.000000 0.142857 0.142857
1.000000 0.142857 0.285714
1.000000 0.142857 0.428571
1.000000 0.142857 0.571429
1.000000 0.142857 0.714286
1.000000 0.142857 0.857143
1.000000 0.142857 1.000000
1.000000 0.285714 0.000000
1.000000 0.285714 0.142857
1.000000 0.285714 0.285714
1.000000 0.285714 0.428571
1.000000 0.285714 0.571429
1.000000 0.285714 0.714286
1.000000 0.285714 0.857143
1.000000 0.285714 1.000000
1.000000 0.428571 0.000000
1.000000 0.428571 0.142857
1.000000 0.428571 0.285714
1.000000 0.428571 0.428571
1.000000 0.428571 0.571429
1.000000 0.428571 0.714286
1.000000 0.428571 0.857143
1.000000 0.428571 1.000000
1.000000 0.571429 0.000000
1.000000 0.571429 0.142857
1.000000 0.571429 0.285714
1.000000 0.571429 0.428571
1.000000 0.571429 0.571429
1.000000 0.571429 0.714286
1.000000 0.571429 0.857143
1.000000 0.571429 1.000000
1.000000 0.714286 0.000000
1.000000 0.714286 0.142857
1.000000 0.714286 0.285714
1.000000 0.714286 0.428571
1.000000 0.714286 0.571429
1.000000 0.714286 0.714286
1.000000 0.714286 0.857143
1.000000 0.714286 1.000000
1.000000 0.857143 0.000000
1.000000 0.857143 0.142857
1.000000 0.857143 0.285714
1.000000 0.857143 0.428571
1.000000 0.857143 0.571429
1.000000 0.857143 0.714286
1.000000 0.857143 0.857143
1.000000 0.857143 1.000000
1.000000 1.000000 0.000000
1.000000 1.000000 0.142857
1.000000 1.000000 0.285714
1.000000 1.000000 0.428571
1.000000 1.000000 0.571429
1.000000 1.000000 0.714286
1.000000 1.000000 0.857143
1.000000 1.000000 1.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
-10.000000 -15.000000 -5.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000
0.000000 0.000000 0.000000