Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
96 views

ModelViever ModelViewer

This document contains the code for a Java class called ModelViewer that is used to view 3D models. It imports various Java 3D libraries for working with 3D graphics, textures, lighting, and transformations. The class initializes default materials, appearances, lights and sets up a simple 3D universe for rendering a scene. It loads multiple 3D models and textures and allows rotating and translating the models using mouse and keyboard input.

Uploaded by

api-26014369
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
96 views

ModelViever ModelViewer

This document contains the code for a Java class called ModelViewer that is used to view 3D models. It imports various Java 3D libraries for working with 3D graphics, textures, lighting, and transformations. The class initializes default materials, appearances, lights and sets up a simple 3D universe for rendering a scene. It loads multiple 3D models and textures and allows rotating and translating the models using mouse and keyboard input.

Uploaded by

api-26014369
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 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