You are on page 1of 32

import java.applet.

Applet;
import java.awt.Canvas;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import javax.media.j3d.Appearance;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Geometry;
import javax.media.j3d.ImageComponent2D;
import javax.media.j3d.LineAttributes;
import javax.media.j3d.Material;
import javax.media.j3d.PointAttributes;
import javax.media.j3d.PointLight;
import javax.media.j3d.PolygonAttributes;
import javax.media.j3d.QuadArray;
import javax.media.j3d.RenderingAttributes;
import javax.media.j3d.Shape3D;
import javax.media.j3d.Texture;
import javax.media.j3d.Texture2D;
import javax.media.j3d.TextureAttributes;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.TriangleArray;
import javax.media.j3d.TriangleFanArray;
import javax.media.j3d.TriangleStripArray;
import javax.vecmath.Color3f;
import javax.vecmath.Point2f;
import javax.vecmath.Point3d;
import javax.vecmath.Point3f;
import javax.vecmath.TexCoord2f;
import javax.vecmath.Vector3d;
import javax.vecmath.Vector3f;

import org.w3c.dom.events.MouseEvent;

import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.geometry.GeometryInfo;
import com.sun.j3d.utils.geometry.NormalGenerator;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.image.TextureLoader;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class ModelViewer extends Applet implements KeyListener,MouseListener
{
public TransformGroup SceneActions,viewMotion;
public visualObject vo;
public Material defMat;
public TextureLoader texLoader;
public Texture ModelTexture;
public TextureAttributes texAtt;
public URL ModelImageLoc = null;
public Appearance defApp,solidApp,wireApp,pointApp;
public PolygonAttributes defPolyAtt,solidPolyAtt,wirePolyAtt,pointPolyAtt;
public PointAttributes pointAttributes;
public String[] LevelUrls= new String[10];
public String[] ModelLocationArray,TextureLocationArray;
public String Location;
public Transform3D SceneAction;
public float ModelX,ModelY,ModelZ;
public MouseRotate myMouseRotate;
public float ModelRotX,ModelRotY,ModelRotZ;
public Transform3D GlobalTransform = new Transform3D();
public static String ModelType = "TriangleStripArray";
public ModelViewer(int x,int y,int width,int height,String[]
modelLocationArray,String[] textureLocationArray,String location)
{
ModelRotX = 0;
ModelRotY = 0;
ModelRotZ = 0;

ModelLocationArray=modelLocationArray;
TextureLocationArray=textureLocationArray;
Location =location;

ModelX = 0;
ModelY = 0;
ModelZ = 4;

GlobalTransform = new Transform3D();


GlobalTransform.setTranslation(new Vector3f(ModelX,ModelY,ModelZ));

// THE DEFAULT APPEARANCES


defApp = new Appearance();
defPolyAtt = new PolygonAttributes();

try {
ModelImageLoc = new
URL("http://192.168.1.70/Images/TurretBaseTexturePng.PNG");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
texLoader = new TextureLoader(ModelImageLoc,new String("RGB"),this);
ModelTexture = texLoader.getTexture();
texAtt = new TextureAttributes();
texAtt.clearCapability(texAtt.ALLOW_TRANSFORM_WRITE);

defMat = new Material();


defMat.setAmbientColor(new Color3f(0.20f,0.50f,0.20f));
defMat.setDiffuseColor(new Color3f(1.0f,0.00f,0.00f));
defMat.setShininess(100.0f);
defMat.setEmissiveColor(new Color3f(0.20f,0.20f,0.20f));
defMat.setSpecularColor(new Color3f(1.0f,1.0f,1.0f));
defMat.setLightingEnable(true);
defPolyAtt.setPolygonMode(defPolyAtt.POLYGON_FILL);
defPolyAtt.setCullFace(defPolyAtt.CULL_NONE);
defApp.setPolygonAttributes(defPolyAtt);
defApp.setMaterial(defMat);
defApp.setTexture(ModelTexture);
defApp.setCapability(defApp.ALLOW_TEXTURE_WRITE);
defApp.setTextureAttributes(texAtt);
//defApp.setColoringAttributes(new ColoringAttributes(new
Color3f(0.5f,0.0f,0.5f),ColoringAttributes.NICEST));

wireApp = new Appearance();


wirePolyAtt = new PolygonAttributes();
wirePolyAtt.setPolygonMode(wirePolyAtt.POLYGON_LINE);
wireApp.setPolygonAttributes(wirePolyAtt);

pointApp = new Appearance();


pointPolyAtt = new PolygonAttributes();
pointPolyAtt.setPolygonMode(pointPolyAtt.POLYGON_POINT);
pointApp.setPolygonAttributes(pointPolyAtt);
pointAttributes = new PointAttributes();
pointAttributes.setPointSize(3);
pointAttributes.setPointAntialiasingEnable(true);
pointApp.setPointAttributes(pointAttributes);
//END OF DEFAULT APPEARANCES
//||<>
Location = location;
SceneActions = new TransformGroup();
this.setBounds(x, y, width, height);
int i = 0;
for (i = 0;i < ModelLocationArray.length;i++)
{
vo = new
visualObject(0,0,10,ModelLocationArray[i],Location,this);
vo.setCapability(vo.ALLOW_APPEARANCE_WRITE);
vo.setAppearance(defApp);

texLoader = new TextureLoader(TextureLocationArray[i],new


String("RGB"),this);
ModelTexture = texLoader.getTexture();
vo.getAppearance().setTexture(ModelTexture);

SceneActions.addChild(vo);
}

Sphere sphere = new Sphere(0.5f);


sphere.setAppearance(defApp);
//vo.setRoot(this);
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();

Canvas3D canvas3D = new Canvas3D(config);


canvas3D.setBounds(x,y,width,height);

SimpleUniverse simpleU = new SimpleUniverse(canvas3D);


add("Left", canvas3D);

SceneActions.setTransform(GlobalTransform);
SceneActions.setCapability(SceneActions.ALLOW_TRANSFORM_WRITE);
SceneActions.setCapability(SceneActions.ALLOW_TRANSFORM_READ);
viewMotion = simpleU.getViewingPlatform().getViewPlatformTransform();

//SceneActions.addChild(vo);
//SceneActions.addChild(sphere);
DirectionalLight light1 = new DirectionalLight(new Color3f(40,40,255), new
Vector3f(2.0f,0.0f,2.0f));
light1.setInfluencingBounds(new BoundingSphere(new Point3d(3.0,3.0,-6.0),
100.0));
//SceneActions.addChild(light1);

PointLight pLight = new PointLight();


pLight.setAttenuation(new Point3f(0.0f,0.0f,0.05f));
pLight.setInfluencingBounds(new BoundingSphere(new Point3d(-13.0,3.0,0.0),
100.0));
pLight.setColor(new Color3f(1.0f,1.0f,1.0f));
pLight.setPosition(new Point3f(-7.0f,0.0f,+3.0f));
//SceneActions.addChild(pLight);

PointLight pLight2 = new PointLight();


pLight2.setAttenuation(new Point3f(0.0f,0.0f,0.05f));
pLight2.setInfluencingBounds(new BoundingSphere(new Point3d(-
13.0,3.0,0.0), 100.0));
pLight2.setColor(new Color3f(1.0f,1.0f,1.0f));
pLight2.setPosition(new Point3f(-3.0f,-5.0f,-2.0f));
//SceneActions.addChild(pLight2);

myMouseRotate = new MouseRotate();


myMouseRotate.setTransformGroup(SceneActions);
myMouseRotate.setSchedulingBounds(new BoundingSphere(new
Point3d(0.0,0.0,0.0), 100.0));

canvas3D.addMouseListener(this);
BranchGroup scene = new BranchGroup();

scene.addChild(myMouseRotate);

simpleU.getViewingPlatform().setNominalViewingTransform();
//scene.addChild(viewMotionBehavior);
//SceneActions.addChild(Behave);
scene.addChild(SceneActions);
scene.addChild(pLight);
scene.addChild(pLight2);
//scene.addChild(((TheProgramWindow)this.getParent()).MakeLevel(3));
simpleU.addBranchGraph(scene);
}
public Transform3D MoveTo(Point3f TargetPoint,TransformGroup targetGroup)
{
ModelX = TargetPoint.x;
ModelY = TargetPoint.y;
ModelZ = TargetPoint.z;
//TransformGroup Mover = new TransformGroup();
Transform3D TotalMotion = new Transform3D();
TotalMotion.setTranslation(new Vector3f(ModelX,ModelY,ModelZ));
targetGroup.setTransform(TotalMotion);
return TotalMotion;
}
public Transform3D RotateModel(float x,float y, float z,TransformGroup
targetGroup)
{
Transform3D TotalRotation = new Transform3D();
Transform3D X = new Transform3D();
Transform3D Y = new Transform3D();
Transform3D Z = new Transform3D();
TotalRotation.rotX(0);
X.rotX(x);
Y.rotY(y);
Z.rotZ(z);

TotalRotation.mul(X);
TotalRotation.mul(Y);
TotalRotation.mul(Z);

targetGroup.setTransform(TotalRotation);
return TotalRotation;
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

@Override
public void mouseClicked(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub

@Override
public void mouseEntered(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub

@Override
public void mouseExited(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub

@Override
public void mousePressed(java.awt.event.MouseEvent e) {

((Viewer)this.getParent()).RotationTimer.stop();
//((Viewer)this.getParent()).TimerMode = "Move";
}

@Override
public void mouseReleased(java.awt.event.MouseEvent e) {
((Viewer)this.getParent()).RotationTimer.start();
//((Viewer)this.getParent()).TimerMode = "Rotate";
}

class fileReader extends Object


{
String[] Content = new String[200000];//size for 200kb file
String RawContent;
int ContentIndex=0;
int nrOfLines=0;
String [] Data;
//String FileLocation = ".txt";
FileInputStream fstream;
String strLine;
Point3f[] Coords = null;
TexCoord2f[] TextCoords = null;
Vector3f[] Normals = null;
Color3f[] Colors = null;
int[] StripCounts;

String Location;
public int NrOfVerts = 168;

public fileReader(String FileLocation,String Delimiter,String location)


{
RawContent = "";
Location = location;
DataInputStream in = null;
BufferedReader br = null;
if(Location == "System")
{
try
{
fstream = new FileInputStream(FileLocation);
in = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in));
while ((strLine = br.readLine()) != null)
{//seni kuni fail pole l�ppu j�udnud
RawContent+=strLine;
nrOfLines++;
}
Content = RawContent.split(Delimiter);
System.err.println("Finished reading Data from System");
}
catch (Exception e)
{//juhul kui tekkib viga
System.err.println("Error : " + e.getMessage());
}

//close the file and input streams


try {in.close();} catch (IOException e1) {e1.printStackTrace();}
try {fstream.close();} catch (IOException e)
{e.printStackTrace();}
}
else if (Location == "HTTP")
{
System.out.println("running illegal http req");
RawContent="";
RawContent=GetDataFromUrl("HTTP",FileLocation);
Content = RawContent.split(Delimiter);
System.err.println("Finished reading Data from HTTP");
}

GetRealData();
}
public String GetDataFromUrl(String Type,String Location)
{
URL url = null;
URLConnection urlConn;
DataInputStream dis;
BufferedReader br;
BufferedImage img;
Image Img;
byte[] AllBytesRead;
String FileContent=null;
try
{
url = new URL(Location);
//if (Type == "System"){url = new
URL("http://192.168.1.70/JavaPolyExportAll.txt");}
//else if (Type == "pilt"){url = new
URL("http://192.168.1.70/pilt.png");}
//else if (item == "pilt2"){url = new
URL("http://192.168.1.70/pilt2.png");}
// Note: a more portable URL:
//url = new URL(getCodeBase().toString() + "/ToDoList/ToDoList.txt");

urlConn = url.openConnection();
urlConn.setDoInput(true);
urlConn.setUseCaches(false);

br = new BufferedReader(new
InputStreamReader(urlConn.getInputStream()));
//dis = new DataInputStream(urlConn.getInputStream());
//dis.mark(0);
String s;
//AllBytesRead = new byte[25544];
//.readFully(AllBytesRead);

//FileContent = new String(AllBytesRead);


//System.out.print(AllBytesRead);

while ((s = br.readLine()) != null)


{
FileContent+=s;
}
//FileContent = dis.readUTF();
//System.out.print(FileContent);
br.close();
}
catch (MalformedURLException mue) {}
catch (IOException ioe) {}

return FileContent;
}

