aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorBucketBrigade <138534411+CookieBrigade@users.noreply.github.com>2024-09-13 18:00:19 -0500
committerGitHub <noreply@github.com>2024-09-14 01:00:19 +0200
commite7a32141309838050e533e8fd422f7773e0d465c (patch)
treec3b302130d85d34f3e311ff798d05ecbebdeb598 /src/main
parent82793acd17f82173fbd06f663d6a01a7e9e306d2 (diff)
downloadGT5-Unofficial-e7a32141309838050e533e8fd422f7773e0d465c.tar.gz
GT5-Unofficial-e7a32141309838050e533e8fd422f7773e0d465c.tar.bz2
GT5-Unofficial-e7a32141309838050e533e8fd422f7773e0d465c.zip
Antimatter Finishing touches (#3181)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/AntimatterForge.java45
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java8
-rw-r--r--src/main/java/goodgenerator/client/render/AntimatterRenderer.java52
-rw-r--r--src/main/resources/assets/goodgenerator/models/Antimatter.obj1374
-rw-r--r--src/main/resources/assets/goodgenerator/models/GlowRing.obj745
-rw-r--r--src/main/resources/assets/goodgenerator/shaders/antimatter.vert.glsl44
-rw-r--r--src/main/resources/assets/goodgenerator/shaders/glow.frag.glsl6
-rw-r--r--src/main/resources/assets/goodgenerator/shaders/glow.vert.glsl5
8 files changed, 1994 insertions, 285 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/AntimatterForge.java b/src/main/java/goodgenerator/blocks/tileEntity/AntimatterForge.java
index 8f5b522d3c..0fa1a539f3 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/AntimatterForge.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/AntimatterForge.java
@@ -107,6 +107,8 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
private long guiPassiveEnergy = 0;
private long guiActiveEnergy = 0;
+ private boolean canRender = false;
+
private List<AntimatterOutputHatch> amOutputHatches = new ArrayList<>(16);
private static final ClassValue<IStructureDefinition<AntimatterForge>> STRUCTURE_DEFINITION = new ClassValue<IStructureDefinition<AntimatterForge>>() {
@@ -183,7 +185,7 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
.addInfo(EnumChatFormatting.LIGHT_PURPLE + "Dimensions not included!" + EnumChatFormatting.GRAY)
.addInfo("Converts protomatter into antimatter")
.addInfo(
- "Consumes 10 000 000 + (" + EnumChatFormatting.DARK_BLUE
+ "Consumes 10 000 000 + (" + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ " * "
@@ -194,7 +196,7 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
+ EnumChatFormatting.GRAY
+ " EU/t passively. The consumption decays by 0.5% every tick when empty")
.addInfo(
- "Uses (" + EnumChatFormatting.DARK_BLUE
+ "Uses (" + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ " * "
@@ -216,7 +218,7 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
+ "10% of antimatter will be voided!"
+ EnumChatFormatting.GRAY)
.addInfo(
- "Produces (" + EnumChatFormatting.DARK_BLUE
+ "Produces (" + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ "^"
@@ -228,14 +230,14 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
+ String.valueOf(this.baseSkew)
+ EnumChatFormatting.GRAY
+ ", 1) of antimatter per cycle, consuming equal amounts of Protomatter")
- .addInfo("The change can be negative! (N = Skewed Normal Distribution)")
+ .addInfo("The change can be negative! (N = Normal Distribution with mean of 0.2)")
.addSeparator()
.addInfo("Can be supplied with stabilization fluids to improve antimatter generation")
.addInfo(
EnumChatFormatting.GREEN + "Magnetic Stabilization"
+ EnumChatFormatting.GRAY
+ " (Uses "
- + EnumChatFormatting.DARK_BLUE
+ + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ "^0.5 per cycle)")
@@ -251,7 +253,7 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
EnumChatFormatting.DARK_PURPLE + "Gravity Stabilization"
+ EnumChatFormatting.GRAY
+ " (Uses "
- + EnumChatFormatting.DARK_BLUE
+ + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ "^0.5 per cycle)")
@@ -271,7 +273,7 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
EnumChatFormatting.GOLD + "Containment Stabilization"
+ EnumChatFormatting.GRAY
+ " (Uses "
- + EnumChatFormatting.DARK_BLUE
+ + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ "^(2/7) per operation)")
@@ -285,7 +287,7 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
EnumChatFormatting.AQUA + "Activation Stabilization"
+ EnumChatFormatting.GRAY
+ " (Uses "
- + EnumChatFormatting.DARK_BLUE
+ + EnumChatFormatting.DARK_AQUA
+ "Antimatter"
+ EnumChatFormatting.GRAY
+ "^(1/3) per operation)")
@@ -298,7 +300,6 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
+ "+0.10"
+ EnumChatFormatting.GRAY)
.addSeparator()
- .addSeparator()
.addCasingInfoMin("Antimatter Containment Casing", 512, false)
.addCasingInfoMin("Magnetic Flux Casing", 2274, false)
.addCasingInfoMin("Gravity Stabilization Casing", 623, false)
@@ -886,22 +887,26 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
}
public void updateAntimatterSize(float antimatterAmount) {
- TileAntimatter render = forceGetAntimatterRender();
-
- if (antimatterAmount < 0) {
- setProtoRender(false);
- render.setCoreSize(0);
+ if (antimatterAmount <= 0) {
+ destroyAntimatterRender();
return;
}
+ TileAntimatter render = getAntimatterRender();
+ if (render == null) {
+ createAntimatterRender();
+ render = getAntimatterRender();
+ }
+
float size = (float) Math.pow(antimatterAmount, 0.17);
render.setCoreSize(size);
}
public void setProtoRender(boolean flag) {
- TileAntimatter render = forceGetAntimatterRender();
+ TileAntimatter render = getAntimatterRender();
+ if (render == null) return;
render.setProtomatterRender(flag);
- if (flag) render.setRotationFields(getRotation(), getDirection());
+ render.setRotationFields(getRotation(), getDirection());
}
public TileAntimatter getAntimatterRender() {
@@ -973,12 +978,4 @@ public class AntimatterForge extends MTEExtendedPowerMultiBlockBase<AntimatterFo
world.setBlock(wX, wY, wZ, Blocks.air);
world.setBlock(wX, wY, wZ, Loaders.antimatterRenderBlock);
}
-
- public TileAntimatter forceGetAntimatterRender() {
- TileAntimatter render = getAntimatterRender();
- if (render != null) return render;
- else createAntimatterRender();
- return getAntimatterRender();
- }
-
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java b/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java
index 8e2027b36d..13494f9234 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java
@@ -16,9 +16,9 @@ public class TileAntimatter extends TileEntity {
public boolean shouldRender = true;
// Antimatter Core settings
- public static final float spikeR = 0.82f, spikeG = 0.92f, spikeB = 1f;
- public static final float coreR = 0.43f, coreG = 0.40f, coreB = 1f;
- public static final float maximalRadius = 9; // Includes core radius + spike length
+ public static final float spikeR = 0.153f, spikeG = 0.435f, spikeB = 1f;
+ public static final float coreR = 0.435f, coreG = 0.718f, coreB = 1f;
+ public static final float maximalRadius = 7; // Includes core radius + spike length
// Due to being partially managed by a global timer, rotationSpeedMultiplier shouldn't change
// Otherwise it'll cause a snapping effect
public final float rotationSpeedMultiplier = 1;
@@ -27,7 +27,7 @@ public class TileAntimatter extends TileEntity {
public float coreScaleSnapshot = 1f;
public final float coreScaleTransitionTime = 2.5f;
public float timeSnapshot;
- public float spikeFactor = 1f;
+ public float spikeFactor = .01f;
// Protomatter Settings
public static float protoSpiralMaxRadius = .5f;
diff --git a/src/main/java/goodgenerator/client/render/AntimatterRenderer.java b/src/main/java/goodgenerator/client/render/AntimatterRenderer.java
index 3b988b4491..c6d4f689c6 100644
--- a/src/main/java/goodgenerator/client/render/AntimatterRenderer.java
+++ b/src/main/java/goodgenerator/client/render/AntimatterRenderer.java
@@ -26,11 +26,11 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
private static ShaderProgram antimatterProgram;
private static IModelCustom antimatterModel;
private static IModelCustom containerModel;
+ private static IModelCustom ringModel;
private static final float modelNormalize = .5f;
private int uColorSpike = -1;
private int uColorCore = -1;
- private int uSpikeMult = -1;
private int uScale = -1;
private int uScaleSnapshot = -1;
private int uTime = -1;
@@ -49,6 +49,10 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
private boolean initialized = false;
+ // Glowy Ring
+ private static ShaderProgram glowProgram;
+ private int uGlowColor = -1;
+
private static final float[] promomatterVerticies = {
// Front Face
-0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f,
@@ -75,6 +79,9 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
ResourceLocation location = new ResourceLocation(GoodGenerator.resourceDomain, "models/SmoothSphere.obj");
containerModel = (IModelCustom) new WavefrontObject(location);
+
+ ResourceLocation ringLocation = new ResourceLocation(GoodGenerator.resourceDomain, "models/GlowRing.obj");
+ ringModel = (IModelCustom) new WavefrontObject(ringLocation);
}
private void init() {
@@ -90,13 +97,11 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
uScaleSnapshot = antimatterProgram.getUniformLocation("u_ScaleSnapshot");
uTime = antimatterProgram.getUniformLocation("u_Time");
uTimeSnapshot = antimatterProgram.getUniformLocation("u_TimeSnapshot");
- uSpikeMult = antimatterProgram.getUniformLocation("u_SpikeMult");
uOpacity = antimatterProgram.getUniformLocation("u_Opacity");
uColorCore = antimatterProgram.getUniformLocation("u_ColorCore");
uColorSpike = antimatterProgram.getUniformLocation("u_ColorSpike");
} catch (NullPointerException e) {
System.out.println(e.getMessage());
- ShaderProgram.clear();
return;
}
@@ -123,7 +128,6 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
uProtomatterColor = protomatterProgram.getUniformLocation("u_Color");
uProtomatterSpiralRadius = protomatterProgram.getUniformLocation("u_SpiralRadius");
} catch (NullPointerException e) {
- ShaderProgram.clear();
return;
}
@@ -143,6 +147,21 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
GL20.glUniform3(uProtomatterVertices, bufferBeamVertex);
GL20.glUniform1f(uCubeCount, particleCount);
ShaderProgram.clear();
+ GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
+
+ try {
+ glowProgram = new ShaderProgram(
+ GoodGenerator.resourceDomain,
+ "shaders/glow.vert.glsl",
+ "shaders/glow.frag.glsl");
+ uGlowColor = glowProgram.getUniformLocation("u_Color");
+ glowProgram.use();
+ GL20.glUniform3f(uGlowColor, 0, 1f, 1f);
+
+ } catch (NullPointerException e) {
+ return;
+ }
+ ShaderProgram.clear();
initialized = true;
}
@@ -174,24 +193,22 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
GL20.glUniform1f(uTime, realTime);
GL20.glUniform1f(uTimeSnapshot, snapTime);
- GL20.glUniform1f(uSpikeMult, tile.spikeFactor);
GL20.glUniform1f(uScale, coreSize);
GL20.glUniform1f(uScaleSnapshot, coreSizeSnapshot);
GL11.glDisable(GL11.GL_CULL_FACE);
+ GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
antimatterModel.renderAll();
ShaderProgram.clear();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glColor3f(0, 0, 0);
- GL11.glScalef(
- -coreSize * (1 + tile.spikeFactor),
- -coreSize * (1 + tile.spikeFactor),
- -coreSize * (1 + tile.spikeFactor));
+ GL11.glPopMatrix();
+ GL11.glPushMatrix();
+ GL11.glTranslated(x, y, z);
+ GL11.glScalef(-TileAntimatter.maximalRadius, -TileAntimatter.maximalRadius, -TileAntimatter.maximalRadius);
containerModel.renderAll();
-
- GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
GL11.glPopMatrix();
GL11.glPopAttrib();
}
@@ -225,6 +242,17 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
}
+ public void renderRing(TileAntimatter tile, double x, double y, double z, float timer) {
+ GL11.glPushMatrix();
+ GL11.glColor3f(0, 1, 1);
+ GL11.glTranslated(x, y, z);
+ glowProgram.use();
+ GL11.glRotatef(tile.rotationAngle, tile.rotX, tile.rotY, tile.rotZ);
+ ringModel.renderAll();
+ ShaderProgram.clear();
+ GL11.glPopMatrix();
+ }
+
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) {
@@ -249,5 +277,7 @@ public class AntimatterRenderer extends TileEntitySpecialRenderer {
if (!Antimatter.protomatterRender) return;
renderProtomatterBeam(Antimatter, tx, ty, tz, timer);
+
+ renderRing(Antimatter, tx, ty, tz, timer);
}
}
diff --git a/src/main/resources/assets/goodgenerator/models/Antimatter.obj b/src/main/resources/assets/goodgenerator/models/Antimatter.obj
index 91c63c8fcf..d02d2de791 100644
--- a/src/main/resources/assets/goodgenerator/models/Antimatter.obj
+++ b/src/main/resources/assets/goodgenerator/models/Antimatter.obj
@@ -2,269 +2,1223 @@
# www.blender.org
mtllib Antimatter.mtl
o Icosphere
-v 0.000000 -2.000000 0.000000
-v 1.447215 -0.894439 1.051451
-v -0.552776 -0.894440 1.701298
-v -1.788852 -0.894431 0.000000
-v -0.552776 -0.894440 -1.701298
-v 1.447215 -0.894439 -1.051451
-v 0.552776 0.894440 1.701298
-v -1.447215 0.894439 1.051451
-v -1.447215 0.894439 -1.051451
-v 0.552776 0.894440 -1.701298
-v 1.788852 0.894431 0.000000
-v 0.000000 2.000000 0.000000
-v -0.162456 -0.850654 0.499995
-v 0.425323 -0.850654 0.309011
-v 0.262869 -0.525738 0.809012
-v 0.850648 -0.525736 0.000000
-v 0.425323 -0.850654 -0.309011
-v -0.525730 -0.850652 0.000000
-v -0.688189 -0.525736 0.499997
-v -0.162456 -0.850654 -0.499995
-v -0.688189 -0.525736 -0.499997
-v 0.262869 -0.525738 -0.809012
-v 0.951058 0.000000 0.309013
-v 0.951058 0.000000 -0.309013
-v 0.000000 0.000000 1.000000
-v 0.587786 0.000000 0.809017
-v -0.951058 0.000000 0.309013
-v -0.587786 0.000000 0.809017
-v -0.587786 0.000000 -0.809017
-v -0.951058 0.000000 -0.309013
-v 0.587786 0.000000 -0.809017
-v 0.000000 0.000000 -1.000000
-v 0.688189 0.525736 0.499997
-v -0.262869 0.525738 0.809012
-v -0.850648 0.525736 0.000000
-v -0.262869 0.525738 -0.809012
-v 0.688189 0.525736 -0.499997
-v 0.162456 0.850654 0.499995
-v 0.525730 0.850652 0.000000
-v -0.425323 0.850654 0.309011
-v -0.425323 0.850654 -0.309011
-v 0.162456 0.850654 -0.499995
-vn 0.2898 -0.3471 0.8919
-vn 0.3006 -0.8338 -0.4630
-vn -0.7587 -0.3471 0.5513
-vn -0.7587 -0.3471 -0.5513
-vn 0.2898 -0.3471 -0.8919
-vn 0.8803 0.1040 -0.4630
-vn 0.7123 0.1040 0.6941
-vn -0.4400 0.1040 0.8919
-vn -0.9843 0.1040 -0.1429
-vn -0.1683 0.1040 -0.9802
-vn 0.5905 0.6836 0.4290
-vn -0.2255 0.6836 0.6941
-vn -0.7298 0.6836 -0.0000
-vn -0.2255 0.6836 -0.6941
-vn 0.5905 0.6836 -0.4290
-vn 0.5153 0.8338 -0.1978
-vn 0.3474 0.8338 0.4290
-vn -0.3006 0.8338 0.4630
-vn -0.5332 0.8338 -0.1429
-vn -0.0289 0.8338 -0.5512
-vn 0.7587 0.3471 -0.5513
-vn 0.4911 0.7947 -0.3568
-vn 0.5153 0.8338 0.1978
-vn -0.2898 0.3471 -0.8919
-vn -0.1876 0.7947 -0.5773
-vn 0.3474 0.8338 -0.4290
-vn -0.9378 0.3471 -0.0000
-vn -0.6071 0.7947 -0.0000
-vn -0.3006 0.8338 -0.4630
-vn -0.2898 0.3471 0.8919
-vn -0.1876 0.7947 0.5773
-vn -0.5332 0.8338 0.1429
-vn 0.7587 0.3471 0.5513
-vn 0.4911 0.7947 0.3568
-vn -0.0289 0.8338 0.5512
-vn 0.4400 -0.1040 -0.8919
-vn 0.7947 0.1876 -0.5773
-vn 0.9843 -0.1040 -0.1429
-vn -0.7123 -0.1040 -0.6941
-vn -0.3035 0.1876 -0.9342
-vn 0.1683 -0.1040 -0.9802
-vn -0.8803 -0.1040 0.4630
-vn -0.9822 0.1876 -0.0000
-vn -0.8803 -0.1040 -0.4630
-vn 0.1683 -0.1040 0.9802
-vn -0.3035 0.1876 0.9342
-vn -0.7123 -0.1040 0.6941
-vn 0.9843 -0.1040 0.1429
-vn 0.7947 0.1876 0.5773
-vn 0.4400 -0.1040 0.8919
-vn 0.2255 -0.6836 -0.6941
-vn 0.3035 -0.1876 -0.9342
-vn 0.7123 0.1040 -0.6941
-vn -0.5905 -0.6836 -0.4290
-vn -0.7947 -0.1876 -0.5773
-vn -0.4400 0.1040 -0.8919
-vn -0.5905 -0.6836 0.4290
-vn -0.7947 -0.1876 0.5773
-vn -0.9843 0.1040 0.1429
-vn 0.2255 -0.6836 0.6941
-vn 0.3035 -0.1876 0.9342
-vn -0.1683 0.1040 0.9802
-vn 0.7298 -0.6836 -0.0000
-vn 0.9822 -0.1876 -0.0000
-vn 0.8803 0.1040 0.4630
-vn -0.3474 -0.8338 -0.4290
-vn 0.1876 -0.7947 -0.5773
-vn 0.5332 -0.8338 -0.1429
-vn -0.5153 -0.8338 0.1978
-vn -0.4911 -0.7947 -0.3568
-vn 0.0289 -0.8338 -0.5512
-vn 0.0289 -0.8338 0.5512
-vn -0.4911 -0.7947 0.3568
-vn -0.5153 -0.8338 -0.1978
-vn 0.3006 -0.8338 0.4630
-vn 0.6071 -0.7947 -0.0000
-vn 0.9378 -0.3471 -0.0000
-vn 0.5332 -0.8338 0.1429
-vn 0.1876 -0.7947 0.5773
-vn -0.3474 -0.8338 0.4290
+v 0.000000 -0.930305 -0.000000
+v 0.673174 -0.416049 0.489085
+v -0.257126 -0.416049 0.791362
+v -0.832088 -0.416047 -0.000000
+v -0.257126 -0.416049 -0.791362
+v 0.673174 -0.416049 -0.489085
+v 0.257126 0.416049 0.791362
+v -0.673174 0.416049 0.489085
+v -0.673174 0.416049 -0.489085
+v 0.257126 0.416049 -0.791362
+v 0.832088 0.416047 0.000000
+v -0.000000 0.930305 0.000000
+v -0.150250 -0.786741 0.462429
+v 0.393367 -0.786741 0.285795
+v 0.243117 -0.486235 0.748227
+v 0.786735 -0.486234 -0.000000
+v 0.393367 -0.786741 -0.285795
+v -0.486229 -0.786739 0.000000
+v -0.636482 -0.486234 0.462430
+v -0.150250 -0.786741 -0.462429
+v -0.636482 -0.486234 -0.462430
+v 0.243117 -0.486235 -0.748227
+v 0.879599 -0.000000 0.285796
+v 0.879599 -0.000000 -0.285796
+v 0.000000 -0.000000 0.924864
+v 0.543622 -0.000000 0.748230
+v -0.879599 0.000000 0.285796
+v -0.543622 0.000000 0.748230
+v -0.543622 0.000000 -0.748230
+v -0.879599 0.000000 -0.285796
+v 0.543622 -0.000000 -0.748230
+v -0.000000 0.000000 -0.924864
+v 0.636482 0.486234 0.462430
+v -0.243117 0.486235 0.748227
+v -0.786735 0.486234 -0.000000
+v -0.243117 0.486235 -0.748227
+v 0.636482 0.486234 -0.462430
+v 0.150250 0.786741 0.462429
+v 0.486229 0.786739 -0.000000
+v -0.393367 0.786741 0.285795
+v -0.393367 0.786741 -0.285795
+v 0.150250 0.786741 -0.462429
+v -0.073931 -0.898430 0.227539
+v 0.563546 -0.615787 0.409436
+v -0.021694 -0.467922 0.803114
+v 0.757104 -0.467921 0.268809
+v 0.563546 -0.615787 -0.409436
+v -0.239250 -0.898430 0.000000
+v -0.770514 -0.467920 0.227540
+v -0.073931 -0.898431 -0.227539
+v -0.454504 -0.467922 -0.662487
+v 0.489615 -0.467922 -0.636978
+v 0.802799 -0.228668 0.409437
+v 0.890141 0.228667 -0.140627
+v -0.141321 -0.228668 0.890030
+v 0.408812 0.228668 0.803116
+v -0.890141 -0.228667 0.140627
+v -0.637480 0.228668 0.636979
+v -0.408812 -0.228668 -0.803117
+v -0.802799 0.228668 -0.409437
+v 0.637480 -0.228668 -0.636979
+v 0.141321 0.228668 -0.890030
+v 0.454504 0.467922 0.662487
+v -0.489615 0.467922 0.636978
+v -0.757104 0.467921 -0.268809
+v 0.021694 0.467922 -0.803114
+v 0.770514 0.467920 -0.227540
+v 0.215252 0.615787 0.662486
+v 0.239250 0.898430 0.000000
+v -0.563546 0.615787 0.409436
+v -0.563546 0.615787 -0.409436
+v 0.215252 0.615787 -0.662486
+v -0.215252 -0.615787 0.662486
+v 0.193558 -0.898431 0.140627
+v 0.489615 -0.467922 0.636978
+v 0.757104 -0.467921 -0.268809
+v 0.193558 -0.898431 -0.140626
+v -0.696581 -0.615785 -0.000000
+v -0.454504 -0.467922 0.662487
+v -0.215252 -0.615788 -0.662486
+v -0.770514 -0.467920 -0.227540
+v -0.021694 -0.467922 -0.803114
+v 0.890141 0.228667 0.140627
+v 0.802799 -0.228668 -0.409437
+v 0.141321 0.228668 0.890030
+v 0.637480 -0.228668 0.636979
+v -0.802799 0.228668 0.409437
+v -0.408812 -0.228668 0.803117
+v -0.637480 0.228668 -0.636979
+v -0.890141 -0.228667 -0.140627
+v 0.408812 0.228668 -0.803117
+v -0.141321 -0.228668 -0.890030
+v 0.770514 0.467920 0.227540
+v 0.021694 0.467922 0.803114
+v -0.757104 0.467921 0.268809
+v -0.489615 0.467922 -0.636978
+v 0.454504 0.467922 -0.662487
+v 0.073931 0.898430 0.227539
+v 0.696581 0.615785 -0.000000
+v -0.193558 0.898431 0.140626
+v -0.193558 0.898431 -0.140627
+v 0.073931 0.898430 -0.227539
+v 0.339247 0.822416 -0.246477
+v 0.583871 0.671232 -0.246477
+v 0.414839 0.671233 -0.479126
+v -0.129583 0.822417 -0.398807
+v -0.053992 0.671234 -0.631458
+v -0.327487 0.671233 -0.542592
+v -0.419333 0.822417 -0.000000
+v -0.617237 0.671233 -0.143784
+v -0.617237 0.671233 0.143784
+v -0.129583 0.822417 0.398807
+v -0.327487 0.671233 0.542592
+v -0.053992 0.671234 0.631458
+v 0.339247 0.822416 0.246477
+v 0.414839 0.671233 0.479126
+v 0.583871 0.671232 0.246477
+v 0.793540 0.251895 -0.398809
+v 0.746822 0.007270 -0.542595
+v 0.624509 0.251896 -0.631460
+v -0.134077 0.251896 -0.877939
+v -0.285260 0.007270 -0.877940
+v -0.407573 0.251896 -0.789074
+v -0.876403 0.251896 -0.143784
+v -0.923122 0.007270 0.000000
+v -0.876403 0.251896 0.143784
+v -0.407573 0.251896 0.789074
+v -0.285260 0.007270 0.877940
+v -0.134077 0.251896 0.877939
+v 0.624509 0.251896 0.631460
+v 0.746822 0.007270 0.542595
+v 0.793540 0.251895 0.398809
+v 0.285260 -0.007270 -0.877940
+v 0.407573 -0.251896 -0.789074
+v 0.134077 -0.251896 -0.877939
+v -0.746822 -0.007270 -0.542595
+v -0.624509 -0.251896 -0.631460
+v -0.793540 -0.251895 -0.398809
+v -0.746822 -0.007270 0.542595
+v -0.793540 -0.251895 0.398809
+v -0.624509 -0.251896 0.631460
+v 0.285260 -0.007270 0.877940
+v 0.134077 -0.251896 0.877939
+v 0.407573 -0.251896 0.789074
+v 0.923122 -0.007270 -0.000000
+v 0.876403 -0.251896 0.143784
+v 0.876403 -0.251896 -0.143784
+v 0.327487 -0.671233 -0.542592
+v 0.129583 -0.822418 -0.398807
+v 0.053992 -0.671234 -0.631458
+v -0.414839 -0.671233 -0.479126
+v -0.339247 -0.822416 -0.246477
+v -0.583871 -0.671232 -0.246477
+v -0.583871 -0.671232 0.246477
+v -0.339247 -0.822416 0.246477
+v -0.414839 -0.671233 0.479126
+v 0.617237 -0.671233 -0.143784
+v 0.617237 -0.671233 0.143784
+v 0.419333 -0.822417 0.000000
+v 0.053992 -0.671233 0.631458
+v 0.129583 -0.822418 0.398807
+v 0.327487 -0.671234 0.542592
+v 0.085689 -0.888288 0.263719
+v 0.657405 -0.597910 0.276164
+v -0.224334 -0.888287 0.162988
+v -0.224334 -0.888287 -0.162988
+v 0.085689 -0.888288 -0.263719
+v 0.828783 -0.320615 0.276165
+v -0.006541 -0.320615 0.873558
+v -0.832827 -0.320613 0.263720
+v -0.508170 -0.320615 -0.710570
+v 0.518761 -0.320615 -0.702876
+v 0.743096 -0.149236 0.539887
+v -0.283836 -0.149236 0.873560
+v -0.918517 -0.149235 0.000000
+v -0.283836 -0.149236 -0.873560
+v 0.743096 -0.149236 -0.539887
+v 0.369522 0.597910 0.609836
+v -0.465802 0.597910 0.539885
+v -0.657405 0.597910 -0.276164
+v 0.059498 0.597910 -0.710568
+v 0.694179 0.597908 -0.162988
+v 0.224334 0.888287 -0.162988
+v 0.453115 0.733163 -0.329207
+v 0.369522 0.597910 -0.609836
+v -0.085689 0.888288 -0.263719
+v -0.173077 0.733164 -0.532667
+v -0.465802 0.597910 -0.539885
+v -0.277292 0.888288 0.000000
+v -0.560082 0.733164 0.000000
+v -0.657405 0.597910 0.276164
+v -0.085689 0.888288 0.263719
+v -0.173077 0.733164 0.532667
+v 0.059498 0.597910 0.710568
+v 0.224334 0.888287 0.162988
+v 0.453115 0.733163 0.329207
+v 0.694179 0.597908 0.162988
+v 0.832827 0.320613 -0.263720
+v 0.733160 0.173077 -0.532669
+v 0.508170 0.320615 -0.710570
+v 0.006541 0.320615 -0.873558
+v -0.280043 0.173078 -0.861879
+v -0.518761 0.320615 -0.702876
+v -0.828783 0.320615 -0.276165
+v -0.906235 0.173077 0.000000
+v -0.828783 0.320615 0.276165
+v -0.518761 0.320615 0.702876
+v -0.280043 0.173078 0.861879
+v 0.006541 0.320615 0.873558
+v 0.508170 0.320615 0.710570
+v 0.733160 0.173077 0.532669
+v 0.832827 0.320613 0.263720
+v 0.283836 0.149236 -0.873560
+v 0.280043 -0.173078 -0.861879
+v -0.006541 -0.320615 -0.873558
+v -0.743096 0.149236 -0.539887
+v -0.733160 -0.173077 -0.532669
+v -0.832827 -0.320613 -0.263720
+v -0.743096 0.149236 0.539887
+v -0.733160 -0.173077 0.532669
+v -0.508170 -0.320615 0.710570
+v 0.283836 0.149236 0.873560
+v 0.280043 -0.173078 0.861879
+v 0.518761 -0.320615 0.702876
+v 0.918516 0.149235 -0.000000
+v 0.906235 -0.173077 -0.000000
+v 0.828783 -0.320615 -0.276165
+v 0.465802 -0.597910 -0.539885
+v 0.173077 -0.733164 -0.532667
+v -0.059498 -0.597910 -0.710568
+v -0.369522 -0.597910 -0.609835
+v -0.453115 -0.733163 -0.329207
+v -0.694179 -0.597908 -0.162988
+v -0.694179 -0.597908 0.162988
+v -0.453115 -0.733163 0.329207
+v -0.369522 -0.597910 0.609836
+v 0.657405 -0.597910 -0.276164
+v 0.560082 -0.733164 -0.000000
+v 0.277292 -0.888288 -0.000000
+v -0.059498 -0.597910 0.710568
+v 0.173077 -0.733164 0.532667
+v 0.465802 -0.597910 0.539885
+vn 0.0463 -0.9887 0.1425
+vn 0.2738 -0.9021 0.3335
+vn -0.0255 -0.9021 0.4307
+vn 0.7233 -0.5506 0.4167
+vn 0.5657 -0.7769 0.2765
+vn 0.7823 -0.6114 0.1191
+vn -0.1212 -0.9887 0.0881
+vn -0.2325 -0.9021 0.3635
+vn -0.4175 -0.9021 0.1088
+vn -0.1212 -0.9887 -0.0881
+vn -0.4175 -0.9021 -0.1088
+vn -0.2325 -0.9021 -0.3635
+vn 0.0463 -0.9887 -0.1425
+vn -0.0255 -0.9021 -0.4307
+vn 0.2738 -0.9021 -0.3335
+vn 0.8159 -0.4008 0.4167
+vn 0.8967 -0.4263 0.1191
+vn 0.9479 -0.1585 0.2765
+vn -0.1442 -0.4008 0.9048
+vn 0.1638 -0.4263 0.8896
+vn 0.0300 -0.1585 0.9869
+vn -0.9050 -0.4008 0.1425
+vn -0.7955 -0.4263 0.4307
+vn -0.9293 -0.1585 0.3335
+vn -0.4152 -0.4008 -0.8167
+vn -0.6554 -0.4263 -0.6234
+vn -0.6043 -0.1585 -0.7808
+vn 0.6484 -0.4008 -0.6472
+vn 0.3904 -0.4263 -0.8160
+vn 0.5559 -0.1585 -0.8160
+vn 0.7696 -0.3082 0.5592
+vn 0.8906 -0.0441 0.4526
+vn 0.7056 -0.0441 0.7072
+vn -0.2940 -0.3082 0.9048
+vn -0.1552 -0.0441 0.9869
+vn -0.4545 -0.0441 0.8896
+vn -0.9513 -0.3082 -0.0000
+vn -0.9866 -0.0441 0.1574
+vn -0.9866 -0.0441 -0.1574
+vn -0.2940 -0.3082 -0.9048
+vn -0.4545 -0.0441 -0.8896
+vn -0.1552 -0.0441 -0.9869
+vn 0.7696 -0.3082 -0.5592
+vn 0.7056 -0.0441 -0.7072
+vn 0.8906 -0.0441 -0.4526
+vn 0.3403 0.5506 0.7623
+vn 0.5629 0.6114 0.5562
+vn 0.2951 0.7769 0.5562
+vn -0.6198 0.5506 0.5592
+vn -0.3550 0.6114 0.7072
+vn -0.4378 0.7769 0.4526
+vn -0.7233 0.5506 -0.4167
+vn -0.7823 0.6114 -0.1191
+vn -0.5657 0.7769 -0.2765
+vn 0.1728 0.5506 -0.8167
+vn -0.1285 0.6114 -0.7808
+vn 0.0881 0.7769 -0.6234
+vn 0.8301 0.5506 -0.0881
+vn 0.7029 0.6114 -0.3635
+vn 0.6202 0.7769 -0.1088
+vn 0.4175 0.9021 -0.1088
+vn 0.2325 0.9021 -0.3635
+vn 0.1212 0.9887 -0.0881
+vn 0.5164 0.8355 -0.1879
+vn 0.5960 0.6762 -0.4330
+vn 0.3383 0.8355 -0.4330
+vn 0.5629 0.6114 -0.5562
+vn 0.3403 0.5506 -0.7623
+vn 0.2951 0.7769 -0.5562
+vn 0.0255 0.9021 -0.4307
+vn -0.2738 0.9021 -0.3335
+vn -0.0463 0.9887 -0.1425
+vn -0.0191 0.8355 -0.5492
+vn -0.2277 0.6762 -0.7006
+vn -0.3073 0.8355 -0.4555
+vn -0.3550 0.6114 -0.7072
+vn -0.6198 0.5506 -0.5592
+vn -0.4378 0.7769 -0.4526
+vn -0.4017 0.9021 -0.1574
+vn -0.4017 0.9021 0.1574
+vn -0.1498 0.9887 -0.0000
+vn -0.5282 0.8355 -0.1515
+vn -0.7367 0.6762 -0.0000
+vn -0.5282 0.8355 0.1515
+vn -0.7823 0.6114 0.1191
+vn -0.7233 0.5506 0.4167
+vn -0.5657 0.7769 0.2765
+vn -0.2738 0.9021 0.3335
+vn 0.0255 0.9021 0.4307
+vn -0.0463 0.9887 0.1425
+vn -0.3073 0.8355 0.4555
+vn -0.2277 0.6762 0.7006
+vn -0.0191 0.8355 0.5492
+vn -0.1285 0.6114 0.7808
+vn 0.1728 0.5506 0.8167
+vn 0.0881 0.7769 0.6234
+vn 0.2325 0.9021 0.3635
+vn 0.4175 0.9021 0.1088
+vn 0.1212 0.9887 0.0881
+vn 0.3383 0.8355 0.4330
+vn 0.5960 0.6762 0.4330
+vn 0.5164 0.8355 0.1879
+vn 0.7029 0.6114 0.3635
+vn 0.8301 0.5506 0.0881
+vn 0.6202 0.7769 0.1088
+vn 0.9293 0.1585 -0.3335
+vn 0.7955 0.4263 -0.4307
+vn 0.9050 0.4008 -0.1425
+vn 0.8847 0.0988 -0.4555
+vn 0.7066 0.0988 -0.7006
+vn 0.7559 0.3565 -0.5492
+vn 0.6043 0.1585 -0.7808
+vn 0.4152 0.4008 -0.8167
+vn 0.6554 0.4263 -0.6234
+vn -0.0300 0.1585 -0.9869
+vn -0.1638 0.4263 -0.8896
+vn 0.1442 0.4008 -0.9048
+vn -0.1598 0.0988 -0.9822
+vn -0.4480 0.0988 -0.8886
+vn -0.2887 0.3565 -0.8886
+vn -0.5559 0.1585 -0.8160
+vn -0.6484 0.4008 -0.6472
+vn -0.3904 0.4263 -0.8160
+vn -0.9479 0.1585 -0.2765
+vn -0.8967 0.4263 -0.1191
+vn -0.8159 0.4008 -0.4167
+vn -0.9835 0.0988 -0.1515
+vn -0.9835 0.0988 0.1515
+vn -0.9343 0.3565 -0.0000
+vn -0.9479 0.1585 0.2765
+vn -0.8159 0.4008 0.4167
+vn -0.8967 0.4263 0.1191
+vn -0.5559 0.1585 0.8160
+vn -0.3904 0.4263 0.8160
+vn -0.6484 0.4008 0.6472
+vn -0.4480 0.0988 0.8886
+vn -0.1598 0.0988 0.9822
+vn -0.2887 0.3565 0.8886
+vn -0.0300 0.1585 0.9869
+vn 0.1442 0.4008 0.9048
+vn -0.1638 0.4263 0.8896
+vn 0.6043 0.1585 0.7808
+vn 0.6554 0.4263 0.6234
+vn 0.4152 0.4008 0.8167
+vn 0.7066 0.0988 0.7006
+vn 0.8847 0.0988 0.4555
+vn 0.7559 0.3565 0.5492
+vn 0.9293 0.1585 0.3335
+vn 0.9050 0.4008 0.1425
+vn 0.7955 0.4263 0.4307
+vn 0.4545 0.0441 -0.8896
+vn 0.1552 0.0441 -0.9869
+vn 0.2940 0.3082 -0.9048
+vn 0.4480 -0.0988 -0.8886
+vn 0.2887 -0.3565 -0.8886
+vn 0.1598 -0.0988 -0.9822
+vn 0.1638 -0.4263 -0.8896
+vn -0.1442 -0.4008 -0.9048
+vn 0.0300 -0.1585 -0.9869
+vn -0.7056 0.0441 -0.7072
+vn -0.8906 0.0441 -0.4526
+vn -0.7696 0.3082 -0.5592
+vn -0.7066 -0.0988 -0.7006
+vn -0.7559 -0.3565 -0.5492
+vn -0.8847 -0.0988 -0.4555
+vn -0.7955 -0.4263 -0.4307
+vn -0.9050 -0.4008 -0.1425
+vn -0.9293 -0.1585 -0.3335
+vn -0.8906 0.0441 0.4526
+vn -0.7056 0.0441 0.7072
+vn -0.7696 0.3082 0.5592
+vn -0.8847 -0.0988 0.4555
+vn -0.7559 -0.3565 0.5492
+vn -0.7066 -0.0988 0.7006
+vn -0.6554 -0.4263 0.6234
+vn -0.4152 -0.4008 0.8167
+vn -0.6043 -0.1585 0.7808
+vn 0.1552 0.0441 0.9869
+vn 0.4545 0.0441 0.8896
+vn 0.2940 0.3082 0.9048
+vn 0.1598 -0.0988 0.9822
+vn 0.2887 -0.3565 0.8886
+vn 0.4480 -0.0988 0.8886
+vn 0.3904 -0.4263 0.8160
+vn 0.6484 -0.4008 0.6472
+vn 0.5559 -0.1585 0.8160
+vn 0.9866 0.0441 0.1574
+vn 0.9866 0.0441 -0.1574
+vn 0.9513 0.3082 -0.0000
+vn 0.9835 -0.0988 0.1515
+vn 0.9343 -0.3565 -0.0000
+vn 0.9835 -0.0988 -0.1515
+vn 0.8967 -0.4263 -0.1191
+vn 0.8159 -0.4008 -0.4167
+vn 0.9479 -0.1585 -0.2765
+vn 0.4378 -0.7769 -0.4526
+vn 0.3550 -0.6114 -0.7072
+vn 0.6198 -0.5506 -0.5592
+vn 0.3073 -0.8355 -0.4555
+vn 0.0191 -0.8355 -0.5492
+vn 0.2277 -0.6762 -0.7006
+vn -0.0881 -0.7769 -0.6234
+vn -0.1728 -0.5506 -0.8167
+vn 0.1285 -0.6114 -0.7808
+vn -0.2951 -0.7769 -0.5562
+vn -0.5629 -0.6114 -0.5562
+vn -0.3403 -0.5506 -0.7623
+vn -0.3383 -0.8355 -0.4330
+vn -0.5164 -0.8355 -0.1879
+vn -0.5960 -0.6762 -0.4330
+vn -0.6202 -0.7769 -0.1088
+vn -0.8301 -0.5506 -0.0881
+vn -0.7029 -0.6114 -0.3635
+vn -0.6202 -0.7769 0.1088
+vn -0.7029 -0.6114 0.3635
+vn -0.8301 -0.5506 0.0881
+vn -0.5164 -0.8355 0.1879
+vn -0.3383 -0.8355 0.4330
+vn -0.5960 -0.6762 0.4330
+vn -0.2951 -0.7769 0.5562
+vn -0.3403 -0.5506 0.7623
+vn -0.5629 -0.6114 0.5562
+vn 0.7823 -0.6114 -0.1191
+vn 0.5657 -0.7769 -0.2765
+vn 0.7233 -0.5506 -0.4167
+vn 0.7367 -0.6762 -0.0000
+vn 0.5282 -0.8355 0.1515
+vn 0.5282 -0.8355 -0.1515
+vn 0.4017 -0.9021 0.1574
+vn 0.1498 -0.9887 -0.0000
+vn 0.4017 -0.9021 -0.1574
+vn -0.0881 -0.7769 0.6234
+vn 0.1285 -0.6114 0.7808
+vn -0.1728 -0.5506 0.8167
+vn 0.0191 -0.8355 0.5492
+vn 0.3073 -0.8355 0.4555
+vn 0.2277 -0.6762 0.7006
+vn 0.4378 -0.7769 0.4526
+vn 0.6198 -0.5506 0.5592
+vn 0.3550 -0.6114 0.7072
vt 0.181819 0.000000
+vt 0.204546 0.039365
+vt 0.181819 0.052487
+vt 0.159092 0.039365
vt 0.227273 0.078731
+vt 0.181819 0.078731
+vt 0.204546 0.039365
vt 0.136365 0.078731
+vt 0.181819 0.078730
vt 0.272728 0.157461
+vt 0.295455 0.118096
+vt 0.318182 0.131218
+vt 0.318182 0.157461
vt 0.318182 0.078731
+vt 0.340910 0.118096
+vt 0.295455 0.118096
vt 0.363637 0.157461
+vt 0.340910 0.118096
vt 0.909091 0.000000
+vt 0.931818 0.039365
+vt 0.909091 0.052487
+vt 0.886364 0.039365
vt 0.954545 0.078731
+vt 0.909091 0.078731
vt 0.863636 0.078731
+vt 0.909091 0.078730
vt 0.727273 0.000000
+vt 0.750000 0.039365
+vt 0.727273 0.052487
+vt 0.704546 0.039365
vt 0.772727 0.078731
+vt 0.727273 0.078731
vt 0.681818 0.078731
+vt 0.727273 0.078730
vt 0.545455 0.000000
+vt 0.568182 0.03