public void GetRealData()


{
//separates coordinates, colors, normals texture coords etc from the
data loaded from file
int i=0;
int len = 0;
boolean GetCoords = true;
boolean GetColors = false;
boolean GetNormals = false;
boolean GetTextureCoords= true;
String[] tempC = new String[2];
int Type;
Type = new Integer(Content[0]);
//Data = new Integer(Content[0].split(",")[0]);
System.out.println(Type+":"+"QuadArray"+":"+(Type ==0));
if ( Type==0)
{
System.out.println("condition is true");
NrOfVerts=new Integer(Content[5].split(",")[0]);
System.out.println(NrOfVerts);

//NrOfVerts = 120;
Data= new String[NrOfVerts];
float cx,cy,cz;
Coords = new Point3f[NrOfVerts];
Colors = new Color3f[NrOfVerts];
Normals = new Vector3f[NrOfVerts];
TextCoords = new TexCoord2f[NrOfVerts];

Data = Content[1].split("-::-");
if (GetCoords == true)
{
for (i=1;i<=NrOfVerts;i++)
{
tempC = Data[i].split(",");
if (tempC == null){continue;}
cx = Float.valueOf(tempC[0]);
cy = Float.valueOf(tempC[1]);
cz = Float.valueOf(tempC[2]);
//System.out.println(cx+":"+cy+":"+cz);
Coords[i-1]=new Point3f(cx,cy,cz);
}
}
if (GetColors == true)
{
Data = Content[2].split("-::-");
for (i=1;i<=NrOfVerts;i++)
{

tempC = Data[i].split(",");
if (tempC == null){continue;}
cx = Float.valueOf(tempC[0]);
cy = Float.valueOf(tempC[1]);
cz = Float.valueOf(tempC[2]);
//System.out.println(cx+":"+cy+":"+cz);
Colors[i-1]=new Color3f(cx,cy,cz);
//System.out.println("set color");
}
}
if (GetNormals == true)
{
Data = Content[3].split("-::-");
for (i=1;i<=2;i++)//NrOfVerts
{
tempC = Data[i].split(",");
if (tempC == null){continue;}
//cx = Float.valueOf(tempC[0]);
//cy = Float.valueOf(tempC[1]);
//cz = Float.valueOf(tempC[2]);
//System.out.println(cx+":"+cy+":"+cz);
//Normals[i-1]=new Vector3f(cx,cy,cz);
}
}
if (GetTextureCoords == true)
{
Data = Content[4].split("-::-");
for (i=1;i<=NrOfVerts;i++)
{
tempC = Data[i].split(",");
if (tempC == null){continue;}
cx = Float.valueOf(tempC[0]);
cy = Float.valueOf(tempC[1]);

TextCoords[i-1]=new
TexCoord2f(Float.valueOf(tempC[0]),Float.valueOf(tempC[1]));
}
}
}
else if ( Type==1)
{
System.out.println("running type 1, triangle strip array");
float cx,cy,cz;
System.out.println("Content[2]"+Content[2]);
NrOfVerts=new Integer(Content[2]);
Coords = new Point3f[NrOfVerts];

Data = Content[1].split("-::-");
for (i=1;i<=NrOfVerts;i++)
{
tempC = Data[i].split(",");
if (tempC == null){continue;}
cx = Float.valueOf(tempC[0]);
cy = Float.valueOf(tempC[1]);
cz = Float.valueOf(tempC[2]);
//System.out.println(cx+":"+cy+":"+cz);
Coords[i-1]=new Point3f(cx,cy,cz);
}

StripCounts = new int[ new Integer(Content[4]) ];


Data = Content[3].split("-::-");

for (i=1;i<=StripCounts.length;i++)
{
System.out.println(Data[i]);
StripCounts[i-1]=new Integer(Data[i]);
}

Normals = new Vector3f[ (new Integer(Content[6]) )];


Data = Content[5].split("-::-");
for (i=1;i<=Normals.length;i++)
{
tempC = Data[i].split(",");
if (tempC == null){continue;}
cx = Float.valueOf(tempC[0]);
cy = Float.valueOf(tempC[1]);
cz = Float.valueOf(tempC[2]);
//System.out.println(cx+":"+cy+":"+cz);
Normals[i-1]=new Vector3f(cx,cy,cz);
}
}
}

}
class visualObject extends Shape3D{

private Geometry voGeometry;


private Appearance voAppearance;
GeometryInfo geoInfo;
public GeometryData GeoData;
private fileReader fReader;
public ModelViewer MyRoot = null;
public int[] MyPos = new int[3];
public boolean Visible = true;
public int frame = 0;
//public ModelViewer myRoot;
// create Shape3D with geometry and appearance
public visualObject(int x,int y,int z,String Url,String Location)
{
if (Location == "Integrated"){GeoData = new GeometryData();}
else {fReader = new fileReader(Url,":--:",Location);}

MyPos[0]=x;
MyPos[1]=y;
MyPos[2]=z;
voGeometry = createGeometry();
//voGeometry = MyRoot.CubeGeometry;
//voAppearance = createAppearance();
this.setGeometry(voGeometry);
this.setAppearance( MyRoot.defApp );
}
public visualObject(int x,int y,int z,String Url,String Location,ModelViewer
myRoot)
{
if (Location == "Integrated"){GeoData = new GeometryData();}
else {fReader = new fileReader(Url,":--:",Location);}
MyPos[0]=x;
MyPos[1]=y;
MyPos[2]=z;
MyRoot = myRoot;
voGeometry = createGeometry();
//voGeometry = MyRoot.CubeGeometry;
//voAppearance = createAppearance();
this.setGeometry(voGeometry);
this.setAppearance( MyRoot.defApp );
}
public void setRoot(ModelViewer mw)
{
MyRoot = mw;
}
@SuppressWarnings("deprecation")
private Geometry createGeometry()
{
String Method = "QuadArray";
boolean OnlyCoords = false;
boolean IncludeColors = false;
boolean IncludeTexture = true;
//String Method = "TriangleStripArray";
TriangleFanArray tfa;
TriangleStripArray tsa;
QuadArray qa;
TriangleArray ta;
TriangleArray ga;
NormalGenerator NormGen;
int[] StripCounts;
int i;
//tfa = new TriangleFanArray (totalN,
//TriangleFanArray.COORDINATES,
//stripCounts);
if (Method == "TriangleStripArray")
{
tsa = new TriangleStripArray
(fReader.NrOfVerts,TriangleStripArray.COORDINATES |
TriangleStripArray.NORMALS,fReader.StripCounts);
tsa.setCoordinates(0, fReader.Coords);
//tsa.setNormals(2,fReader.Normals);

//NormalGenerator na = new NormalGenerator();


//geoInfo = new GeometryInfo(tsa);
//na.setCreaseAngle(10.0);
// //na.generateNormals(geoInfo);
//tsa.setNormals(0,geoInfo.getNormals());
for (i = 0;i < fReader.Normals.length;i++)
{
tsa.setNormal(i, new Vector3f(0.0f,4.0f,0.0f));
}

return tsa;
}

if (Method == "QuadArray")
{
if ( OnlyCoords == true)
{
qa = new QuadArray(fReader.NrOfVerts,QuadArray.COORDINATES);
qa.setCoordinates(0, fReader.Coords);

}
else if ( IncludeColors == true)
{
qa = new QuadArray(fReader.NrOfVerts,QuadArray.COORDINATES |
QuadArray.COLOR_3);
qa.setCoordinates(0, fReader.Coords);
qa.setColors(0, fReader.Colors);
}
else if ( IncludeTexture == true)
{
qa = new QuadArray(fReader.NrOfVerts,QuadArray.COORDINATES |
QuadArray.TEXTURE_COORDINATE_2);
qa.setCoordinates(0, fReader.Coords);

//TexCoord2f[] texCoords = new TexCoord2f[4];


//texCoords[0]=new TexCoord2f(0.125f,0.109375f);
//texCoords[1]=new TexCoord2f(0.859375f,0.109375f);
//texCoords[2]=new TexCoord2f(0.859375f,0.875f);
//texCoords[3]=new TexCoord2f(0.125f,0.875f);
qa.setTextureCoordinates(0, 0, fReader.TextCoords);

}
else
{
qa = new QuadArray(fReader.NrOfVerts,QuadArray.COORDINATES |
QuadArray.COLOR_3 | QuadArray.NORMALS | QuadArray.TEXTURE_COORDINATE_2);
qa.setCoordinates(0, fReader.Coords);
qa.setColors(0, fReader.Colors);
}
//qa.setTextureCoordinates(0, fReader.TextCoords);
//geoInfo = new GeometryInfo(qa);
//NormGen = new NormalGenerator();
//NormGen.generateNormals(geoInfo);
//qa.setColors(0, vCol);
//int i;
//for (i = 0;i < 279;i++)
//{

//}
//geoInfo.setColors(vCol);

//qa.setNormals(0, fReader.Normals);
return qa;
}
if (Method == "QuadArrayIntegrated")
{
qa = new QuadArray(GeoData.NrOfVerts,QuadArray.COORDINATES |
QuadArray.COLOR_3 | QuadArray.NORMALS | QuadArray.TEXTURE_COORDINATE_2);
qa.setCoordinates(0, GeoData.CO);
qa.setColors(0, GeoData.COL);
qa.setNormals(0, GeoData.NOR);
return qa;
}
//||<>
else if (Method == "GeometryArray")
{
ga = new TriangleArray(3,2);
ga.setCoordinate(0,new Point3f(0.0f,0.0f,0.0f));
ga.setCoordinate(1,new Point3f(0.0f,1.0f,0.0f));
ga.setCoordinate(2,new Point3f(1.0f,1.0f,0.0f));

ga.setColor(0,new Color3f(0.0f,0.0f,1.0f));
ga.setColor(1,new Color3f(1.0f,0.0f,0.0f));
ga.setColor(2,new Color3f(0.0f,1.0f,0.0f));
return ga;
}

// code to create default geometry of visual object


return null;
}
//||<>
private Appearance createAppearance ()
{
Appearance app;
Material mat;
mat = new Material();
app = new Appearance();
Canvas Observer = new Canvas();
//TextureLoader loader = new TextureLoader("E:\\Documents and
Settings\\Rainer\\Desktop\\Pics\\tex.gif","shit",Observer);
ImageComponent2D image = new
ImageComponent2D(ImageComponent2D.FORMAT_RGBA,256,256);

//image = loader.getImage();
image.setCapability(image.ALLOW_FORMAT_READ);
image.setCapability(image.ALLOW_SIZE_READ);
image.setCapability(image.ALLOW_IMAGE_READ);
Texture2D texture = new Texture2D(Texture.ANISOTROPIC_SINGLE_VALUE,
Texture.RGBA,256,256);
texture.setEnable(true);
texture.setImage(0,image);

//app.setMaterial(mat);

//app.setTexture(texture);
mat.setAmbientColor(new Color3f(0.3f,0.3f,0.3f));
mat.setLightingEnable(true);

mat.setDiffuseColor( new Color3f(0.2f,0.2f,0.2f) );


mat.setShininess(0.4f);
mat.setSpecularColor( new Color3f(1.0f,1.0f,1.0f) );

//mat.setEmissiveColor(new Color3f(1.3f,0.0f,0.0f));

//app.setColoringAttributes( new ColoringAttributes( new


Color3f(0.0f,1.0f,1.0f), 1));
PolygonAttributes polyAttrib = new PolygonAttributes();
polyAttrib.setPolygonMode(2);//1 is vertexes, 2 is lines and 3 is filled

polyAttrib.setCullFace(PolygonAttributes.CULL_NONE);
polyAttrib.setCapability(polyAttrib.ALLOW_MODE_WRITE);
app.setPolygonAttributes(polyAttrib);

app.setLineAttributes(new LineAttributes(3,3,true));
//app.setMaterial(new Material(new Color3f(0.3f,0.2f,0.1f), new
Color3f(0.3f,0.2f,0.1f), new Color3f(0.5f,0.2f,1.1f), new
Color3f(0.3f,0.2f,0.1f),1.0f));
return app;
// code to create default appearance of visual object
}

} // end of class VisualObject


//||<>
interface Listeners
{
void dragged(Listeners l);
}
class GeometryData extends Object
{
public int NrOfVerts = 168;
public Point3f[] CO = new Point3f[NrOfVerts];
public Color3f[] COL = new Color3f[NrOfVerts];;
public Vector3f[]NOR = new Vector3f[335];;

public GeometryData()
{
CO[0]=new Point3f(0.00746062258258f,0.402783155441f,0.0101972855628f);
CO[1]=new Point3f(-0.00746052572504f,0.402783155441f,0.0101972855628f);
CO[2]=new Point3f(-0.0206447131932f,0.0262170713395f,0.0134841250256f);
CO[3]=new Point3f(0.0206447951496f,0.0262170713395f,0.0134841250256f);
CO[4]=new Point3f(-0.00746052572504f,0.402783155441f,0.0101972855628f);
CO[5]=new Point3f(0.00746062258258f,0.402783155441f,0.0101972855628f);
CO[6]=new Point3f(0.0188957136124f,0.402783155441f,0.0223533138633f);
CO[7]=new Point3f(-0.0188956167549f,0.402783155441f,0.0223533138633f);
CO[8]=new Point3f(-0.0188956167549f,0.402783155441f,0.0223533138633f);
CO[9]=new Point3f(0.0188957136124f,0.402783155441f,0.0223533138633f);
CO[10]=new
Point3f(0.00117776473053f,0.474005281925f,0.00653259456158f);
CO[11]=new Point3f(-
0.00117766787298f,0.474005281925f,0.00653259456158f);
CO[12]=new Point3f(-0.0188956167549f,0.402783155441f,0.0223533138633f);
CO[13]=new Point3f(-
0.00117766787298f,0.474005281925f,0.00653259456158f);
CO[14]=new Point3f(-0.00117766787298f,0.474005281925f,-
0.0039037540555f);
CO[15]=new Point3f(-0.0188956167549f,0.402783155441f,-
0.0196378864348f);
CO[16]=new Point3f(-
0.00117766787298f,0.474005281925f,0.00653259456158f);
CO[17]=new
Point3f(0.00117776473053f,0.474005281925f,0.00653259456158f);
CO[18]=new Point3f(0.00117776473053f,0.474005281925f,-
0.0039037540555f);
CO[19]=new Point3f(-0.00117766787298f,0.474005281925f,-
0.0039037540555f);
CO[20]=new
Point3f(0.00117776473053f,0.474005281925f,0.00653259456158f);
CO[21]=new Point3f(0.0188957136124f,0.402783155441f,0.0223533138633f);
CO[22]=new Point3f(0.0188957136124f,0.402783155441f,-0.0185722745955f);
CO[23]=new Point3f(0.00117776473053f,0.474005281925f,-
0.0039037540555f);
CO[24]=new Point3f(-
0.00746052572504f,0.402783155441f,0.0101972855628f);
CO[25]=new Point3f(-0.0188956167549f,0.402783155441f,0.0223533138633f);
CO[26]=new Point3f(-0.0188956167549f,0.402783155441f,-
0.0196378864348f);
CO[27]=new Point3f(-0.00746052572504f,0.402783155441f,-
0.00756845250726f);
CO[28]=new Point3f(0.0188957136124f,0.402783155441f,0.0223533138633f);
CO[29]=new Point3f(0.00746062258258f,0.402783155441f,0.0101972855628f);
CO[30]=new Point3f(0.00746062258258f,0.402783155441f,-
0.00756845250726f);
CO[31]=new Point3f(0.0188957136124f,0.402783155441f,-0.0185722745955f);
CO[32]=new Point3f(-
0.0206447131932f,0.0262170713395f,0.0134841250256f);
CO[33]=new Point3f(-
0.00746052572504f,0.402783155441f,0.0101972855628f);
CO[34]=new Point3f(-0.00746052572504f,0.402783155441f,-
0.00756845250726f);
CO[35]=new Point3f(-0.0206447131932f,0.0262170750648f,-
0.0108553431928f);
CO[36]=new Point3f(0.00746062258258f,0.402783155441f,0.0101972855628f);
CO[37]=new Point3f(0.0206447951496f,0.0262170713395f,0.0134841250256f);
CO[38]=new Point3f(0.0206447951496f,0.0262170750648f,-
0.0108553431928f);
CO[39]=new Point3f(0.00746062258258f,0.402783155441f,-
0.00756845250726f);
CO[40]=new Point3f(0.0206447951496f,0.0262170713395f,0.0134841250256f);
CO[41]=new Point3f(-
0.0206447131932f,0.0262170713395f,0.0134841250256f);
CO[42]=new Point3f(-0.0206447131932f,0.0262170750648f,-
0.0108553431928f);
CO[43]=new Point3f(0.0206447951496f,0.0262170750648f,-
0.0108553431928f);
CO[44]=new Point3f(-0.0206447131932f,0.0262170750648f,-
0.0108553431928f);
CO[45]=new Point3f(-0.00746052572504f,0.402783155441f,-
0.00756845250726f);
CO[46]=new Point3f(0.00746062258258f,0.402783155441f,-
0.00756845250726f);
CO[47]=new Point3f(0.0206447951496f,0.0262170750648f,-
0.0108553431928f);
CO[48]=new Point3f(0.0188957136124f,0.402783155441f,-0.0185722745955f);
CO[49]=new Point3f(0.00746062258258f,0.402783155441f,-
0.00756845250726f);
CO[50]=new Point3f(-0.00746052572504f,0.402783155441f,-
0.00756845250726f);
CO[51]=new Point3f(-0.0188956167549f,0.402783155441f,-
0.0196378864348f);
CO[52]=new Point3f(0.00117776473053f,0.474005281925f,-
0.0039037540555f);
CO[53]=new Point3f(0.0188957136124f,0.402783155441f,-0.0185722745955f);
CO[54]=new Point3f(-0.0188956167549f,0.402783155441f,-
0.0196378864348f);
CO[55]=new Point3f(-0.00117766787298f,0.474005281925f,-
0.0039037540555f);
CO[56]=new Point3f(0.476132750511f,-0.0033051839564f,-
0.00390377268195f);
CO[57]=new Point3f(0.404910624027f,-0.0210231263191f,-0.018572293222f);
CO[58]=new Point3f(0.404910624027f,0.016768200323f,-0.019637901336f);
CO[59]=new Point3f(0.476132750511f,-0.000949757290073f,-
0.00390377268195f);
CO[60]=new Point3f(0.404910624027f,-0.0210231263191f,-0.018572293222f);
CO[61]=new Point3f(0.404910624027f,-0.00958801992238f,-
0.00756847113371f);
CO[62]=new Point3f(0.404910624027f,0.00533310882747f,-
0.00756847113371f);
CO[63]=new Point3f(0.404910624027f,0.016768200323f,-0.019637901336f);
CO[64]=new Point3f(0.0283445715904f,0.0185173284262f,-
0.0108553431928f);
CO[65]=new Point3f(0.404910624027f,0.00533310882747f,-
0.00756847113371f);
CO[66]=new Point3f(0.404910624027f,-0.00958801992238f,-
0.00756847113371f);
CO[67]=new Point3f(0.0283445715904f,-0.0227721948177f,-
0.0108553469181f);
CO[68]=new Point3f(0.0283445715904f,-
0.0227721948177f,0.0134841222316f);
CO[69]=new Point3f(0.0283445715904f,0.0185172986239f,0.0134841240942f);
CO[70]=new Point3f(0.0283445715904f,0.0185173284262f,-
0.0108553431928f);
CO[71]=new Point3f(0.0283445715904f,-0.0227721948177f,-
0.0108553469181f);
CO[72]=new Point3f(0.404910624027f,-0.0095880497247f,0.0101972687989f);
CO[73]=new Point3f(0.0283445715904f,-
0.0227721948177f,0.0134841222316f);
CO[74]=new Point3f(0.0283445715904f,-0.0227721948177f,-
0.0108553469181f);
CO[75]=new Point3f(0.404910624027f,-0.00958801992238f,-
0.00756847113371f);
CO[76]=new Point3f(0.0283445715904f,0.0185172986239f,0.0134841240942f);
CO[77]=new Point3f(0.404910624027f,0.00533310882747f,0.0101972687989f);
CO[78]=new Point3f(0.404910624027f,0.00533310882747f,-
0.00756847113371f);
CO[79]=new Point3f(0.0283445715904f,0.0185173284262f,-
0.0108553431928f);
CO[80]=new Point3f(0.404910624027f,-0.0210231263191f,0.0223532970995f);
CO[81]=new Point3f(0.404910624027f,-0.0095880497247f,0.0101972687989f);
CO[82]=new Point3f(0.404910624027f,-0.00958801992238f,-
0.00756847113371f);
CO[83]=new Point3f(0.404910624027f,-0.0210231263191f,-0.018572293222f);
CO[84]=new Point3f(0.404910624027f,0.00533310882747f,0.0101972687989f);
CO[85]=new Point3f(0.404910624027f,0.016768200323f,0.0223532989621f);
CO[86]=new Point3f(0.404910624027f,0.016768200323f,-0.019637901336f);
CO[87]=new Point3f(0.404910624027f,0.00533310882747f,-
0.00756847113371f);
CO[88]=new Point3f(0.476132750511f,-
0.0033051839564f,0.00653257593513f);
CO[89]=new Point3f(0.404910624027f,-0.0210231263191f,0.0223532970995f);
CO[90]=new Point3f(0.404910624027f,-0.0210231263191f,-0.018572293222f);
CO[91]=new Point3f(0.476132750511f,-0.0033051839564f,-
0.00390377268195f);
CO[92]=new Point3f(0.476132750511f,-
0.000949757290073f,0.00653257593513f);
CO[93]=new Point3f(0.476132750511f,-
0.0033051839564f,0.00653257593513f);
CO[94]=new Point3f(0.476132750511f,-0.0033051839564f,-
0.00390377268195f);
CO[95]=new Point3f(0.476132750511f,-0.000949757290073f,-
0.00390377268195f);
CO[96]=new Point3f(0.404910624027f,0.016768200323f,0.0223532989621f);
CO[97]=new Point3f(0.476132750511f,-
0.000949757290073f,0.00653257593513f);
CO[98]=new Point3f(0.476132750511f,-0.000949757290073f,-
0.00390377268195f);
CO[99]=new Point3f(0.404910624027f,0.016768200323f,-0.019637901336f);
CO[100]=new Point3f(0.404910624027f,0.016768200323f,0.0223532989621f);
CO[101]=new Point3f(0.404910624027f,-
0.0210231263191f,0.0223532970995f);
CO[102]=new Point3f(0.476132750511f,-
0.0033051839564f,0.00653257593513f);
CO[103]=new Point3f(0.476132750511f,-
0.000949757290073f,0.00653257593513f);
CO[104]=new
Point3f(0.404910624027f,0.00533310882747f,0.0101972687989f);
CO[105]=new Point3f(0.404910624027f,-
0.0095880497247f,0.0101972687989f);
CO[106]=new Point3f(0.404910624027f,-
0.0210231263191f,0.0223532970995f);
CO[107]=new Point3f(0.404910624027f,0.016768200323f,0.0223532989621f);
CO[108]=new Point3f(0.404910624027f,-
0.0095880497247f,0.0101972687989f);
CO[109]=new
Point3f(0.404910624027f,0.00533310882747f,0.0101972687989f);
CO[110]=new
Point3f(0.0283445715904f,0.0185172986239f,0.0134841240942f);
CO[111]=new Point3f(0.0283445715904f,-
0.0227721948177f,0.0134841222316f);
CO[112]=new Point3f(0.00625842809677f,-0.00958801992238f,-
0.370395153761f);
CO[113]=new Point3f(0.00625842809677f,0.00533313862979f,-
0.370395153761f);
CO[114]=new
Point3f(0.00954529643059f,0.0185172986239f,0.0061709061265f);
CO[115]=new Point3f(0.00954529643059f,-
0.0227721948177f,0.0061709061265f);
CO[116]=new Point3f(0.00625842809677f,0.00533313862979f,-
0.370395153761f);
CO[117]=new Point3f(0.00625842809677f,-0.00958801992238f,-
0.370395153761f);
CO[118]=new Point3f(0.0184144377708f,-0.0210230965167f,-
0.370395153761f);
CO[119]=new Point3f(0.0184144377708f,0.0167682301253f,-
0.370395153761f);
CO[120]=new Point3f(0.0184144377708f,0.0167682301253f,-
0.370395153761f);
CO[121]=new Point3f(0.0184144377708f,-0.0210230965167f,-
0.370395153761f);
CO[122]=new Point3f(0.00259372591972f,-0.0033051467035f,-
0.441617280245f);
CO[123]=new Point3f(0.00259372591972f,-0.00094972376246f,-
0.441617280245f);
CO[124]=new Point3f(0.0184144377708f,0.0167682301253f,-
0.370395153761f);
CO[125]=new Point3f(0.00259372591972f,-0.00094972376246f,-
0.441617280245f);
CO[126]=new Point3f(-0.00784263014793f,-0.00094972376246f,-
0.441617280245f);
CO[127]=new Point3f(-0.0235767662525f,0.0167682264f,-0.370395153761f);
CO[128]=new Point3f(0.00259372591972f,-0.00094972376246f,-
0.441617280245f);
CO[129]=new Point3f(0.00259372591972f,-0.0033051467035f,-
0.441617280245f);
CO[130]=new Point3f(-0.00784263014793f,-0.00330515415408f,-
0.441617280245f);
CO[131]=new Point3f(-0.00784263014793f,-0.00094972376246f,-
0.441617280245f);
CO[132]=new Point3f(0.00259372591972f,-0.0033051467035f,-
0.441617280245f);
CO[133]=new Point3f(0.0184144377708f,-0.0210230965167f,-
0.370395153761f);
CO[134]=new Point3f(-0.0225111544132f,-0.0210231039673f,-
0.370395153761f);
CO[135]=new Point3f(-0.00784263014793f,-0.00330515415408f,-
0.441617280245f);
CO[136]=new Point3f(0.00625842809677f,0.00533313862979f,-
0.370395153761f);
CO[137]=new Point3f(0.0184144377708f,0.0167682301253f,-
0.370395153761f);
CO[138]=new Point3f(-0.0235767662525f,0.0167682264f,-0.370395153761f);
CO[139]=new Point3f(-0.011507332325f,0.0053331349045f,-
0.370395153761f);
CO[140]=new Point3f(0.0184144377708f,-0.0210230965167f,-
0.370395153761f);
CO[141]=new Point3f(0.00625842809677f,-0.00958801992238f,-
0.370395153761f);
CO[142]=new Point3f(-0.011507332325f,-0.00958799012005f,-
0.370395153761f);
CO[143]=new Point3f(-0.0225111544132f,-0.0210231039673f,-
0.370395153761f);
CO[144]=new
Point3f(0.00954529643059f,0.0185172986239f,0.0061709061265f);
CO[145]=new Point3f(0.00625842809677f,0.00533313862979f,-
0.370395153761f);
CO[146]=new Point3f(-0.011507332325f,0.0053331349045f,-
0.370395153761f);
CO[147]=new Point3f(-
0.0147941708565f,0.0185173284262f,0.0061709061265f);
CO[148]=new Point3f(0.00625842809677f,-0.00958801992238f,-
0.370395153761f);
CO[149]=new Point3f(0.00954529643059f,-
0.0227721948177f,0.0061709061265f);
CO[150]=new Point3f(-0.0147941708565f,-
0.0227721948177f,0.0061709061265f);
CO[151]=new Point3f(-0.011507332325f,-0.00958799012005f,-
0.370395153761f);
CO[152]=new Point3f(0.00954529643059f,-
0.0227721948177f,0.0061709061265f);
CO[153]=new
Point3f(0.00954529643059f,0.0185172986239f,0.0061709061265f);
CO[154]=new Point3f(-
0.0147941708565f,0.0185173284262f,0.0061709061265f);
CO[155]=new Point3f(-0.0147941708565f,-
0.0227721948177f,0.0061709061265f);
CO[156]=new Point3f(-
0.0147941708565f,0.0185173284262f,0.0061709061265f);
CO[157]=new Point3f(-0.011507332325f,0.0053331349045f,-
0.370395153761f);
CO[158]=new Point3f(-0.011507332325f,-0.00958799012005f,-
0.370395153761f);
CO[159]=new Point3f(-0.0147941708565f,-
0.0227721948177f,0.0061709061265f);
CO[160]=new Point3f(-0.0225111544132f,-0.0210231039673f,-
0.370395153761f);
CO[161]=new Point3f(-0.011507332325f,-0.00958799012005f,-
0.370395153761f);
CO[162]=new Point3f(-0.011507332325f,0.0053331349045f,-
0.370395153761f);
CO[163]=new Point3f(-0.0235767662525f,0.0167682264f,-0.370395153761f);
CO[164]=new Point3f(-0.00784263014793f,-0.00330515415408f,-
0.441617280245f);
CO[165]=new Point3f(-0.0225111544132f,-0.0210231039673f,-
0.370395153761f);
CO[166]=new Point3f(-0.0235767662525f,0.0167682264f,-0.370395153761f);
CO[167]=new Point3f(-0.00784263014793f,-0.00094972376246f,-
0.441617280245f);

COL[0]=new Color3f(0.42f,0.33f,2.44f);
COL[1]=new Color3f(0.42f,0.33f,2.44f);
COL[2]=new Color3f(0.43f,0.34f,2.44f);
COL[3]=new Color3f(0.98f,0.93f,2.44f);
COL[4]=new Color3f(0.42f,0.33f,2.44f);
COL[5]=new Color3f(0.42f,0.33f,2.44f);
COL[6]=new Color3f(0.42f,0.33f,2.44f);
COL[7]=new Color3f(0.42f,0.33f,2.44f);
COL[8]=new Color3f(0.42f,0.33f,2.44f);
COL[9]=new Color3f(0.42f,0.33f,2.44f);
COL[10]=new Color3f(0.42f,0.33f,2.44f);
COL[11]=new Color3f(0.42f,0.33f,2.44f);
COL[12]=new Color3f(0.42f,0.33f,2.44f);
COL[13]=new Color3f(0.42f,0.33f,2.44f);
COL[14]=new Color3f(0.42f,0.33f,2.44f);
COL[15]=new Color3f(0.61f,0.53f,2.44f);
COL[16]=new Color3f(0.42f,0.33f,2.44f);
COL[17]=new Color3f(0.42f,0.33f,2.44f);
COL[18]=new Color3f(0.42f,0.33f,2.44f);
COL[19]=new Color3f(0.42f,0.33f,2.44f);
COL[20]=new Color3f(0.42f,0.33f,2.44f);
COL[21]=new Color3f(0.42f,0.33f,2.44f);
COL[22]=new Color3f(0.42f,0.33f,2.44f);
COL[23]=new Color3f(0.42f,0.33f,2.44f);
COL[24]=new Color3f(0.42f,0.33f,2.44f);
COL[25]=new Color3f(0.42f,0.33f,2.44f);
COL[26]=new Color3f(0.61f,0.53f,2.44f);
COL[27]=new Color3f(2.55f,2.55f,2.55f);
COL[28]=new Color3f(0.42f,0.33f,2.44f);
COL[29]=new Color3f(0.42f,0.33f,2.44f);
COL[30]=new Color3f(0.42f,0.33f,2.44f);
COL[31]=new Color3f(0.42f,0.33f,2.44f);
COL[32]=new Color3f(0.43f,0.34f,2.44f);
COL[33]=new Color3f(0.42f,0.33f,2.44f);
COL[34]=new Color3f(2.55f,2.55f,2.55f);
COL[35]=new Color3f(2.55f,2.55f,2.55f);
COL[36]=new Color3f(0.42f,0.33f,2.44f);
COL[37]=new Color3f(0.98f,0.93f,2.44f);
COL[38]=new Color3f(0.82f,0.76f,2.44f);
COL[39]=new Color3f(0.42f,0.33f,2.44f);
COL[40]=new Color3f(0.98f,0.93f,2.44f);
COL[41]=new Color3f(0.43f,0.34f,2.44f);
COL[42]=new Color3f(2.55f,2.55f,2.55f);
COL[43]=new Color3f(0.82f,0.76f,2.44f);
COL[44]=new Color3f(2.55f,2.55f,2.55f);
COL[45]=new Color3f(2.55f,2.55f,2.55f);
COL[46]=new Color3f(0.42f,0.33f,2.44f);
COL[47]=new Color3f(0.82f,0.76f,2.44f);
COL[48]=new Color3f(0.42f,0.33f,2.44f);
COL[49]=new Color3f(0.42f,0.33f,2.44f);
COL[50]=new Color3f(2.55f,2.55f,2.55f);
COL[51]=new Color3f(0.61f,0.53f,2.44f);
COL[52]=new Color3f(0.42f,0.33f,2.44f);
COL[53]=new Color3f(0.42f,0.33f,2.44f);
COL[54]=new Color3f(0.61f,0.53f,2.44f);
COL[55]=new Color3f(0.42f,0.33f,2.44f);
COL[56]=new Color3f(2.34f,1.4f,1.38f);
COL[57]=new Color3f(2.51f,0.93f,0.12f);
COL[58]=new Color3f(2.46f,1.05f,0.5f);
COL[59]=new Color3f(2.44f,0.89f,0.13f);
COL[60]=new Color3f(2.51f,0.93f,0.12f);
COL[61]=new Color3f(2.51f,0.92f,0.13f);
COL[62]=new Color3f(2.46f,0.74f,0.0f);
COL[63]=new Color3f(2.46f,1.05f,0.5f);
COL[64]=new Color3f(2.23f,0.94f,1.03f);
COL[65]=new Color3f(2.46f,0.74f,0.0f);
COL[66]=new Color3f(2.51f,0.92f,0.13f);
COL[67]=new Color3f(2.51f,1.41f,0.27f);
COL[68]=new Color3f(2.33f,0.97f,0.82f);
COL[69]=new Color3f(2.46f,1.29f,0.17f);
COL[70]=new Color3f(2.23f,0.94f,1.03f);
COL[71]=new Color3f(2.51f,1.41f,0.27f);
COL[72]=new Color3f(2.51f,0.55f,0.0f);
COL[73]=new Color3f(2.33f,0.97f,0.82f);
COL[74]=new Color3f(2.51f,1.41f,0.27f);
COL[75]=new Color3f(2.51f,0.92f,0.13f);
COL[76]=new Color3f(2.46f,1.29f,0.17f);
COL[77]=new Color3f(2.51f,0.36f,0.0f);
COL[78]=new Color3f(2.46f,0.74f,0.0f);
COL[79]=new Color3f(2.23f,0.94f,1.03f);
COL[80]=new Color3f(2.5f,0.89f,0.0f);
COL[81]=new Color3f(2.51f,0.55f,0.0f);
COL[82]=new Color3f(2.51f,0.92f,0.13f);
COL[83]=new Color3f(2.51f,0.93f,0.12f);
COL[84]=new Color3f(2.51f,0.36f,0.0f);
COL[85]=new Color3f(2.5f,0.38f,0.0f);
COL[86]=new Color3f(2.46f,1.05f,0.5f);
COL[87]=new Color3f(2.46f,0.74f,0.0f);
COL[88]=new Color3f(2.41f,1.08f,0.45f);
COL[89]=new Color3f(2.5f,0.89f,0.0f);
COL[90]=new Color3f(2.51f,0.93f,0.12f);
COL[91]=new Color3f(2.34f,1.4f,1.38f);
COL[92]=new Color3f(2.47f,0.89f,0.04f);
COL[93]=new Color3f(2.41f,1.08f,0.45f);
COL[94]=new Color3f(2.34f,1.4f,1.38f);
COL[95]=new Color3f(2.44f,0.89f,0.13f);
COL[96]=new Color3f(2.5f,0.38f,0.0f);
COL[97]=new Color3f(2.47f,0.89f,0.04f);
COL[98]=new Color3f(2.44f,0.89f,0.13f);
COL[99]=new Color3f(2.46f,1.05f,0.5f);
COL[100]=new Color3f(2.5f,0.38f,0.0f);
COL[101]=new Color3f(2.5f,0.89f,0.0f);
COL[102]=new Color3f(2.41f,1.08f,0.45f);
COL[103]=new Color3f(2.47f,0.89f,0.04f);
COL[104]=new Color3f(2.51f,0.36f,0.0f);
COL[105]=new Color3f(2.51f,0.55f,0.0f);
COL[106]=new Color3f(2.5f,0.89f,0.0f);
COL[107]=new Color3f(2.5f,0.38f,0.0f);
COL[108]=new Color3f(2.51f,0.55f,0.0f);
COL[109]=new Color3f(2.51f,0.36f,0.0f);
COL[110]=new Color3f(2.46f,1.29f,0.17f);
COL[111]=new Color3f(2.33f,0.97f,0.82f);
COL[112]=new Color3f(0.46f,2.2f,0.56f);
COL[113]=new Color3f(0.57f,2.19f,0.66f);
COL[114]=new Color3f(1.31f,2.36f,1.37f);
COL[115]=new Color3f(0.33f,2.3f,0.45f);
COL[116]=new Color3f(0.57f,2.19f,0.66f);
COL[117]=new Color3f(0.46f,2.2f,0.56f);
COL[118]=new Color3f(0.5f,2.2f,0.6f);
COL[119]=new Color3f(0.54f,2.2f,0.64f);
COL[120]=new Color3f(0.54f,2.2f,0.64f);
COL[121]=new Color3f(0.5f,2.2f,0.6f);
COL[122]=new Color3f(0.35f,2.03f,0.45f);
COL[123]=new Color3f(0.35f,2.03f,0.45f);
COL[124]=new Color3f(0.54f,2.2f,0.64f);
COL[125]=new Color3f(0.35f,2.03f,0.45f);
COL[126]=new Color3f(0.35f,2.03f,0.45f);
COL[127]=new Color3f(0.72f,2.19f,0.81f);
COL[128]=new Color3f(0.35f,2.03f,0.45f);
COL[129]=new Color3f(0.35f,2.03f,0.45f);
COL[130]=new Color3f(0.35f,2.03f,0.45f);
COL[131]=new Color3f(0.35f,2.03f,0.45f);
COL[132]=new Color3f(0.35f,2.03f,0.45f);
COL[133]=new Color3f(0.5f,2.2f,0.6f);
COL[134]=new Color3f(0.5f,2.17f,0.59f);
COL[135]=new Color3f(0.35f,2.03f,0.45f);
COL[136]=new Color3f(0.57f,2.19f,0.66f);
COL[137]=new Color3f(0.54f,2.2f,0.64f);
COL[138]=new Color3f(0.72f,2.19f,0.81f);
COL[139]=new Color3f(0.65f,2.19f,0.73f);
COL[140]=new Color3f(0.5f,2.2f,0.6f);
COL[141]=new Color3f(0.46f,2.2f,0.56f);
COL[142]=new Color3f(0.33f,2.23f,0.45f);
COL[143]=new Color3f(0.5f,2.17f,0.59f);
COL[144]=new Color3f(1.31f,2.36f,1.37f);
COL[145]=new Color3f(0.57f,2.19f,0.66f);
COL[146]=new Color3f(0.65f,2.19f,0.73f);
COL[147]=new Color3f(0.46f,2.4f,0.58f);
COL[148]=new Color3f(0.46f,2.2f,0.56f);
COL[149]=new Color3f(0.33f,2.3f,0.45f);
COL[150]=new Color3f(0.33f,2.44f,0.45f);
COL[151]=new Color3f(0.33f,2.23f,0.45f);
COL[152]=new Color3f(0.33f,2.3f,0.45f);
COL[153]=new Color3f(1.31f,2.36f,1.37f);
COL[154]=new Color3f(0.46f,2.4f,0.58f);
COL[155]=new Color3f(0.33f,2.44f,0.45f);
COL[156]=new Color3f(0.46f,2.4f,0.58f);
COL[157]=new Color3f(0.65f,2.19f,0.73f);
COL[158]=new Color3f(0.33f,2.23f,0.45f);
COL[159]=new Color3f(0.33f,2.44f,0.45f);
COL[160]=new Color3f(0.5f,2.17f,0.59f);
COL[161]=new Color3f(0.33f,2.23f,0.45f);
COL[162]=new Color3f(0.65f,2.19f,0.73f);
COL[163]=new Color3f(0.72f,2.19f,0.81f);
COL[164]=new Color3f(0.35f,2.03f,0.45f);
COL[165]=new Color3f(0.5f,2.17f,0.59f);
COL[166]=new Color3f(0.72f,2.19f,0.81f);
COL[167]=new Color3f(0.35f,2.03f,0.45f);

NOR[0]=new Vector3f(0.0f,0.00872812047601f,0.999961912632f);
NOR[1]=new Vector3f(0.0f,0.00872812047601f,0.999961912632f);
NOR[2]=new Vector3f(0.0f,0.00872812047601f,0.999961912632f);
NOR[3]=new Vector3f(0.0f,0.00872812047601f,0.999961912632f);
NOR[4]=new Vector3f(0.0f,-1.0f,-0.0f);
NOR[5]=new Vector3f(0.0f,-1.0f,-0.0f);
NOR[6]=new Vector3f(0.0f,-1.0f,-0.0f);
NOR[7]=new Vector3f(0.0f,-1.0f,-0.0f);
NOR[8]=new Vector3f(0.0f,0.216846600175f,0.976205646992f);
NOR[9]=new Vector3f(0.0f,0.216846600175f,0.976205646992f);
NOR[10]=new Vector3f(0.0f,0.216846600175f,0.976205646992f);
NOR[11]=new Vector3f(0.0f,0.216846600175f,0.976205646992f);
NOR[12]=new Vector3f(-0.970422625542f,0.241412311792f,0.0f);
NOR[13]=new Vector3f(-0.970422625542f,0.241412311792f,0.0f);
NOR[14]=new Vector3f(-0.970422625542f,0.241412311792f,0.0f);
NOR[15]=new Vector3f(-0.970422625542f,0.241412311792f,0.0f);
NOR[16]=new Vector3f(0.0f,1.0f,-0.0f);
NOR[17]=new Vector3f(0.0f,1.0f,-0.0f);
NOR[18]=new Vector3f(0.0f,1.0f,-0.0f);
NOR[19]=new Vector3f(0.0f,1.0f,-0.0f);
NOR[20]=new Vector3f(0.970422625542f,0.241412296891f,0.0f);
NOR[21]=new Vector3f(0.970422625542f,0.241412296891f,0.0f);
NOR[22]=new Vector3f(0.970422625542f,0.241412296891f,0.0f);
NOR[23]=new Vector3f(0.970422625542f,0.241412296891f,0.0f);
NOR[24]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[25]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[26]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[27]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[28]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[29]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[30]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[31]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[32]=new Vector3f(-0.99938762188f,0.0349901765585f,0.0f);
NOR[33]=new Vector3f(-0.99938762188f,0.0349901765585f,0.0f);
NOR[34]=new Vector3f(-0.99938762188f,0.0349901765585f,0.0f);
NOR[35]=new Vector3f(-0.99938762188f,0.0349901765585f,0.0f);
NOR[36]=new Vector3f(0.99938762188f,0.0349901393056f,0.0f);
NOR[37]=new Vector3f(0.99938762188f,0.0349901393056f,0.0f);
NOR[38]=new Vector3f(0.99938762188f,0.0349901393056f,0.0f);
NOR[39]=new Vector3f(0.99938762188f,0.0349901393056f,0.0f);
NOR[40]=new Vector3f(0.0f,-1.0f,-1.53055523811e-007f);
NOR[41]=new Vector3f(0.0f,-1.0f,-1.53055523811e-007f);
NOR[42]=new Vector3f(0.0f,-1.0f,-1.53055523811e-007f);
NOR[43]=new Vector3f(0.0f,-1.0f,-1.53055523811e-007f);
NOR[44]=new Vector3f(0.0f,0.0087282564491f,-0.999961912632f);
NOR[45]=new Vector3f(0.0f,0.0087282564491f,-0.999961912632f);
NOR[46]=new Vector3f(0.0f,0.0087282564491f,-0.999961912632f);
NOR[47]=new Vector3f(0.0f,0.0087282564491f,-0.999961912632f);
NOR[48]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[49]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[50]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[51]=new Vector3f(0.0f,-1.0f,0.0f);
NOR[52]=new Vector3f(0.0259494911879f,0.208663702011f,-0.97764313221f);
NOR[53]=new Vector3f(0.0259494911879f,0.208663702011f,-0.97764313221f);
NOR[54]=new Vector3f(0.0259494911879f,0.208663702011f,-0.97764313221f);
NOR[55]=new Vector3f(0.0259494911879f,0.208663702011f,-0.97764313221f);
NOR[56]=new Vector3f(0.208663672209f,-0.0259494073689f,-
0.97764313221f);
NOR[57]=new Vector3f(0.208663672209f,-0.0259494073689f,-
0.97764313221f);
NOR[58]=new Vector3f(0.208663672209f,-0.0259494073689f,-
0.97764313221f);
NOR[59]=new Vector3f(0.208663672209f,-0.0259494073689f,-
0.97764313221f);
NOR[60]=new Vector3f(-1.0f,-0.0f,0.0f);
NOR[61]=new Vector3f(-1.0f,-0.0f,0.0f);
NOR[62]=new Vector3f(-1.0f,-0.0f,0.0f);
NOR[63]=new Vector3f(-1.0f,-0.0f,0.0f);
NOR[64]=new Vector3f(0.00872821360826f,6.62712196231e-008f,-
0.999961912632f);
NOR[65]=new Vector3f(0.00872821360826f,6.62712196231e-008f,-
0.999961912632f);
NOR[66]=new Vector3f(0.00872821360826f,6.62712196231e-008f,-
0.999961912632f);
NOR[67]=new Vector3f(0.00872821360826f,6.62712196231e-008f,-
0.999961912632f);
NOR[68]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[69]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[70]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[71]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[72]=new Vector3f(0.034990105778f,-0.99938762188f,-7.07372635134e-
007f);
NOR[73]=new Vector3f(0.034990105778f,-0.99938762188f,-7.07372635134e-
007f);
NOR[74]=new Vector3f(0.034990105778f,-0.99938762188f,-7.07372635134e-
007f);
NOR[75]=new Vector3f(0.034990105778f,-0.99938762188f,-7.07372635134e-
007f);
NOR[76]=new Vector3f(0.034990221262f,0.99938762188f,7.07372635134e-
007f);
NOR[77]=new Vector3f(0.034990221262f,0.99938762188f,7.07372635134e-
007f);
NOR[78]=new Vector3f(0.034990221262f,0.99938762188f,7.07372635134e-
007f);
NOR[79]=new Vector3f(0.034990221262f,0.99938762188f,7.07372635134e-
007f);
NOR[80]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[81]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[82]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[83]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[84]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[85]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[86]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[87]=new Vector3f(-1.0f,0.0f,0.0f);
NOR[88]=new Vector3f(0.241412237287f,-0.970422685146f,0.0f);
NOR[89]=new Vector3f(0.241412237287f,-0.970422685146f,0.0f);
NOR[90]=new Vector3f(0.241412237287f,-0.970422685146f,0.0f);
NOR[91]=new Vector3f(0.241412237287f,-0.970422685146f,0.0f);
NOR[92]=new Vector3f(1.0f,0.0f,-0.0f);
NOR[93]=new Vector3f(1.0f,0.0f,-0.0f);
NOR[94]=new Vector3f(1.0f,0.0f,-0.0f);
NOR[95]=new Vector3f(1.0f,0.0f,-0.0f);
NOR[96]=new Vector3f(0.241412445903f,0.970422625542f,0.0f);
NOR[97]=new Vector3f(0.241412445903f,0.970422625542f,0.0f);
NOR[98]=new Vector3f(0.241412445903f,0.970422625542f,0.0f);
NOR[99]=new Vector3f(0.241412445903f,0.970422625542f,0.0f);
NOR[100]=new Vector3f(0.216846644878f,-4.52919515226e-
008f,0.976205646992f);
NOR[101]=new Vector3f(0.216846644878f,-4.52919515226e-
008f,0.976205646992f);
NOR[102]=new Vector3f(0.216846644878f,-4.52919515226e-
008f,0.976205646992f);
NOR[103]=new Vector3f(0.216846644878f,-4.52919515226e-
008f,0.976205646992f);
NOR[104]=new Vector3f(-1.0f,0.0f,-0.0f);
NOR[105]=new Vector3f(-1.0f,0.0f,-0.0f);
NOR[106]=new Vector3f(-1.0f,0.0f,-0.0f);
NOR[107]=new Vector3f(-1.0f,0.0f,-0.0f);
NOR[108]=new Vector3f(0.00872816052288f,-3.31356098116e-
008f,0.999961912632f);
NOR[109]=new Vector3f(0.00872816052288f,-3.31356098116e-
008f,0.999961912632f);
NOR[110]=new Vector3f(0.00872816052288f,-3.31356098116e-
008f,0.999961912632f);
NOR[111]=new Vector3f(0.00872816052288f,-3.31356098116e-
008f,0.999961912632f);
NOR[112]=new Vector3f(0.999961912632f,0.0f,-0.00872819777578f);
NOR[113]=new Vector3f(0.999961912632f,0.0f,-0.00872819777578f);
NOR[114]=new Vector3f(0.999961912632f,0.0f,-0.00872819777578f);
NOR[115]=new Vector3f(0.999961912632f,0.0f,-0.00872819777578f);
NOR[116]=new Vector3f(0.0f,0.0f,1.0f);
NOR[117]=new Vector3f(0.0f,0.0f,1.0f);
NOR[118]=new Vector3f(0.0f,0.0f,1.0f);
NOR[119]=new Vector3f(0.0f,0.0f,1.0f);
NOR[120]=new Vector3f(0.976205766201f,0.0f,-0.216846525669f);
NOR[121]=new Vector3f(0.976205766201f,0.0f,-0.216846525669f);
NOR[122]=new Vector3f(0.976205766201f,0.0f,-0.216846525669f);
NOR[123]=new Vector3f(0.976205766201f,0.0f,-0.216846525669f);
NOR[124]=new Vector3f(-6.8954307153e-008f,0.970422625542f,-
0.241412356496f);
NOR[125]=new Vector3f(-6.8954307153e-008f,0.970422625542f,-
0.241412356496f);
NOR[126]=new Vector3f(-6.8954307153e-008f,0.970422625542f,-
0.241412356496f);
NOR[127]=new Vector3f(-6.8954307153e-008f,0.970422625542f,-
0.241412356496f);
NOR[128]=new Vector3f(0.0f,0.0f,-1.0f);
NOR[129]=new Vector3f(0.0f,0.0f,-1.0f);
NOR[130]=new Vector3f(0.0f,0.0f,-1.0f);
NOR[131]=new Vector3f(0.0f,0.0f,-1.0f);
NOR[132]=new Vector3f(2.81539627167e-007f,-0.970422625542f,-
0.241412341595f);
NOR[133]=new Vector3f(2.81539627167e-007f,-0.970422625542f,-
0.241412341595f);
NOR[134]=new Vector3f(2.81539627167e-007f,-0.970422625542f,-
0.241412341595f);
NOR[135]=new Vector3f(2.81539627167e-007f,-0.970422625542f,-
0.241412341595f);
NOR[136]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[137]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[138]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[139]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[140]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[141]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[142]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[143]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[144]=new Vector3f(6.18950821263e-007f,0.999387741089f,-
0.0349901504815f);
NOR[145]=new Vector3f(6.18950821263e-007f,0.999387741089f,-
0.0349901504815f);
NOR[146]=new Vector3f(6.18950821263e-007f,0.999387741089f,-
0.0349901504815f);
NOR[147]=new Vector3f(6.18950821263e-007f,0.999387741089f,-
0.0349901504815f);
NOR[148]=new Vector3f(-7.07372350917e-007f,-0.999387741089f,-
0.0349901877344f);
NOR[149]=new Vector3f(-7.07372350917e-007f,-0.999387741089f,-
0.0349901877344f);
NOR[150]=new Vector3f(-7.07372350917e-007f,-0.999387741089f,-
0.0349901877344f);
NOR[151]=new Vector3f(-7.07372350917e-007f,-0.999387741089f,-
0.0349901877344f);
NOR[152]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[153]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[154]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[155]=new Vector3f(-0.0f,0.0f,1.0f);
NOR[156]=new Vector3f(-0.999961912632f,0.0f,-0.00872811861336f);
NOR[157]=new Vector3f(-0.999961912632f,0.0f,-0.00872811861336f);
NOR[158]=new Vector3f(-0.999961912632f,0.0f,-0.00872811861336f);
NOR[159]=new Vector3f(-0.999961912632f,0.0f,-0.00872811861336f);
NOR[160]=new Vector3f(0.0f,0.0f,1.0f);
NOR[161]=new Vector3f(0.0f,0.0f,1.0f);
NOR[162]=new Vector3f(0.0f,0.0f,1.0f);
NOR[163]=new Vector3f(0.0f,0.0f,1.0f);
NOR[164]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[165]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[166]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[167]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);

NOR[168]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[169]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[170]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[171]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[172]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[173]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[174]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[175]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[176]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[177]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[178]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[179]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[180]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[181]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[182]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[183]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[184]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[185]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[186]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[187]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[188]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[189]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[190]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[191]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[192]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[193]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[194]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[195]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[196]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[197]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[198]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[199]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[200]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[201]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[202]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[203]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[204]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[205]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[206]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[207]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[208]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[209]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[210]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[211]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[212]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[213]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[214]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[215]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[216]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[217]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[218]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[219]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[220]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[221]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[222]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[223]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[224]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[225]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[226]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[227]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[228]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[229]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[230]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[231]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[232]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[233]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[234]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[235]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[236]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[237]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[238]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[239]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[240]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[241]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[242]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[243]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[244]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[245]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[246]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[247]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[248]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[249]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[250]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[251]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[252]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[253]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[254]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[255]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[256]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[257]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[258]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[259]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[260]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[261]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[262]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[263]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[264]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[265]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[266]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[267]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[268]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[269]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[270]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[271]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[272]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[273]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[274]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[275]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[276]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[277]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[278]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[279]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[280]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[281]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[282]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[283]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[284]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[285]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[286]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[287]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[288]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[289]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[290]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[291]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[292]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[293]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[294]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[295]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[296]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[297]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[298]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[299]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[300]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[301]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[302]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[303]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[304]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[305]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[306]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[307]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[308]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[309]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[310]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[311]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[312]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[313]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[314]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[315]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[316]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[317]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[318]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[319]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[320]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[321]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[322]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[323]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[324]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[325]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[326]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[327]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[328]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[329]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[330]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[331]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[332]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[333]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[334]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
NOR[335]=new Vector3f(-0.97764313221f,-0.0259494930506f,-
0.208663746715f);
}

You might also like