From f0e2f9c2946b9d3d30552d6794aecacab4746a7b Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sun, 3 Dec 2023 18:58:50 +0100 Subject: [PATCH 01/13] Adding Create to Dependencies --- build.gradle | 5 +++++ gradle.properties | 6 +++++- src/main/resources/META-INF/mods.toml | 7 +++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 0f9162a..4ce5b2f 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,7 @@ repositories{ maven { name = "BlameJared"; url = "https://maven.blamejared.com/" } // IE & CT Files maven { name = "DVS1 Maven FS"; url = "https://dvs1.progwml6.com/files/maven" } // JEI & Tinkers Files maven { url = 'https://maven.latmod.com/' } // Needed for JEI + maven { name = 'tterrag maven'; url = 'https://maven.tterrag.com/' } flatDir { dir 'flatdir' } } @@ -137,6 +138,10 @@ dependencies{ compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-forge-1.18.2:${version_ct}") + implementation fg.deobf("com.simibubi.create:create-${version_minecraft}:${create_version}:slim") { transitive = false } + implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${version_minecraft}:${flywheel_version}") + implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") + runtimeOnly fg.deobf("mezz.jei:jei-${version_minecraft}:${version_jei}") compileOnly fg.deobf("mezz.jei:jei-${version_minecraft}:${version_jei}:api") } diff --git a/gradle.properties b/gradle.properties index e401021..e944a37 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,14 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false version_minecraft=1.18.2 -version_forge=40.1.48 +version_forge=40.2.4 version_fml_mappings=1.18.2 version_parchment=1.18.1-2022.03.06-1.18.2 version_ie=1.18.2-8.1.0-150 +create_version=0.5.1.e-318 +flywheel_version=0.6.10-105 +registrate_version=MC1.18.2-1.1.3 + version_jei=9.7.0.195 version_ct=9.1.156 \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index c9dc2c9..8b14cec 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -25,6 +25,13 @@ Random bits and bobs, here and there. Possibly containing QoL things. ordering="BEFORE" side="BOTH" +[[dependencies.overengineered]] + modId="create" + mandatory=false + versionRange="[0.5.1.e,)" + ordering="NONE" + side="BOTH" + [[dependencies.overengineered]] modId="forge" mandatory=true From 69ad9c64560e5c87ed34d1716d071ade0f2cb230 Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Tue, 5 Dec 2023 22:22:29 +0100 Subject: [PATCH 02/13] Added Barebones Multiblock Not functional, only contains: Mirrorable multiblock. Rotor rendering. Debugging rotation. Thats it. --- .../common/data/OEBlockStates.java | 141 + .../common/data/OEDataGenerator.java | 2 + .../common/data/OEItemModels.java | 32 +- .../common/data/TRSRModelBuilder.java | 43 + src/generated/resources/.cache/cache | 4 + .../blockstates/universal_motor.json | 42 + .../models/item/universal_motor.json | 111 + .../universal_motor_mirrored_split.json | 108 + .../multiblock/universal_motor_split.json | 108 + .../overengineered/OverEngineered.java | 1 + .../client/ClientModBusEventHandlers.java | 27 + .../client/render/UniversalMotorRenderer.java | 77 + .../overengineered/common/OEContent.java | 20 +- .../overengineered/common/OERegisters.java | 16 + .../overengineered/common/OETileTypes.java | 10 + .../common/blocks/CreateTestBlock.java | 53 + .../common/blocks/OEMetalMultiblock.java | 26 + .../common/blocks/UniversalMotorBlock.java | 48 + .../blocks/ticking/OECommonTickableTile.java | 5 + .../blocks/tileentity/BasicTileEntity.java | 3 +- .../OEMultiblockPartTileEntity.java | 22 + .../UniversalMotorSlaveTileEntity.java | 68 + .../tileentity/UniversalMotorTileEntity.java | 132 + .../multiblock/OETemplateMultiblock.java | 21 + .../multiblock/UniversalMotorMultiblock.java | 41 + .../multiblock/dyn/universal_motor_rotor.json | 9 + .../models/multiblock/obj/universal_motor.mtl | 2 + .../models/multiblock/obj/universal_motor.obj | 2619 +++++++++++++++++ .../obj/universal_motor_mirrored.obj | 2619 +++++++++++++++++ .../multiblock/obj/universal_motor_rotor.obj | 2136 ++++++++++++++ .../textures/multiblock/universal_motor.png | Bin 0 -> 9608 bytes .../multiblocks/universal_motor.nbt | Bin 0 -> 359 bytes 32 files changed, 8535 insertions(+), 11 deletions(-) create mode 100644 src/datagen/java/twistedgate/overengineered/common/data/TRSRModelBuilder.java create mode 100644 src/generated/resources/.cache/cache create mode 100644 src/generated/resources/assets/overengineered/blockstates/universal_motor.json create mode 100644 src/generated/resources/assets/overengineered/models/item/universal_motor.json create mode 100644 src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json create mode 100644 src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json create mode 100644 src/main/java/twistedgate/overengineered/client/ClientModBusEventHandlers.java create mode 100644 src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/ticking/OECommonTickableTile.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/tileentity/OEMultiblockPartTileEntity.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java create mode 100644 src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java create mode 100644 src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java create mode 100644 src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java create mode 100644 src/main/resources/assets/overengineered/models/multiblock/dyn/universal_motor_rotor.json create mode 100644 src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.mtl create mode 100644 src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj create mode 100644 src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj create mode 100644 src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj create mode 100644 src/main/resources/assets/overengineered/textures/multiblock/universal_motor.png create mode 100644 src/main/resources/data/overengineered/structures/multiblocks/universal_motor.nbt diff --git a/src/datagen/java/twistedgate/overengineered/common/data/OEBlockStates.java b/src/datagen/java/twistedgate/overengineered/common/data/OEBlockStates.java index c6bf7ed..c59f830 100644 --- a/src/datagen/java/twistedgate/overengineered/common/data/OEBlockStates.java +++ b/src/datagen/java/twistedgate/overengineered/common/data/OEBlockStates.java @@ -1,25 +1,149 @@ package twistedgate.overengineered.common.data; +import java.util.function.UnaryOperator; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import javax.annotation.Nullable; +import com.google.common.base.Preconditions; + +import blusunrize.immersiveengineering.api.IEProperties; +import blusunrize.immersiveengineering.api.multiblocks.TemplateMultiblock; +import blusunrize.immersiveengineering.data.models.NongeneratedModels; +import blusunrize.immersiveengineering.data.models.NongeneratedModels.NongeneratedModel; +import blusunrize.immersiveengineering.data.models.SplitModelBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.data.DataGenerator; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.Property; import net.minecraftforge.client.model.generators.BlockModelBuilder; import net.minecraftforge.client.model.generators.BlockStateProvider; +import net.minecraftforge.client.model.generators.ConfiguredModel; +import net.minecraftforge.client.model.generators.ItemModelBuilder; +import net.minecraftforge.client.model.generators.ModelFile; +import net.minecraftforge.client.model.generators.VariantBlockStateBuilder; +import net.minecraftforge.client.model.generators.VariantBlockStateBuilder.PartialBlockstate; import net.minecraftforge.client.model.generators.loaders.OBJLoaderBuilder; import net.minecraftforge.common.data.ExistingFileHelper; import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.common.OEContent; +import twistedgate.overengineered.common.multiblock.UniversalMotorMultiblock; +@SuppressWarnings("unused") public class OEBlockStates extends BlockStateProvider{ final ExistingFileHelper exFileHelper; + private final NongeneratedModels nongeneratedModels; public OEBlockStates(DataGenerator gen, ExistingFileHelper exFileHelper){ super(gen, OverEngineered.MODID, exFileHelper); this.exFileHelper = exFileHelper; + this.nongeneratedModels = new NongeneratedModels(gen, exFileHelper); } @Override protected void registerStatesAndModels(){ + // Multiblocks + universalmotor(); + + // Blocks + //simpleBlockWithItem(OEContent.Blocks.CREATE_TEST.get()); + } + + private void universalmotor(){ + ResourceLocation texture = modLoc("multiblock/universal_motor"); + ResourceLocation modelNormal = modLoc("models/multiblock/obj/universal_motor.obj"); + ResourceLocation modelMirrored = modLoc("models/multiblock/obj/universal_motor_mirrored.obj"); + + BlockModelBuilder normal = multiblockModel(OEContent.Multiblock.UNIVERSAL_MOTOR.get(), modelNormal, texture, "", UniversalMotorMultiblock.INSTANCE, false); + BlockModelBuilder mirrored = multiblockModel(OEContent.Multiblock.UNIVERSAL_MOTOR.get(), modelMirrored, texture, "_mirrored", UniversalMotorMultiblock.INSTANCE, true); + + createMultiblock(OEContent.Multiblock.UNIVERSAL_MOTOR.get(), normal, mirrored, texture); + } + + /** + * From {@link blusunrize.immersiveengineering.common.data.BlockStates} + */ + private void createMultiblock(Block b, ModelFile masterModel, ModelFile mirroredModel, ResourceLocation particleTexture){ + createMultiblock(b, masterModel, mirroredModel, IEProperties.MULTIBLOCKSLAVE, IEProperties.FACING_HORIZONTAL, IEProperties.MIRRORED, 180, particleTexture); + } + + /** From {@link blusunrize.immersiveengineering.common.data.BlockStates} */ + private void createMultiblock(Block b, ModelFile masterModel, @Nullable ModelFile mirroredModel, Property isSlave, EnumProperty facing, @Nullable Property mirroredState, int rotationOffset, ResourceLocation particleTex){ + Preconditions.checkArgument((mirroredModel == null) == (mirroredState == null)); + VariantBlockStateBuilder builder = getVariantBuilder(b); + + boolean[] possibleMirrorStates; + if(mirroredState != null) + possibleMirrorStates = new boolean[]{false, true}; + else + possibleMirrorStates = new boolean[1]; + for(boolean mirrored:possibleMirrorStates) + for(Direction dir:facing.getPossibleValues()){ + final int angleY; + final int angleX; + if(facing.getPossibleValues().contains(Direction.UP)){ + angleX = -90 * dir.getStepY(); + if(dir.getAxis() != Direction.Axis.Y) + angleY = getAngle(dir, rotationOffset); + else + angleY = 0; + }else{ + angleY = getAngle(dir, rotationOffset); + angleX = 0; + } + + ModelFile model = mirrored ? mirroredModel : masterModel; + PartialBlockstate partialState = builder.partialState() +// .with(isSlave, false) + .with(facing, dir); + + if(mirroredState != null) + partialState = partialState.with(mirroredState, mirrored); + + partialState.setModels(new ConfiguredModel(model, angleX, angleY, true)); + } + } + + /** From {@link blusunrize.immersiveengineering.common.data.BlockStates} */ + private int getAngle(Direction dir, int offset){ + return (int) ((dir.toYRot() + offset) % 360); + } + + private BlockModelBuilder multiblockModel(Block block, ResourceLocation model, ResourceLocation texture, String add, TemplateMultiblock mb, boolean mirror){ + UnaryOperator transform = UnaryOperator.identity(); + if(mirror){ + Vec3i size = mb.getSize(null); + transform = p -> new BlockPos(size.getX() - p.getX() - 1, p.getY(), p.getZ()); + } + final Vec3i offset = mb.getMasterFromOriginOffset(); + + Stream partsStream = mb.getStructure(null).stream() + .filter(info -> !info.state.isAir()) + .map(info -> info.pos) + .map(transform) + .map(p -> p.subtract(offset)); + + String name = getMultiblockPath(block) + add; + NongeneratedModel base = nongeneratedModels.withExistingParent(name, mcLoc("block")) + .customLoader(OBJLoaderBuilder::begin).modelLocation(model).detectCullableFaces(false).flipV(true).end() + .texture("texture", texture) + .texture("particle", texture); + + BlockModelBuilder split = this.models().withExistingParent(name + "_split", mcLoc("block")) + .customLoader(SplitModelBuilder::begin) + .innerModel(base) + .parts(partsStream.collect(Collectors.toList())) + .dynamic(false).end(); + + return split; + } + + private String getMultiblockPath(Block b){ + return "multiblock/" + getPath(b); } private BlockModelBuilder objModel(Block b, String modelPath, @Nullable String postFix, ResourceLocation texture){ @@ -33,6 +157,23 @@ private BlockModelBuilder objModel(Block b, String modelPath, @Nullable String p return model; } + private void simpleBlockWithItem(Block block){ + ModelFile file = cubeAll(block); + + getVariantBuilder(block).partialState() + .setModels(new ConfiguredModel(file)); + itemModelWithParent(block, file); + } + + private void itemModelWithParent(Block block, ModelFile parent){ + getItemBuilder(block).parent(parent) + .texture("particle", modLoc("block/" + getPath(block))); + } + + private ItemModelBuilder getItemBuilder(Block block){ + return itemModels().getBuilder(modLoc("item/" + getPath(block)).toString()); + } + private String getPath(Block b){ return b.getRegistryName().getPath(); } diff --git a/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java b/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java index e9ab811..425bb7c 100644 --- a/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java +++ b/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java @@ -3,6 +3,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import blusunrize.immersiveengineering.common.blocks.multiblocks.StaticTemplateManager; import net.minecraft.data.DataGenerator; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -19,6 +20,7 @@ public class OEDataGenerator{ public static void generate(GatherDataEvent event){ DataGenerator generator = event.getGenerator(); ExistingFileHelper exhelper = event.getExistingFileHelper(); + StaticTemplateManager.EXISTING_HELPER = exhelper; if(event.includeServer()){ OEBlockTags blockTags = new OEBlockTags(generator, exhelper); diff --git a/src/datagen/java/twistedgate/overengineered/common/data/OEItemModels.java b/src/datagen/java/twistedgate/overengineered/common/data/OEItemModels.java index 8be649c..a7afdc3 100644 --- a/src/datagen/java/twistedgate/overengineered/common/data/OEItemModels.java +++ b/src/datagen/java/twistedgate/overengineered/common/data/OEItemModels.java @@ -7,21 +7,21 @@ import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; import net.minecraft.data.DataGenerator; import net.minecraft.world.level.ItemLike; -import net.minecraftforge.client.model.generators.ItemModelBuilder; -import net.minecraftforge.client.model.generators.ItemModelProvider; import net.minecraftforge.client.model.generators.ModelBuilder; +import net.minecraftforge.client.model.generators.ModelProvider; import net.minecraftforge.client.model.generators.loaders.OBJLoaderBuilder; import net.minecraftforge.common.data.ExistingFileHelper; import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.common.OEContent; - -public class OEItemModels extends ItemModelProvider{ +public class OEItemModels extends ModelProvider{ public OEItemModels(DataGenerator generator, ExistingFileHelper existingFileHelper){ - super(generator, OverEngineered.MODID, existingFileHelper); + super(generator, OverEngineered.MODID, ITEM_FOLDER, TRSRModelBuilder::new, existingFileHelper); } @Override protected void registerModels(){ + universalmotorItem(); // ModelBuilder.TransformsBuilder trans = model.transforms(); // doTransform(trans, TransformType.FIRST_PERSON_LEFT_HAND, new Vector3f(0, 0, 0), new Vector3f(0, 45, 0), 1.0F); // doTransform(trans, TransformType.FIRST_PERSON_RIGHT_HAND, new Vector3f(0, 0, 0), new Vector3f(0, 45, 0), 1.0F); @@ -33,6 +33,21 @@ protected void registerModels(){ // doTransform(trans, TransformType.FIXED, new Vector3f(0, 0, -7), new Vector3f(-90, 0, 0), 1.0F); } + private void universalmotorItem(){ + TRSRModelBuilder model = obj(OEContent.Multiblock.UNIVERSAL_MOTOR.get(), "multiblock/obj/universal_motor.obj") + .texture("texture", modLoc("multiblock/universal_motor")); + + ModelBuilder.TransformsBuilder trans = model.transforms(); + doTransform(trans, TransformType.FIRST_PERSON_LEFT_HAND, null, null, 0.03125F); + doTransform(trans, TransformType.FIRST_PERSON_RIGHT_HAND, null, null, 0.03125F); + doTransform(trans, TransformType.THIRD_PERSON_LEFT_HAND, new Vector3f(-0.75F, -5, -1.25F), new Vector3f(0, 90, 0), 0.03125F); + doTransform(trans, TransformType.THIRD_PERSON_RIGHT_HAND, new Vector3f(1.0F, -5, -1.75F), new Vector3f(0, 270, 0), 0.03125F); + doTransform(trans, TransformType.HEAD, new Vector3f(1.5F, 8, 1.5F), null, 0.2F); + doTransform(trans, TransformType.GUI, new Vector3f(-1, -6, 0), new Vector3f(30, 225, 0), 0.0625F); + doTransform(trans, TransformType.GROUND, new Vector3f(1, 0, 1), null, 0.0625F); + doTransform(trans, TransformType.FIXED, new Vector3f(0, -8, 0), null, 0.0625F); + } + private void doTransform(ModelBuilder.TransformsBuilder transform, TransformType type, @Nullable Vector3f translation, @Nullable Vector3f rotationAngle, float scale){ ModelBuilder.TransformsBuilder.TransformVecBuilder trans = transform.transform(type); if(translation != null) @@ -43,9 +58,14 @@ private void doTransform(ModelBuilder.TransformsBuilder transform, TransformT trans.end(); } - private ItemModelBuilder obj(ItemLike item, String model){ + private TRSRModelBuilder obj(ItemLike item, String model){ return getBuilder(item.asItem().getRegistryName().toString()) .customLoader(OBJLoaderBuilder::begin) .modelLocation(modLoc("models/" + model)).flipV(true).end(); } + + @Override + public String getName(){ + return "Item Models"; + } } diff --git a/src/datagen/java/twistedgate/overengineered/common/data/TRSRModelBuilder.java b/src/datagen/java/twistedgate/overengineered/common/data/TRSRModelBuilder.java new file mode 100644 index 0000000..dc72d6b --- /dev/null +++ b/src/datagen/java/twistedgate/overengineered/common/data/TRSRModelBuilder.java @@ -0,0 +1,43 @@ +package twistedgate.overengineered.common.data; + +import java.io.IOException; +import java.io.InputStreamReader; + +import com.google.common.io.CharStreams; +import com.google.gson.JsonObject; + +import blusunrize.immersiveengineering.data.models.TransformationMap; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.resources.Resource; +import net.minecraftforge.client.model.generators.ModelBuilder; +import net.minecraftforge.common.data.ExistingFileHelper; + +public class TRSRModelBuilder extends ModelBuilder{ + private final TransformationMap transforms = new TransformationMap(); + + protected TRSRModelBuilder(ResourceLocation outputLocation, ExistingFileHelper existingFileHelper){ + super(outputLocation, existingFileHelper); + } + + public TRSRModelBuilder transforms(ResourceLocation source){ + Resource transformFile; + try{ + transformFile = existingFileHelper.getResource(source, PackType.CLIENT_RESOURCES, ".json", "transformations"); + String jsonString = CharStreams.toString(new InputStreamReader(transformFile.getInputStream())); + transforms.addFromJson(jsonString); + return this; + }catch(IOException e){ + throw new RuntimeException("While loading transforms from " + source, e); + } + } + + @Override + public JsonObject toJson(){ + JsonObject ret = super.toJson(); + JsonObject transformJson = transforms.toJson(); + if(!transformJson.entrySet().isEmpty()) + ret.add("transform", transformJson); + return ret; + } +} \ No newline at end of file diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache new file mode 100644 index 0000000..778f3dd --- /dev/null +++ b/src/generated/resources/.cache/cache @@ -0,0 +1,4 @@ +25653b34e3c52483fcd8c27e9869a5840be0f105 assets/overengineered/blockstates/universal_motor.json +ad9c892823ca17a89e7a83e00e81977bbed3186f assets/overengineered/models/item/universal_motor.json +10bfdf382971c0a8f405cbe0ab288ba2c7d0d74e assets/overengineered/models/multiblock/universal_motor_mirrored_split.json +0bfe8bd381684e3a6eacb4549769f65914d7f201 assets/overengineered/models/multiblock/universal_motor_split.json diff --git a/src/generated/resources/assets/overengineered/blockstates/universal_motor.json b/src/generated/resources/assets/overengineered/blockstates/universal_motor.json new file mode 100644 index 0000000..8131d6c --- /dev/null +++ b/src/generated/resources/assets/overengineered/blockstates/universal_motor.json @@ -0,0 +1,42 @@ +{ + "variants": { + "facing=north,mirrored=false": { + "model": "overengineered:multiblock/universal_motor_split", + "uvlock": true + }, + "facing=south,mirrored=false": { + "model": "overengineered:multiblock/universal_motor_split", + "y": 180, + "uvlock": true + }, + "facing=west,mirrored=false": { + "model": "overengineered:multiblock/universal_motor_split", + "y": 270, + "uvlock": true + }, + "facing=east,mirrored=false": { + "model": "overengineered:multiblock/universal_motor_split", + "y": 90, + "uvlock": true + }, + "facing=north,mirrored=true": { + "model": "overengineered:multiblock/universal_motor_mirrored_split", + "uvlock": true + }, + "facing=south,mirrored=true": { + "model": "overengineered:multiblock/universal_motor_mirrored_split", + "y": 180, + "uvlock": true + }, + "facing=west,mirrored=true": { + "model": "overengineered:multiblock/universal_motor_mirrored_split", + "y": 270, + "uvlock": true + }, + "facing=east,mirrored=true": { + "model": "overengineered:multiblock/universal_motor_mirrored_split", + "y": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/overengineered/models/item/universal_motor.json b/src/generated/resources/assets/overengineered/models/item/universal_motor.json new file mode 100644 index 0000000..086aba9 --- /dev/null +++ b/src/generated/resources/assets/overengineered/models/item/universal_motor.json @@ -0,0 +1,111 @@ +{ + "display": { + "firstperson_lefthand": { + "scale": [ + 0.03125, + 0.03125, + 0.03125 + ] + }, + "firstperson_righthand": { + "scale": [ + 0.03125, + 0.03125, + 0.03125 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 0, + 90, + 0 + ], + "translation": [ + -0.75, + -5, + -1.25 + ], + "scale": [ + 0.03125, + 0.03125, + 0.03125 + ] + }, + "thirdperson_righthand": { + "rotation": [ + 0, + 270, + 0 + ], + "translation": [ + 1, + -5, + -1.75 + ], + "scale": [ + 0.03125, + 0.03125, + 0.03125 + ] + }, + "head": { + "translation": [ + 1.5, + 8, + 1.5 + ], + "scale": [ + 0.2, + 0.2, + 0.2 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "translation": [ + -1, + -6, + 0 + ], + "scale": [ + 0.0625, + 0.0625, + 0.0625 + ] + }, + "ground": { + "translation": [ + 1, + 0, + 1 + ], + "scale": [ + 0.0625, + 0.0625, + 0.0625 + ] + }, + "fixed": { + "translation": [ + 0, + -8, + 0 + ], + "scale": [ + 0.0625, + 0.0625, + 0.0625 + ] + } + }, + "textures": { + "texture": "overengineered:multiblock/universal_motor" + }, + "loader": "forge:obj", + "model": "overengineered:models/multiblock/obj/universal_motor.obj", + "flip-v": true +} \ No newline at end of file diff --git a/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json new file mode 100644 index 0000000..91680dc --- /dev/null +++ b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json @@ -0,0 +1,108 @@ +{ + "parent": "minecraft:block/block", + "loader": "immersiveengineering:basic_split", + "dynamic": false, + "inner_model": { + "parent": "minecraft:block/block", + "textures": { + "texture": "overengineered:multiblock/universal_motor", + "particle": "overengineered:multiblock/universal_motor" + }, + "loader": "forge:obj", + "model": "overengineered:models/multiblock/obj/universal_motor_mirrored.obj", + "detectCullableFaces": false, + "flip-v": true + }, + "split_parts": [ + [ + 1, + 0, + -1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 0, + 1 + ], + [ + 0, + 0, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + -1, + 0, + -1 + ], + [ + -1, + 0, + 0 + ], + [ + -1, + 0, + 1 + ], + [ + 1, + 1, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 0 + ], + [ + -1, + 1, + 0 + ], + [ + 1, + 2, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + -1, + 2, + 0 + ], + [ + 0, + 1, + -1 + ], + [ + 0, + 1, + 1 + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json new file mode 100644 index 0000000..b302b28 --- /dev/null +++ b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json @@ -0,0 +1,108 @@ +{ + "parent": "minecraft:block/block", + "loader": "immersiveengineering:basic_split", + "dynamic": false, + "inner_model": { + "parent": "minecraft:block/block", + "textures": { + "texture": "overengineered:multiblock/universal_motor", + "particle": "overengineered:multiblock/universal_motor" + }, + "loader": "forge:obj", + "model": "overengineered:models/multiblock/obj/universal_motor.obj", + "detectCullableFaces": false, + "flip-v": true + }, + "split_parts": [ + [ + -1, + 0, + -1 + ], + [ + -1, + 0, + 0 + ], + [ + -1, + 0, + 1 + ], + [ + 0, + 0, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 0, + -1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 0, + 1 + ], + [ + -1, + 1, + 0 + ], + [ + -1, + 1, + 1 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + -1, + 2, + 0 + ], + [ + 0, + 2, + 0 + ], + [ + 1, + 2, + 0 + ], + [ + 0, + 1, + -1 + ], + [ + 0, + 1, + 1 + ] + ] +} \ No newline at end of file diff --git a/src/main/java/twistedgate/overengineered/OverEngineered.java b/src/main/java/twistedgate/overengineered/OverEngineered.java index 728e977..2f2bb17 100644 --- a/src/main/java/twistedgate/overengineered/OverEngineered.java +++ b/src/main/java/twistedgate/overengineered/OverEngineered.java @@ -85,6 +85,7 @@ private void setup(final FMLCommonSetupEvent event){ proxy.preInit(); OEContent.init(event); + proxy.init(); proxy.postInit(); diff --git a/src/main/java/twistedgate/overengineered/client/ClientModBusEventHandlers.java b/src/main/java/twistedgate/overengineered/client/ClientModBusEventHandlers.java new file mode 100644 index 0000000..2ace0b8 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/client/ClientModBusEventHandlers.java @@ -0,0 +1,27 @@ +package twistedgate.overengineered.client; + +import java.util.function.Supplier; + +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.EntityRenderersEvent.RegisterRenderers; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; +import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.client.render.UniversalMotorRenderer; +import twistedgate.overengineered.common.OETileTypes; + +@Mod.EventBusSubscriber(modid = OverEngineered.MODID, value = Dist.CLIENT, bus = Bus.MOD) +public class ClientModBusEventHandlers{ + @SubscribeEvent + public static void registerRenders(RegisterRenderers ev){ + registerBERender(ev, OETileTypes.UNIVERSAL_MOTOR.master(), UniversalMotorRenderer::new); + } + + private static void registerBERender(RegisterRenderers ev, BlockEntityType type, Supplier> factory){ + ev.registerBlockEntityRenderer(type, ctx -> factory.get()); + } +} diff --git a/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java b/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java new file mode 100644 index 0000000..e5f11ba --- /dev/null +++ b/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java @@ -0,0 +1,77 @@ +package twistedgate.overengineered.client.render; + +import java.util.List; +import java.util.function.Function; + +import javax.annotation.Nonnull; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.PoseStack.Pose; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Quaternion; +import com.mojang.math.Vector3f; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.Direction.Axis; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.client.model.ForgeModelBakery; +import net.minecraftforge.client.model.data.EmptyModelData; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; +import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorTileEntity; +import twistedgate.overengineered.utils.ResourceUtils; + +@Mod.EventBusSubscriber(modid = OverEngineered.MODID, value = Dist.CLIENT, bus = Bus.MOD) +public class UniversalMotorRenderer implements BlockEntityRenderer{ + + static final ResourceLocation UM_ROTOR_RL = ResourceUtils.oe("multiblock/dyn/universal_motor_rotor"); + static final Function f = rl -> Minecraft.getInstance().getBlockRenderer().getBlockModelShaper().getModelManager().getModel(rl); + + @SubscribeEvent + public static void init(ModelRegistryEvent event){ + ForgeModelBakery.addSpecialModel(UM_ROTOR_RL); + } + + @Override + public boolean shouldRenderOffScreen(@Nonnull UniversalMotorTileEntity te){ + return true; + } + + @SuppressWarnings("deprecation") + @Override + public void render(UniversalMotorTileEntity te, float partialTicks, @Nonnull PoseStack matrix, @Nonnull MultiBufferSource bufferIn, int combinedLightIn, int combinedOverlayIn){ + if(!te.formed || te.isDummy() || !te.getLevelNonnull().hasChunkAt(te.getBlockPos())){ + return; + } + + renderRotor(matrix, bufferIn, te, partialTicks, combinedLightIn, combinedOverlayIn); + } + + static final Vector3f X_AXIS = new Vector3f(1.0F, 0.0F, 0.0F); + static final Vector3f Z_AXIS = new Vector3f(0.0F, 0.0F, 1.0F); + private void renderRotor(PoseStack matrix, MultiBufferSource buffer, UniversalMotorTileEntity te, float partialTicks, int light, int overlay){ + matrix.pushPose(); + { + float rot = te.rotation + te.rotationSpeed * partialTicks; + + matrix.translate(0.5, 1.5, 0.5); + matrix.mulPose(new Quaternion(te.getFacing().getAxis() == Axis.X ? X_AXIS : Z_AXIS, rot, true)); + List quads = f.apply(UM_ROTOR_RL).getQuads(null, null, null, EmptyModelData.INSTANCE); + Pose last = matrix.last(); + VertexConsumer solid = buffer.getBuffer(RenderType.solid()); + for(BakedQuad quad:quads){ + solid.putBulkData(last, quad, 1.0F, 1.0F, 1.0F, light, overlay); + } + } + matrix.popPose(); + } +} diff --git a/src/main/java/twistedgate/overengineered/common/OEContent.java b/src/main/java/twistedgate/overengineered/common/OEContent.java index 140d27f..ea087bb 100644 --- a/src/main/java/twistedgate/overengineered/common/OEContent.java +++ b/src/main/java/twistedgate/overengineered/common/OEContent.java @@ -1,10 +1,22 @@ package twistedgate.overengineered.common; +import blusunrize.immersiveengineering.api.multiblocks.MultiblockHandler; import net.minecraftforge.fml.event.lifecycle.ParallelDispatchEvent; +import net.minecraftforge.registries.RegistryObject; +import twistedgate.overengineered.common.blocks.UniversalMotorBlock; +import twistedgate.overengineered.common.multiblock.UniversalMotorMultiblock; public class OEContent{ public static class Blocks{ - + /* + public static final BlockEntry CREATE_TEST = OERegisters.REGISTRATE.block("create_test", CreateTestBlock::new) + .initialProperties(Material.METAL) + .transform(BlockStressDefaults.setCapacity(64 / 256F)) + .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) + //.item((b, u) -> new BlockItem(b, u.tab(OverEngineered.creativeTab))) + //.transform(ModelGen.customItemModel()) + .register(); + */ private static void forceClassLoad(){ } } @@ -15,9 +27,10 @@ private static void forceClassLoad(){ } } - // Not even sure OE is going to even have any MB at all public static class Multiblock{ + public static final RegistryObject UNIVERSAL_MOTOR = OERegisters.registerMultiblockBlock("universal_motor", UniversalMotorBlock::new); + private static void forceClassLoad(){ } } @@ -27,10 +40,9 @@ public static void modConstruction(){ Items.forceClassLoad(); Multiblock.forceClassLoad(); - - OETileTypes.forceClassLoad(); } public static void init(ParallelDispatchEvent event){ + MultiblockHandler.registerMultiblock(UniversalMotorMultiblock.INSTANCE); } } diff --git a/src/main/java/twistedgate/overengineered/common/OERegisters.java b/src/main/java/twistedgate/overengineered/common/OERegisters.java index 0503599..b2fe908 100644 --- a/src/main/java/twistedgate/overengineered/common/OERegisters.java +++ b/src/main/java/twistedgate/overengineered/common/OERegisters.java @@ -6,7 +6,11 @@ import javax.annotation.Nullable; import com.google.common.collect.ImmutableSet; +import com.simibubi.create.foundation.data.CreateRegistrate; +import blusunrize.immersiveengineering.api.IEProperties; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces; +import blusunrize.immersiveengineering.common.blocks.MultiblockBEType; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.entity.EntityType; import net.minecraft.world.inventory.MenuType; @@ -33,6 +37,8 @@ public class OERegisters{ private static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, OverEngineered.MODID); private static final DeferredRegister MOB_EFFECT = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, OverEngineered.MODID); + protected static final CreateRegistrate REGISTRATE = CreateRegistrate.create(OverEngineered.MODID); + public static void addRegistersToEventBus(IEventBus eventBus){ BLOCK_REGISTER.register(eventBus); ITEM_REGISTER.register(eventBus); @@ -42,12 +48,18 @@ public static void addRegistersToEventBus(IEventBus eventBus){ MENU_REGISTER.register(eventBus); RECIPE_SERIALIZERS.register(eventBus); MOB_EFFECT.register(eventBus); + + REGISTRATE.registerEventListeners(eventBus); } protected static RegistryObject registerBlock(String name, Supplier blockConstructor){ return registerBlock(name, blockConstructor, null); } + protected static RegistryObject registerMultiblockBlock(String name, Supplier blockConstructor){ + return registerBlock(name, blockConstructor, block -> new BlockItem(block, new Item.Properties())); + } + protected static RegistryObject registerBlock(String name, Supplier blockConstructor, @Nullable Function blockItem){ RegistryObject block = BLOCK_REGISTER.register(name, blockConstructor); if(blockItem != null){ @@ -63,4 +75,8 @@ protected static RegistryObject registerItem(String name, Su protected static RegistryObject> registerTE(String name, BlockEntityType.BlockEntitySupplier factory, Supplier valid){ return TE_REGISTER.register(name, () -> new BlockEntityType<>(factory, ImmutableSet.of(valid.get()), null)); } + + protected static MultiblockBEType registerMultiblockTE(String name, MultiblockBEType.BEWithTypeConstructor factory, Supplier valid){ + return new MultiblockBEType<>(name, TE_REGISTER, factory, valid, state -> state.hasProperty(IEProperties.MULTIBLOCKSLAVE) && !state.getValue(IEProperties.MULTIBLOCKSLAVE)); + } } diff --git a/src/main/java/twistedgate/overengineered/common/OETileTypes.java b/src/main/java/twistedgate/overengineered/common/OETileTypes.java index e2acd34..5834b95 100644 --- a/src/main/java/twistedgate/overengineered/common/OETileTypes.java +++ b/src/main/java/twistedgate/overengineered/common/OETileTypes.java @@ -1,7 +1,17 @@ package twistedgate.overengineered.common; +import blusunrize.immersiveengineering.common.blocks.MultiblockBEType; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraftforge.registries.RegistryObject; +import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorSlaveTileEntity; +import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorTileEntity; + public class OETileTypes{ + public static final RegistryObject> CREATE_TEST = null;//OERegisters.registerTE("create_test", UniversalMotorSlaveTileEntity::new, OEContent.Blocks.CREATE_TEST); + + public static final MultiblockBEType UNIVERSAL_MOTOR = OERegisters.registerMultiblockTE("universal_motor", UniversalMotorTileEntity::new, OEContent.Multiblock.UNIVERSAL_MOTOR); + public static void forceClassLoad(){ } } diff --git a/src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java new file mode 100644 index 0000000..4ec3c34 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java @@ -0,0 +1,53 @@ +package twistedgate.overengineered.common.blocks; + +import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; +import com.simibubi.create.foundation.block.IBE; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import twistedgate.overengineered.common.OETileTypes; +import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorSlaveTileEntity; + +public class CreateTestBlock extends DirectionalKineticBlock implements IBE{ + + public CreateTestBlock(){ + this(BlockBehaviour.Properties.of(Material.STONE)); + } + + public CreateTestBlock(BlockBehaviour.Properties prop){ + super(prop); + } + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face){ + return face == state.getValue(FACING); + } + + @Override + public Axis getRotationAxis(BlockState state){ + return state.getValue(FACING).getAxis(); + } + + @Override + public Class getBlockEntityClass(){ + return UniversalMotorSlaveTileEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType(){ + return OETileTypes.CREATE_TEST.get(); + } + + /* + @Override + public BlockEntityTicker getTicker(Level pLevel, BlockState pState, BlockEntityType pBlockEntityType){ + return createTickerHelper(pLevel.isClientSide, pBlockEntityType, OETileTypes.CREATE_TEST); + } + */ +} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java new file mode 100644 index 0000000..b4ed5e1 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java @@ -0,0 +1,26 @@ +package twistedgate.overengineered.common.blocks; + +import blusunrize.immersiveengineering.common.blocks.MultiblockBEType; +import blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartBlockEntity; +import blusunrize.immersiveengineering.common.blocks.metal.MetalMultiblockBlock; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import twistedgate.overengineered.common.blocks.ticking.OECommonTickableTile; + +public abstract class OEMetalMultiblock & OECommonTickableTile> extends MetalMultiblockBlock{ + private final MultiblockBEType multiblockBEType; + + public OEMetalMultiblock(MultiblockBEType entityType, Block.Properties props){ + super(entityType, props.requiresCorrectToolForDrops().isViewBlocking((state, blockReader, pos) -> false).noOcclusion()); + this.multiblockBEType = entityType; + } + + @Override + public BlockEntityTicker getTicker(Level world, BlockState state, BlockEntityType type){ + return OEBlockBase.createTickerHelper(world.isClientSide, type, this.multiblockBEType.master()); + } +} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java new file mode 100644 index 0000000..94cf155 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java @@ -0,0 +1,48 @@ +package twistedgate.overengineered.common.blocks; + +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.phys.BlockHitResult; +import twistedgate.overengineered.common.OETileTypes; +import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorTileEntity; + +public class UniversalMotorBlock extends OEMetalMultiblock{ + public UniversalMotorBlock(){ + super(OETileTypes.UNIVERSAL_MOTOR, Block.Properties.of(Material.METAL).sound(SoundType.METAL).strength(3, 15)); + } + + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit){ + if(world.isClientSide && player.getItemInHand(hand).isEmpty()){ + BlockEntity te = world.getBlockEntity(pos); + if(te instanceof UniversalMotorTileEntity motor && motor.posInMultiblock.equals(new BlockPos(0, 0, 0))){ + motor = motor.master(); + + if(!player.isCrouching()){ + if((++motor.rotationSpeed) > UniversalMotorTileEntity.rotationTopSpeed) + motor.rotationSpeed = UniversalMotorTileEntity.rotationTopSpeed; + }else{ + if((--motor.rotationSpeed) < -UniversalMotorTileEntity.rotationTopSpeed) + motor.rotationSpeed = -UniversalMotorTileEntity.rotationTopSpeed; + } + player.displayClientMessage(new TextComponent(Integer.toString(motor.rotationSpeed)), true); + } + } + return InteractionResult.SUCCESS; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState){ + // TODO Somehow switch to UniversalMotorSlaveTileEntity twice for input/output shaft + return super.newBlockEntity(pPos, pState); + } +} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/ticking/OECommonTickableTile.java b/src/main/java/twistedgate/overengineered/common/blocks/ticking/OECommonTickableTile.java new file mode 100644 index 0000000..eccd518 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/ticking/OECommonTickableTile.java @@ -0,0 +1,5 @@ +package twistedgate.overengineered.common.blocks.ticking; + +public interface OECommonTickableTile extends OEServerTickableTile, OEClientTickableTile{ + +} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/BasicTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/BasicTileEntity.java index bf93561..a83264d 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/BasicTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/BasicTileEntity.java @@ -42,7 +42,8 @@ public CompoundTag getUpdateTag(){ @Override public void onDataPacket(Connection net, ClientboundBlockEntityDataPacket pkt){ - load(pkt.getTag()); + if(pkt.getTag() != null) + load(pkt.getTag()); } @Override diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/OEMultiblockPartTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/OEMultiblockPartTileEntity.java new file mode 100644 index 0000000..835bc10 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/OEMultiblockPartTileEntity.java @@ -0,0 +1,22 @@ +package twistedgate.overengineered.common.blocks.tileentity; + +import blusunrize.immersiveengineering.api.energy.AveragingEnergyStorage; +import blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartBlockEntity; +import blusunrize.immersiveengineering.common.blocks.multiblocks.IETemplateMultiblock; +import blusunrize.immersiveengineering.common.util.MultiblockCapability; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.energy.IEnergyStorage; + +public abstract class OEMultiblockPartTileEntity> extends MultiblockPartBlockEntity{ + + public final AveragingEnergyStorage energyStorage; + protected final MultiblockCapability energyCap; + + protected OEMultiblockPartTileEntity(IETemplateMultiblock multiblockInstance, int energyCapacity, boolean hasRSControl, BlockEntityType type, BlockPos pos, BlockState state){ + super(multiblockInstance, type, hasRSControl, pos, state); + this.energyStorage = new AveragingEnergyStorage(energyCapacity); + this.energyCap = MultiblockCapability.make(this, be -> be.energyCap, OEMultiblockPartTileEntity::master, registerEnergyInput(this.energyStorage)); + } +} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java new file mode 100644 index 0000000..1ce6e77 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java @@ -0,0 +1,68 @@ +package twistedgate.overengineered.common.blocks.tileentity; + +import java.util.List; + +import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; +import com.simibubi.create.content.kinetics.motor.KineticScrollValueBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; +import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; +import com.simibubi.create.foundation.utility.VecHelper; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import twistedgate.overengineered.common.OETileTypes; + +/** + * Used where the Rotor Axis would make contact with a Create Shaft.
+ *
+ * Communicates with {@link UniversalMotorTileEntity} and vice versa. + * + * @author TwistedGate + */ +public class UniversalMotorSlaveTileEntity extends GeneratingKineticBlockEntity{ + + protected ScrollValueBehaviour generatedSpeed; + + public UniversalMotorSlaveTileEntity(BlockPos pos, BlockState state){ + super(OETileTypes.CREATE_TEST.get(), pos, state); + } + + @Override + public void addBehaviours(List behaviours){ + super.addBehaviours(behaviours); + + this.generatedSpeed = new KineticScrollValueBehaviour(new TextComponent("Change Speed"), this, new ValueBox()) + .between(-32, 32) + .withCallback(b -> updateGeneratedRotation()); + this.generatedSpeed.value = 16; + behaviours.add(this.generatedSpeed); + } + + @Override + public void initialize(){ + super.initialize(); + if(!hasSource() || getGeneratedSpeed() > getTheoreticalSpeed()) + updateGeneratedRotation(); + } + + @Override + public void tick(){ + super.tick(); + } + + @Override + public float getGeneratedSpeed(){ + return convertToDirection(this.generatedSpeed.getValue(), Direction.EAST); + } + + private class ValueBox extends ValueBoxTransform.Sided{ + @Override + protected Vec3 getSouthLocation(){ + return VecHelper.voxelSpace(8, 8, 12.5); + } + } +} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java new file mode 100644 index 0000000..897dd6b --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -0,0 +1,132 @@ +package twistedgate.overengineered.common.blocks.tileentity; + +import java.util.Set; + +import blusunrize.immersiveengineering.api.crafting.MultiblockRecipe; +import blusunrize.immersiveengineering.common.blocks.generic.PoweredMultiblockBlockEntity; +import blusunrize.immersiveengineering.common.blocks.multiblocks.process.MultiblockProcess; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidTank; +import twistedgate.overengineered.common.blocks.ticking.OECommonTickableTile; +import twistedgate.overengineered.common.multiblock.UniversalMotorMultiblock; + +/** + * Primary Generator Multiblock TileEntity.
+ *
+ * Communicates with {@link UniversalMotorSlaveTileEntity} and vice versa. + * + * @author TwistedGate + */ +public class UniversalMotorTileEntity extends PoweredMultiblockBlockEntity implements OECommonTickableTile{ + + public UniversalMotorTileEntity(BlockEntityType type, BlockPos pos, BlockState state){ + super(UniversalMotorMultiblock.INSTANCE, 1024, true, type, pos, state); + } + + public static final int rotationTopSpeed = 256; + + public int rotationSpeed = 2; + public int rotation = 0; + + @Override + public void tickClient(){ + this.rotation = (this.rotation + rotationSpeed) % 360; + } + + @Override + public void tickServer(){ + } + + @Override + public NonNullList getInventory(){ + return null; + } + + @Override + public boolean isStackValid(int slot, ItemStack stack){ + return false; + } + + @Override + public int getSlotLimit(int slot){ + return 0; + } + + @Override + public void doGraphicalUpdates(){ + } + + @Override + protected MultiblockRecipe getRecipeForId(Level level, ResourceLocation id){ + return null; + } + + @Override + public Set getEnergyPos(){ + return null; + } + + @Override + public IFluidTank[] getInternalTanks(){ + return null; + } + + @Override + public MultiblockRecipe findRecipeForInsertion(ItemStack inserting){ + return null; + } + + @Override + public int[] getOutputSlots(){ + return null; + } + + @Override + public int[] getOutputTanks(){ + return null; + } + + @Override + public boolean additionalCanProcessCheck(MultiblockProcess process){ + return false; + } + + @Override + public void doProcessOutput(ItemStack output){ + } + + @Override + public void doProcessFluidOutput(FluidStack output){ + } + + @Override + public void onProcessFinish(MultiblockProcess process){ + } + + @Override + public int getMaxProcessPerTick(){ + return 0; + } + + @Override + public int getProcessQueueMaxLength(){ + return 0; + } + + @Override + public float getMinProcessDistance(MultiblockProcess process){ + return 0; + } + + @Override + public boolean isInWorldProcessingMachine(){ + return false; + } +} diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java new file mode 100644 index 0000000..4400dc4 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java @@ -0,0 +1,21 @@ +package twistedgate.overengineered.common.multiblock; + +import java.util.function.Supplier; + +import blusunrize.immersiveengineering.common.blocks.multiblocks.IETemplateMultiblock; +import blusunrize.immersiveengineering.common.register.IEBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; + +public abstract class OETemplateMultiblock extends IETemplateMultiblock{ + private final Supplier baseState; + public OETemplateMultiblock(ResourceLocation loc, BlockPos masterFromOrigin, BlockPos triggerFromOrigin, BlockPos size, Supplier baseState){ + super(loc, masterFromOrigin, triggerFromOrigin, size, new IEBlocks.BlockEntry<>(baseState.get())); + this.baseState = baseState; + } + + public Block getBaseBlock(){ + return this.baseState.get(); + } +} diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java new file mode 100644 index 0000000..0067f8a --- /dev/null +++ b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java @@ -0,0 +1,41 @@ +package twistedgate.overengineered.common.multiblock; + +import java.util.function.Consumer; + +import blusunrize.immersiveengineering.api.multiblocks.ClientMultiblocks.MultiblockManualData; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; +import twistedgate.overengineered.common.OEContent; +import twistedgate.overengineered.utils.ResourceUtils; + +public class UniversalMotorMultiblock extends OETemplateMultiblock{ + public static final UniversalMotorMultiblock INSTANCE = new UniversalMotorMultiblock(); + + private UniversalMotorMultiblock(){ + super(ResourceUtils.oe("multiblocks/universal_motor"), new BlockPos(1, 0, 1), new BlockPos(0, 0, 2), new BlockPos(3, 3, 3), OEContent.Multiblock.UNIVERSAL_MOTOR); + } + + @Override + public float getManualScale(){ + return 1.0F; + } + + @Override + public void initializeClient(Consumer consumer){ + } + + @Override + public Component getDisplayName(){ + return new TextComponent("Universal Motor"); + } + + @Override + protected void replaceStructureBlock(StructureBlockInfo info, Level world, BlockPos actualPos, boolean mirrored, Direction clickDirection, Vec3i offsetFromMaster){ + super.replaceStructureBlock(info, world, actualPos, mirrored, clickDirection, offsetFromMaster); + } +} diff --git a/src/main/resources/assets/overengineered/models/multiblock/dyn/universal_motor_rotor.json b/src/main/resources/assets/overengineered/models/multiblock/dyn/universal_motor_rotor.json new file mode 100644 index 0000000..4a819ee --- /dev/null +++ b/src/main/resources/assets/overengineered/models/multiblock/dyn/universal_motor_rotor.json @@ -0,0 +1,9 @@ +{ + "loader": "forge:obj", + "model": "overengineered:models/multiblock/obj/universal_motor_rotor.obj", + "textures": { + "texture": "overengineered:multiblock/universal_motor", + "particle": "overengineered:multiblock/universal_motor" + }, + "flip-v": true +} \ No newline at end of file diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.mtl b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.mtl new file mode 100644 index 0000000..ae6136b --- /dev/null +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.mtl @@ -0,0 +1,2 @@ +newmtl None +map_Kd #texture diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj new file mode 100644 index 0000000..3f2b967 --- /dev/null +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj @@ -0,0 +1,2619 @@ +# Blender v2.79 (sub 0) OBJ File: 'generator.blend' +# www.blender.org +mtllib universal_motor.mtl +o Stator_Stator.Baseplate +v 2.000000 0.500000 1.000000 +v 2.000000 0.000000 1.000000 +v -1.000000 0.500000 1.000000 +v -1.000000 0.000000 1.000000 +v -1.000000 0.500000 2.000000 +v 2.000000 0.500000 2.000000 +v 2.000000 0.000000 2.000000 +v -1.000000 0.000000 2.000000 +v 2.000000 0.500000 0.000000 +v 2.000000 0.000000 0.000000 +v -1.000000 0.500000 0.000000 +v -1.000000 0.000000 0.000000 +v -1.000000 0.500000 -1.000000 +v 2.000000 0.500000 -1.000000 +v 2.000000 0.000000 -1.000000 +v -1.000000 0.000000 -1.000000 +v 2.000000 0.500000 0.000000 +v 2.000000 0.000000 0.000000 +v 1.500000 0.500000 0.000000 +v 1.500000 0.000000 0.000000 +v 1.500000 0.500000 1.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 0.000000 1.000000 +v 1.500000 0.000000 1.000000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.000000 0.000000 +v -1.000000 0.500000 -0.000000 +v -1.000000 0.000000 -0.000000 +v -1.000000 0.500000 1.000000 +v -0.500000 0.500000 1.000000 +v -0.500000 0.000000 1.000000 +v -1.000000 0.000000 1.000000 +v -1.000000 0.500000 0.000000 +v -1.000000 1.000000 0.000000 +v -1.000000 0.500000 -1.000000 +v -1.000000 1.000000 -1.000000 +v 0.000000 0.500000 0.000000 +v 0.000000 1.000000 0.000000 +v 0.000000 0.500000 -1.000000 +v 0.000000 1.000000 -1.000000 +v 1.000000 0.500000 0.000000 +v 1.000000 2.000000 0.000000 +v 1.000000 0.500000 -1.000000 +v 1.000000 2.000000 -1.000000 +v 2.000000 0.500000 0.000000 +v 2.000000 2.000000 0.000000 +v 2.000000 0.500000 -1.000000 +v 2.000000 2.000000 -1.000000 +v 0.250000 1.250000 1.625000 +v 0.250000 1.250000 1.375000 +v 0.750000 1.250000 1.625000 +v 0.750000 1.250000 1.375000 +v 0.250000 1.750000 1.625000 +v 0.250000 1.750000 1.375000 +v 0.750000 1.750000 1.375000 +v 0.750000 1.750000 1.625000 +v 0.125000 0.500000 1.625000 +v 0.250000 1.250000 1.625000 +v 0.125000 0.500000 1.375000 +v 0.250000 1.250000 1.375000 +v 0.250000 0.500000 1.625000 +v 0.375000 1.250000 1.625000 +v 0.250000 0.500000 1.375000 +v 0.375000 1.250000 1.375000 +v 0.875000 0.500000 1.375000 +v 0.750000 1.250000 1.375000 +v 0.875000 0.500000 1.625000 +v 0.750000 1.250000 1.625000 +v 0.750000 0.500000 1.375000 +v 0.625000 1.250000 1.375000 +v 0.750000 0.500000 1.625000 +v 0.625000 1.250000 1.625000 +v 0.250000 1.250000 -0.625000 +v 0.250000 1.250000 -0.375000 +v 0.750000 1.250000 -0.625000 +v 0.750000 1.250000 -0.375000 +v 0.250000 1.750000 -0.625000 +v 0.250000 1.750000 -0.375000 +v 0.750000 1.750000 -0.375000 +v 0.750000 1.750000 -0.625000 +v 0.125000 0.500000 -0.625000 +v 0.250000 1.250000 -0.625000 +v 0.125000 0.500000 -0.375000 +v 0.250000 1.250000 -0.375000 +v 0.250000 0.500000 -0.625000 +v 0.375000 1.250000 -0.625000 +v 0.250000 0.500000 -0.375000 +v 0.375000 1.250000 -0.375000 +v 0.875000 0.500000 -0.375000 +v 0.750000 1.250000 -0.375000 +v 0.875000 0.500000 -0.625000 +v 0.750000 1.250000 -0.625000 +v 0.750000 0.500000 -0.375000 +v 0.625000 1.250000 -0.375000 +v 0.750000 0.500000 -0.625000 +v 0.625000 1.250000 -0.625000 +v 1.875000 1.625000 0.625000 +v 1.875000 1.226562 0.250000 +v 1.875000 1.625000 0.375000 +v 2.000000 1.226562 0.750000 +v 1.937500 1.625000 0.625000 +v 2.000000 1.226562 0.250000 +v 1.937500 1.625000 0.375000 +v 1.875000 1.375000 0.625000 +v 1.875000 1.375000 0.375000 +v 2.000000 1.375000 0.375000 +v 2.000000 1.375000 0.625000 +v 1.875000 1.226562 0.750000 +v 1.665942 0.720558 0.750000 +v 2.000000 0.720558 0.750000 +v 1.665942 0.720558 0.250000 +v 2.000000 0.720558 0.250000 +v 1.665942 0.498832 0.250000 +v 2.000000 0.498832 0.250000 +v 2.000000 0.498832 0.750000 +v 1.665942 0.498832 0.750000 +v -0.875000 1.625000 0.625000 +v -0.875000 1.226562 0.250000 +v -0.875000 1.625000 0.375000 +v -1.000000 1.226562 0.750000 +v -0.937500 1.625000 0.625000 +v -1.000000 1.226562 0.250000 +v -0.937500 1.625000 0.375000 +v -0.875000 1.375000 0.625000 +v -0.875000 1.375000 0.375000 +v -1.000000 1.375000 0.375000 +v -1.000000 1.375000 0.625000 +v -0.875000 1.226562 0.750000 +v -0.665942 0.720558 0.750000 +v -1.000000 0.720558 0.750000 +v -0.665942 0.720558 0.250000 +v -1.000000 0.720558 0.250000 +v -0.665942 0.498832 0.250000 +v -1.000000 0.498832 0.250000 +v -1.000000 0.498832 0.750000 +v -0.665942 0.498832 0.750000 +v 0.761080 2.812536 0.251077 +v 0.761080 2.812536 0.748923 +v 1.243492 2.612714 0.251077 +v 1.243492 2.612714 0.748923 +v 1.612714 2.243492 0.251077 +v 1.612714 2.243492 0.748923 +v 1.812536 1.761080 0.251077 +v 1.812536 1.761080 0.748923 +v 1.812536 1.238920 0.251077 +v 1.812536 1.238920 0.748923 +v 1.612714 0.756508 0.251077 +v 1.612714 0.756508 0.748923 +v 1.243492 0.387286 0.251077 +v 1.243492 0.387286 0.748923 +v 0.761080 0.187464 0.251077 +v 0.761080 0.187464 0.748923 +v 0.238921 0.187464 0.251077 +v 0.238921 0.187464 0.748923 +v -0.243492 0.387286 0.251077 +v -0.243492 0.387286 0.748923 +v -0.612714 0.756508 0.251077 +v -0.612714 0.756508 0.748923 +v -0.812536 1.238920 0.251077 +v -0.812536 1.238920 0.748923 +v -0.812536 1.761080 0.251077 +v -0.812536 1.761080 0.748923 +v -0.612714 2.243492 0.251077 +v -0.612714 2.243492 0.748923 +v -0.243491 2.612714 0.251077 +v -0.243491 2.612714 0.748923 +v 0.238921 2.812536 0.251077 +v 0.238921 2.812536 0.748923 +v 1.279065 2.665954 0.251077 +v 0.773571 2.875336 0.251077 +v 0.773571 2.875336 0.748923 +v 1.279065 2.665954 0.748923 +v 1.665954 2.279065 0.251077 +v 1.665954 2.279065 0.748923 +v 1.875336 1.773571 0.251077 +v 1.875336 1.773571 0.748923 +v 1.875336 1.226429 0.251077 +v 1.875336 1.226429 0.748923 +v 1.665954 0.720935 0.251077 +v 1.665954 0.720934 0.748923 +v 1.279065 0.334046 0.251077 +v 1.279065 0.334046 0.748923 +v 0.773571 0.124664 0.251077 +v 0.773571 0.124664 0.748923 +v 0.226429 0.124664 0.251077 +v 0.226429 0.124664 0.748923 +v -0.279065 0.334046 0.251077 +v -0.279065 0.334046 0.748923 +v -0.665954 0.720934 0.251077 +v -0.665954 0.720934 0.748923 +v -0.875336 1.226429 0.251077 +v -0.875336 1.226429 0.748923 +v -0.875336 1.773571 0.251077 +v -0.875336 1.773571 0.748923 +v -0.665954 2.279066 0.251077 +v -0.665954 2.279066 0.748923 +v -0.279065 2.665954 0.251077 +v -0.279065 2.665954 0.748923 +v 0.226429 2.875336 0.251077 +v 0.226429 2.875336 0.748923 +v 0.312500 0.250000 0.312500 +v 0.687500 0.250000 0.687500 +v 0.312500 0.250000 0.687500 +v 0.312500 0.500000 0.312500 +v 0.312500 0.500000 0.687500 +v 0.312500 0.187500 0.312500 +v 0.687500 0.187500 0.312500 +v 0.312500 0.562500 0.312500 +v 0.687500 0.562500 0.312500 +v 0.687500 0.562500 0.687500 +v 0.687500 0.500000 0.687500 +v 0.687500 0.250000 0.312500 +v 0.312500 0.562500 0.687500 +v 0.312500 0.187500 0.687500 +v 0.687500 0.500000 0.312500 +v 0.687500 0.187500 0.687500 +v 0.375000 0.250000 0.375000 +v 0.375000 0.500000 0.625000 +v 0.625000 0.250000 0.625000 +v 0.375000 0.250000 0.625000 +v 0.625000 0.500000 0.625000 +v 0.625000 0.250000 0.375000 +v 0.625000 0.500000 0.375000 +v 0.375000 0.500000 0.375000 +v -0.151582 0.416903 0.312500 +v 0.194873 0.273397 0.687500 +v -0.151582 0.416904 0.687500 +v -0.055911 0.647874 0.312500 +v -0.055911 0.647874 0.687500 +v -0.175499 0.359161 0.312500 +v 0.170955 0.215655 0.312500 +v -0.031993 0.705616 0.312500 +v 0.314462 0.562110 0.312500 +v 0.314462 0.562110 0.687500 +v 0.290544 0.504367 0.687500 +v 0.194873 0.273397 0.312500 +v -0.031993 0.705616 0.687500 +v -0.175499 0.359161 0.687500 +v 0.290544 0.504367 0.312500 +v 0.170955 0.215655 0.687500 +v -0.093839 0.392986 0.375000 +v 0.001832 0.623956 0.625000 +v 0.137131 0.297315 0.625000 +v -0.093839 0.392986 0.625000 +v 0.232801 0.528285 0.625000 +v 0.137131 0.297315 0.375000 +v 0.232801 0.528285 0.375000 +v 0.001832 0.623956 0.375000 +v 1.151582 2.583096 0.312500 +v 0.805127 2.726602 0.687501 +v 1.151582 2.583096 0.687501 +v 1.055911 2.352126 0.312500 +v 1.055911 2.352126 0.687500 +v 1.175500 2.640838 0.312501 +v 0.829045 2.784345 0.312501 +v 1.031993 2.294384 0.312500 +v 0.685539 2.437890 0.312500 +v 0.685539 2.437890 0.687500 +v 0.709456 2.495632 0.687500 +v 0.805127 2.726602 0.312501 +v 1.031993 2.294384 0.687500 +v 1.175500 2.640838 0.687501 +v 0.709456 2.495632 0.312500 +v 0.829045 2.784345 0.687501 +v 1.093840 2.607014 0.375001 +v 0.998169 2.376044 0.625000 +v 0.862870 2.702685 0.625000 +v 1.093840 2.607014 0.625000 +v 0.767199 2.471715 0.625000 +v 0.862870 2.702685 0.375001 +v 0.767199 2.471715 0.375000 +v 0.998169 2.376044 0.375000 +v -0.583097 2.151581 0.312500 +v -0.726603 1.805126 0.687500 +v -0.583097 2.151581 0.687500 +v -0.352127 2.055910 0.312500 +v -0.352127 2.055910 0.687500 +v -0.640839 2.175498 0.312500 +v -0.784346 1.829043 0.312500 +v -0.294385 2.031992 0.312500 +v -0.437891 1.685537 0.312500 +v -0.437890 1.685537 0.687500 +v -0.495633 1.709455 0.687500 +v -0.726603 1.805126 0.312500 +v -0.294384 2.031992 0.687500 +v -0.640839 2.175498 0.687500 +v -0.495633 1.709455 0.312500 +v -0.784345 1.829043 0.687500 +v -0.607014 2.093838 0.375000 +v -0.376045 1.998168 0.625000 +v -0.702685 1.862868 0.625000 +v -0.607014 2.093838 0.625000 +v -0.471715 1.767197 0.625000 +v -0.702685 1.862868 0.375000 +v -0.471715 1.767198 0.375000 +v -0.376045 1.998168 0.375000 +v 1.583096 0.848418 0.312500 +v 1.726603 1.194873 0.687500 +v 1.583096 0.848418 0.687500 +v 1.352126 0.944089 0.312500 +v 1.352126 0.944089 0.687500 +v 1.640839 0.824500 0.312500 +v 1.784345 1.170955 0.312500 +v 1.294384 0.968007 0.312500 +v 1.437890 1.314461 0.312500 +v 1.437890 1.314461 0.687500 +v 1.495633 1.290544 0.687500 +v 1.726603 1.194873 0.312500 +v 1.294384 0.968007 0.687500 +v 1.640839 0.824500 0.687500 +v 1.495633 1.290544 0.312500 +v 1.784345 1.170955 0.687500 +v 1.607014 0.906160 0.375000 +v 1.376044 1.001831 0.625000 +v 1.702685 1.137130 0.625000 +v 1.607014 0.906161 0.625000 +v 1.471715 1.232801 0.625000 +v 1.702685 1.137130 0.375000 +v 1.471715 1.232801 0.375000 +v 1.376044 1.001832 0.375000 +v 1.726603 1.805126 0.312500 +v 1.583096 2.151581 0.687500 +v 1.726602 1.805126 0.687500 +v 1.495633 1.709456 0.312500 +v 1.495633 1.709456 0.687500 +v 1.784345 1.829044 0.312500 +v 1.640839 2.175499 0.312500 +v 1.437890 1.685538 0.312500 +v 1.294384 2.031993 0.312500 +v 1.294384 2.031993 0.687500 +v 1.352126 2.055911 0.687500 +v 1.583096 2.151581 0.312500 +v 1.437890 1.685538 0.687500 +v 1.784345 1.829044 0.687500 +v 1.352126 2.055911 0.312500 +v 1.640839 2.175499 0.687500 +v 1.702685 1.862869 0.375000 +v 1.471715 1.767198 0.625000 +v 1.607014 2.093839 0.625000 +v 1.702685 1.862869 0.625000 +v 1.376044 1.998168 0.625000 +v 1.607014 2.093839 0.375000 +v 1.376044 1.998168 0.375000 +v 1.471715 1.767198 0.375000 +v -0.726602 1.194872 0.312500 +v -0.583095 0.848417 0.687500 +v -0.726602 1.194872 0.687500 +v -0.495632 1.290543 0.312500 +v -0.495632 1.290543 0.687500 +v -0.784345 1.170954 0.312500 +v -0.640838 0.824499 0.312500 +v -0.437890 1.314461 0.312500 +v -0.294383 0.968006 0.312500 +v -0.294383 0.968006 0.687500 +v -0.352126 0.944088 0.687500 +v -0.583096 0.848417 0.312500 +v -0.437890 1.314461 0.687500 +v -0.784345 1.170954 0.687500 +v -0.352126 0.944088 0.312500 +v -0.640838 0.824499 0.687500 +v -0.702685 1.137129 0.375000 +v -0.471715 1.232800 0.625000 +v -0.607013 0.906160 0.625000 +v -0.702684 1.137129 0.625000 +v -0.376044 1.001831 0.625000 +v -0.607013 0.906159 0.375000 +v -0.376044 1.001831 0.375000 +v -0.471715 1.232800 0.375000 +v 0.194873 2.726603 0.312500 +v -0.151582 2.583096 0.687500 +v 0.194873 2.726603 0.687500 +v 0.290544 2.495633 0.312500 +v 0.290544 2.495632 0.687500 +v 0.170955 2.784345 0.312501 +v -0.175500 2.640839 0.312500 +v 0.314462 2.437890 0.312500 +v -0.031993 2.294384 0.312500 +v -0.031993 2.294384 0.687500 +v -0.055911 2.352126 0.687500 +v -0.151582 2.583096 0.312500 +v 0.314462 2.437890 0.687500 +v 0.170955 2.784345 0.687501 +v -0.055911 2.352126 0.312500 +v -0.175500 2.640839 0.687500 +v 0.137131 2.702685 0.375000 +v 0.232801 2.471715 0.625000 +v -0.093839 2.607014 0.625000 +v 0.137131 2.702685 0.625000 +v 0.001832 2.376044 0.625000 +v -0.093839 2.607014 0.375000 +v 0.001832 2.376044 0.375000 +v 0.232801 2.471715 0.375000 +v 0.805127 0.273397 0.312500 +v 1.151582 0.416904 0.687500 +v 0.805127 0.273397 0.687500 +v 0.709456 0.504367 0.312500 +v 0.709456 0.504367 0.687500 +v 0.829044 0.215655 0.312500 +v 1.175499 0.359161 0.312500 +v 0.685538 0.562110 0.312500 +v 1.031993 0.705616 0.312500 +v 1.031993 0.705616 0.687500 +v 1.055911 0.647873 0.687500 +v 1.151582 0.416904 0.312500 +v 0.685538 0.562110 0.687500 +v 0.829044 0.215655 0.687500 +v 1.055911 0.647874 0.312500 +v 1.175499 0.359161 0.687500 +v 0.862869 0.297315 0.375000 +v 0.767198 0.528285 0.625000 +v 1.093839 0.392986 0.625000 +v 0.862869 0.297315 0.625000 +v 0.998168 0.623956 0.625000 +v 1.093839 0.392986 0.375000 +v 0.998168 0.623956 0.375000 +v 0.767198 0.528285 0.375000 +v 1.251301 0.483534 0.312500 +v 1.516466 0.748699 0.687500 +v 1.251301 0.483534 0.687500 +v 1.074524 0.660311 0.312500 +v 1.074524 0.660311 0.687500 +v 1.295495 0.439340 0.312500 +v 1.560660 0.704505 0.312500 +v 1.030330 0.704505 0.312500 +v 1.295495 0.969670 0.312500 +v 1.295495 0.969670 0.687500 +v 1.339689 0.925476 0.687500 +v 1.516466 0.748699 0.312500 +v 1.030330 0.704505 0.687500 +v 1.295495 0.439340 0.687500 +v 1.339689 0.925476 0.312500 +v 1.560660 0.704505 0.687500 +v 1.295495 0.527728 0.375000 +v 1.118718 0.704505 0.625000 +v 1.472272 0.704505 0.625000 +v 1.295495 0.527728 0.625000 +v 1.295495 0.881281 0.625000 +v 1.472272 0.704505 0.375000 +v 1.295495 0.881281 0.375000 +v 1.118718 0.704505 0.375000 +v -0.251301 2.516466 0.312500 +v -0.516466 2.251301 0.687500 +v -0.251301 2.516466 0.687500 +v -0.074524 2.339689 0.312500 +v -0.074524 2.339689 0.687500 +v -0.295495 2.560660 0.312500 +v -0.560660 2.295495 0.312500 +v -0.030330 2.295495 0.312500 +v -0.295495 2.030330 0.312500 +v -0.295495 2.030330 0.687500 +v -0.339689 2.074524 0.687500 +v -0.516466 2.251301 0.312500 +v -0.030330 2.295495 0.687500 +v -0.295495 2.560660 0.687500 +v -0.339689 2.074524 0.312500 +v -0.560660 2.295495 0.687500 +v -0.295495 2.472272 0.375000 +v -0.118718 2.295495 0.625000 +v -0.472272 2.295495 0.625000 +v -0.295495 2.472272 0.625000 +v -0.295495 2.118718 0.625000 +v -0.472272 2.295495 0.375000 +v -0.295495 2.118718 0.375000 +v -0.118719 2.295495 0.375000 +v -0.516465 0.748698 0.312500 +v -0.251300 0.483533 0.687500 +v -0.516465 0.748698 0.687500 +v -0.339689 0.925475 0.312500 +v -0.339689 0.925475 0.687500 +v -0.560660 0.704504 0.312500 +v -0.295494 0.439339 0.312500 +v -0.295495 0.969669 0.312500 +v -0.030330 0.704504 0.312500 +v -0.030330 0.704504 0.687500 +v -0.074524 0.660310 0.687500 +v -0.251300 0.483533 0.312500 +v -0.295495 0.969669 0.687500 +v -0.560660 0.704504 0.687500 +v -0.074524 0.660310 0.312500 +v -0.295494 0.439339 0.687500 +v -0.472271 0.704504 0.375000 +v -0.295495 0.881281 0.625000 +v -0.295494 0.527727 0.625000 +v -0.472271 0.704504 0.625000 +v -0.118718 0.704504 0.625000 +v -0.295494 0.527727 0.375000 +v -0.118718 0.704504 0.375000 +v -0.295495 0.881281 0.375000 +v 1.516466 2.251301 0.312500 +v 1.251301 2.516466 0.687500 +v 1.516466 2.251300 0.687500 +v 1.339689 2.074524 0.312500 +v 1.339689 2.074524 0.687500 +v 1.560660 2.295495 0.312500 +v 1.295495 2.560660 0.312500 +v 1.295495 2.030330 0.312500 +v 1.030330 2.295495 0.312500 +v 1.030330 2.295495 0.687500 +v 1.074524 2.339689 0.687500 +v 1.251301 2.516466 0.312500 +v 1.295495 2.030330 0.687500 +v 1.560660 2.295495 0.687500 +v 1.074524 2.339689 0.312500 +v 1.295495 2.560660 0.687500 +v 1.472272 2.295495 0.375000 +v 1.295495 2.118718 0.625000 +v 1.295495 2.472271 0.625000 +v 1.472272 2.295495 0.625000 +v 1.118719 2.295495 0.625000 +v 1.295495 2.472271 0.375000 +v 1.118719 2.295495 0.375000 +v 1.295495 2.118718 0.375000 +v 1.750000 1.312500 0.312500 +v 1.750000 1.687500 0.687500 +v 1.750000 1.312500 0.687500 +v 1.500000 1.312500 0.312500 +v 1.500000 1.312500 0.687500 +v 1.812500 1.312500 0.312500 +v 1.812500 1.687500 0.312500 +v 1.437500 1.312500 0.312500 +v 1.437500 1.687500 0.312500 +v 1.437500 1.687500 0.687500 +v 1.500000 1.687500 0.687500 +v 1.750000 1.687500 0.312500 +v 1.437500 1.312500 0.687500 +v 1.812500 1.312500 0.687500 +v 1.500000 1.687500 0.312500 +v 1.812500 1.687500 0.687500 +v 1.750000 1.375000 0.375000 +v 1.500000 1.375000 0.625000 +v 1.750000 1.625000 0.625000 +v 1.750000 1.375000 0.625000 +v 1.500000 1.625000 0.625000 +v 1.750000 1.625000 0.375000 +v 1.500000 1.625000 0.375000 +v 1.500000 1.375000 0.375000 +v -0.750000 1.687499 0.312500 +v -0.750000 1.312499 0.687500 +v -0.750000 1.687499 0.687500 +v -0.500000 1.687499 0.312500 +v -0.500000 1.687499 0.687500 +v -0.812500 1.687499 0.312500 +v -0.812500 1.312499 0.312500 +v -0.437500 1.687499 0.312500 +v -0.437500 1.312499 0.312500 +v -0.437500 1.312500 0.687500 +v -0.500000 1.312499 0.687500 +v -0.750000 1.312499 0.312500 +v -0.437500 1.687499 0.687500 +v -0.812500 1.687499 0.687500 +v -0.500000 1.312499 0.312500 +v -0.812500 1.312499 0.687500 +v -0.750000 1.624999 0.375000 +v -0.500000 1.624999 0.625000 +v -0.750000 1.374999 0.625000 +v -0.750000 1.624999 0.625000 +v -0.500000 1.374999 0.625000 +v -0.750000 1.374999 0.375000 +v -0.500000 1.375000 0.375000 +v -0.500000 1.624999 0.375000 +v 0.687500 2.750000 0.312501 +v 0.312500 2.750000 0.687501 +v 0.687500 2.750000 0.687501 +v 0.687500 2.500000 0.312500 +v 0.687500 2.500000 0.687500 +v 0.687500 2.812500 0.312501 +v 0.312500 2.812500 0.312501 +v 0.687500 2.437500 0.312500 +v 0.312500 2.437500 0.312500 +v 0.312500 2.437500 0.687500 +v 0.312500 2.500000 0.687500 +v 0.312500 2.750000 0.312501 +v 0.687500 2.437500 0.687500 +v 0.687500 2.812500 0.687501 +v 0.312500 2.500000 0.312500 +v 0.312500 2.812500 0.687501 +v 0.625000 2.750000 0.375001 +v 0.625000 2.500000 0.625000 +v 0.375000 2.750000 0.625000 +v 0.625000 2.750000 0.625000 +v 0.375000 2.500000 0.625000 +v 0.375000 2.750000 0.375001 +v 0.375000 2.500000 0.375000 +v 0.625000 2.500000 0.375000 +v 0.250000 1.625000 1.000000 +v 0.250000 1.375000 1.000000 +v 0.250000 1.625000 1.625000 +v 0.250000 1.375000 1.625000 +v 0.000000 1.625000 1.000000 +v 0.000000 1.375000 1.000000 +v 0.000000 1.625000 1.625000 +v 0.000000 1.375000 1.625000 +v 0.750000 1.625000 1.000000 +v 0.750000 1.375000 1.000000 +v 0.750000 1.625000 1.625000 +v 0.750000 1.375000 1.625000 +v 1.000000 1.625000 1.000000 +v 1.000000 1.375000 1.000000 +v 1.000000 1.625000 1.625000 +v 1.000000 1.375000 1.625000 +v 0.250000 1.437500 1.156250 +v 0.250000 1.562500 1.156250 +v 0.250000 1.437500 1.031250 +v 0.250000 1.562500 1.031250 +v 0.750000 1.437500 1.156250 +v 0.750000 1.562500 1.156250 +v 0.750000 1.437500 1.031250 +v 0.750000 1.562500 1.031250 +vt 0.375000 0.250000 +vt 0.375000 0.312500 +vt 0.750000 0.312500 +vt 0.750000 0.250000 +vt 0.375000 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.375000 0.625000 +vt 0.375000 0.250000 +vt 0.375000 0.312500 +vt 0.750000 0.312500 +vt 0.750000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.312500 +vt 0.750000 0.312500 +vt 0.750000 0.250000 +vt 0.625000 0.312500 +vt 0.625000 0.250000 +vt 0.000000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.625000 +vt 0.000000 0.625000 +vt 0.375000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.312500 +vt 0.375000 0.312500 +vt 0.375000 0.875000 +vt 0.375000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.875000 +vt 0.375000 0.312500 +vt 0.750000 0.312500 +vt 0.750000 0.375000 +vt 0.375000 0.375000 +vt 0.500000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.312500 +vt 0.500000 0.312500 +vt 0.625000 0.312500 +vt 0.750000 0.312500 +vt 0.750000 0.375000 +vt 0.625000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.250000 +vt 0.375000 0.375000 +vt 0.375000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.750000 +vt 0.375000 0.750000 +vt 0.500000 0.250000 +vt 0.500000 0.312500 +vt 0.625000 0.312500 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.250000 +vt 0.312500 0.375000 +vt 0.375000 0.375000 +vt 0.375000 0.500000 +vt 0.312500 0.500000 +vt 0.062500 0.875000 +vt 0.000000 0.875000 +vt 0.000000 0.750000 +vt 0.062500 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.250000 +vt 0.000000 0.375000 +vt 0.062500 0.375000 +vt 0.062500 0.500000 +vt 0.000000 0.500000 +vt 0.750000 0.375000 +vt 0.750000 0.437500 +vt 0.625000 0.437500 +vt 0.625000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.437500 +vt 0.625000 0.437500 +vt 0.625000 0.375000 +vt 0.750000 0.437500 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.437500 +vt 0.750000 0.437500 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.437500 +vt 0.375000 0.562500 +vt 0.500000 0.562500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.812500 +vt 0.875000 0.812500 +vt 0.875000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.812500 +vt 0.625000 1.000000 +vt 0.625000 0.812500 +vt 0.375000 0.562500 +vt 0.500000 0.562500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.531250 0.593750 +vt 0.593750 0.593750 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.593750 0.593750 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.531250 0.593750 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.593750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.593750 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.812500 0.515625 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.812500 0.515625 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.359922 0.489680 +vt 0.359922 0.523034 +vt 0.327578 0.523034 +vt 0.327578 0.489680 +vt 0.338696 0.490690 +vt 0.338696 0.523034 +vt 0.330610 0.523034 +vt 0.322524 0.490690 +vt 0.359922 0.489680 +vt 0.359922 0.523034 +vt 0.327578 0.523034 +vt 0.327578 0.489680 +vt 0.322524 0.490690 +vt 0.330610 0.523034 +vt 0.338696 0.523034 +vt 0.338696 0.490690 +vt 0.338696 0.470475 +vt 0.322524 0.470475 +vt 0.322524 0.403766 +vt 0.364976 0.403766 +vt 0.370030 0.523034 +vt 0.370030 0.509895 +vt 0.317470 0.509895 +vt 0.317470 0.523034 +vt 0.322524 0.470475 +vt 0.338696 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.312417 0.404776 +vt 0.375083 0.404776 +vt 0.312417 0.403766 +vt 0.375083 0.403766 +vt 0.364976 0.403766 +vt 0.322524 0.403766 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.364976 0.375464 +vt 0.322524 0.375464 +vt 0.322524 0.375464 +vt 0.364976 0.375464 +vt 0.359922 0.489680 +vt 0.327578 0.489680 +vt 0.327578 0.523034 +vt 0.359922 0.523034 +vt 0.338696 0.490690 +vt 0.322524 0.490690 +vt 0.330610 0.523034 +vt 0.338696 0.523034 +vt 0.359922 0.489680 +vt 0.327578 0.489680 +vt 0.327578 0.523034 +vt 0.359922 0.523034 +vt 0.322524 0.490690 +vt 0.338696 0.490690 +vt 0.338696 0.523034 +vt 0.330610 0.523034 +vt 0.338696 0.470475 +vt 0.364976 0.403766 +vt 0.322524 0.403766 +vt 0.322524 0.470475 +vt 0.370030 0.523034 +vt 0.317470 0.523034 +vt 0.317470 0.509895 +vt 0.370030 0.509895 +vt 0.322524 0.470475 +vt 0.338696 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.375083 0.404776 +vt 0.312417 0.404776 +vt 0.375083 0.403766 +vt 0.312417 0.403766 +vt 0.322524 0.403766 +vt 0.364976 0.403766 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.322524 0.375464 +vt 0.364976 0.375464 +vt 0.364976 0.375464 +vt 0.322524 0.375464 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.843750 0.742188 +vt 0.812500 0.742188 +vt 0.812500 0.664062 +vt 0.843750 0.664062 +vt 0.843750 0.742188 +vt 0.812500 0.742188 +vt 0.812500 0.664062 +vt 0.843750 0.664062 +vt 0.812500 0.742188 +vt 0.843750 0.742188 +vt 0.843750 0.664062 +vt 0.812500 0.664062 +vt 0.875000 0.343750 +vt 0.843750 0.343750 +vt 0.843750 0.312500 +vt 0.875000 0.312500 +vt 0.875000 0.343750 +vt 0.843750 0.343750 +vt 0.843750 0.312500 +vt 0.875000 0.312500 +vt 0.843750 0.742188 +vt 0.843750 0.664062 +vt 0.812500 0.664062 +vt 0.812500 0.742188 +vt 0.843750 0.742188 +vt 0.843750 0.664062 +vt 0.812500 0.664062 +vt 0.812500 0.742188 +vt 0.812500 0.742188 +vt 0.812500 0.664062 +vt 0.843750 0.664062 +vt 0.843750 0.742188 +vt 0.875000 0.343750 +vt 0.875000 0.312500 +vt 0.843750 0.312500 +vt 0.843750 0.343750 +vt 0.875000 0.343750 +vt 0.875000 0.312500 +vt 0.843750 0.312500 +vt 0.843750 0.343750 +vt 0.875000 0.703125 +vt 0.875000 0.734375 +vt 0.843750 0.734375 +vt 0.843750 0.703125 +vt 0.843750 0.656250 +vt 0.875000 0.656250 +vt 0.875000 0.812500 +vt 0.843750 0.812500 +vt 0.875000 0.703125 +vt 0.875000 0.734375 +vt 0.843750 0.734375 +vt 0.843750 0.703125 +vt 0.843750 0.656250 +vt 0.875000 0.656250 +vt 0.875000 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.656250 +vt 0.875000 0.656250 +vt 0.875000 0.812500 +vt 0.875000 0.656250 +vt 0.875000 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.656250 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.9864 0.1644 0.0000 +vn 0.9864 -0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn -0.9864 -0.1644 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.6441 0.7649 +vn 0.0000 0.6441 -0.7649 +vn -0.9242 0.3818 0.0000 +vn -0.9701 0.2425 0.0000 +vn 0.9242 0.3818 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.3827 -0.9239 0.0000 +usemtl None +s off +f 4/1/1 3/2/1 1/3/1 2/4/1 +f 1/5/2 3/6/2 5/7/2 6/8/2 +f 7/9/3 6/10/3 5/11/3 8/12/3 +f 2/13/4 1/14/4 6/15/4 7/16/4 +f 8/12/5 5/11/5 3/17/5 4/18/5 +f 4/19/6 2/20/6 7/21/6 8/22/6 +f 12/23/3 10/24/3 9/25/3 11/26/3 +f 9/27/2 14/28/2 13/29/2 11/30/2 +f 15/31/1 16/32/1 13/33/1 14/34/1 +f 10/35/4 15/36/4 14/37/4 9/38/4 +f 16/39/5 12/40/5 11/41/5 13/42/5 +f 12/43/6 16/44/6 15/36/6 10/45/6 +f 17/46/2 19/47/2 21/48/2 22/49/2 +f 18/50/4 17/51/4 22/52/4 23/53/4 +f 24/54/5 21/55/5 19/56/5 20/57/5 +f 20/58/6 18/59/6 23/60/6 24/61/6 +f 25/62/2 27/63/2 29/64/2 30/65/2 +f 26/66/4 25/67/4 30/68/4 31/69/4 +f 32/70/5 29/71/5 27/72/5 28/73/5 +f 28/74/6 26/75/6 31/76/6 32/77/6 +f 33/78/5 34/79/5 36/80/5 35/81/5 +f 35/82/1 36/83/1 40/84/1 39/85/1 +f 39/86/4 40/87/4 38/88/4 37/89/4 +f 37/90/3 38/91/3 34/92/3 33/93/3 +f 40/94/2 36/95/2 34/96/2 38/97/2 +f 41/98/5 42/99/5 44/100/5 43/101/5 +f 43/102/1 44/103/1 48/104/1 47/105/1 +f 47/105/4 48/104/4 46/106/4 45/107/4 +f 45/107/3 46/106/3 42/99/3 41/98/3 +f 48/108/2 44/109/2 42/110/2 46/111/2 +f 49/112/3 51/113/3 56/114/3 53/115/3 +f 55/116/2 54/117/2 53/118/2 56/119/2 +f 52/120/1 50/121/1 54/122/1 55/123/1 +f 51/124/4 52/125/4 55/126/4 56/127/4 +f 50/128/5 49/112/5 53/115/5 54/129/5 +f 49/130/6 50/131/6 52/132/6 51/133/6 +f 57/134/7 58/135/7 60/136/7 59/137/7 +f 59/138/1 60/139/1 64/140/1 63/141/1 +f 63/141/8 64/140/8 62/142/8 61/143/8 +f 61/144/3 62/145/3 58/146/3 57/147/3 +f 67/148/3 68/149/3 72/150/3 71/151/3 +f 65/152/9 66/153/9 68/154/9 67/155/9 +f 71/151/10 72/150/10 70/156/10 69/157/10 +f 69/158/1 70/159/1 66/160/1 65/161/1 +f 73/162/1 77/163/1 80/164/1 75/165/1 +f 79/166/2 80/167/2 77/168/2 78/169/2 +f 76/170/3 79/171/3 78/172/3 74/173/3 +f 75/174/4 80/175/4 79/176/4 76/177/4 +f 74/178/5 78/179/5 77/163/5 73/162/5 +f 73/180/6 75/181/6 76/182/6 74/183/6 +f 81/184/7 83/185/7 84/186/7 82/187/7 +f 83/188/3 87/189/3 88/190/3 84/191/3 +f 87/189/8 85/192/8 86/193/8 88/190/8 +f 85/194/1 81/195/1 82/196/1 86/197/1 +f 91/198/1 95/199/1 96/200/1 92/201/1 +f 89/202/9 91/203/9 92/204/9 90/205/9 +f 95/199/10 93/206/10 94/207/10 96/200/10 +f 93/208/3 89/209/3 90/210/3 94/211/3 +f 104/212/5 97/213/5 99/214/5 105/215/5 +f 105/216/1 99/217/1 103/218/1 106/219/1 +f 106/220/11 103/221/11 101/222/11 107/223/11 +f 107/224/3 101/225/3 97/226/3 104/227/3 +f 98/228/1 102/229/1 112/230/1 111/231/1 +f 103/232/2 99/233/2 97/234/2 101/235/2 +f 100/236/12 107/224/12 104/227/12 108/237/12 +f 102/238/4 106/220/4 107/223/4 100/239/4 +f 98/228/13 105/216/13 106/219/13 102/229/13 +f 108/240/5 104/212/5 105/215/5 98/241/5 +f 108/240/14 98/241/14 111/242/14 109/243/14 +f 102/238/4 100/239/4 110/244/4 112/245/4 +f 100/236/3 108/237/3 109/246/3 110/247/3 +f 115/248/4 114/249/4 112/245/4 110/244/4 +f 113/250/5 116/251/5 109/243/5 111/242/5 +f 109/246/3 116/252/3 115/253/3 110/247/3 +f 112/230/1 114/254/1 113/255/1 111/231/1 +f 124/256/4 125/257/4 119/258/4 117/259/4 +f 125/260/1 126/261/1 123/262/1 119/263/1 +f 126/264/15 127/265/15 121/266/15 123/267/15 +f 127/268/3 124/269/3 117/270/3 121/271/3 +f 118/272/1 131/273/1 132/274/1 122/275/1 +f 123/276/2 121/277/2 117/278/2 119/279/2 +f 120/280/12 128/281/12 124/269/12 127/268/12 +f 122/282/5 120/283/5 127/265/5 126/264/5 +f 118/272/13 122/275/13 126/261/13 125/260/13 +f 128/284/4 118/285/4 125/257/4 124/256/4 +f 128/284/16 129/286/16 131/287/16 118/285/16 +f 122/282/5 132/288/5 130/289/5 120/283/5 +f 120/280/3 130/290/3 129/291/3 128/281/3 +f 135/292/5 130/289/5 132/288/5 134/293/5 +f 133/294/4 131/287/4 129/286/4 136/295/4 +f 129/291/3 130/290/3 135/296/3 136/297/3 +f 132/274/1 131/273/1 133/298/1 134/299/1 +f 137/300/17 139/301/17 140/302/17 138/303/17 +f 139/304/18 141/305/18 142/306/18 140/307/18 +f 141/308/19 143/309/19 144/310/19 142/311/19 +f 143/312/5 145/313/5 146/314/5 144/315/5 +f 145/316/20 147/317/20 148/318/20 146/319/20 +f 147/320/21 149/321/21 150/322/21 148/323/21 +f 149/324/22 151/325/22 152/326/22 150/327/22 +f 151/328/2 153/329/2 154/330/2 152/331/2 +f 153/332/23 155/333/23 156/334/23 154/335/23 +f 155/336/24 157/337/24 158/338/24 156/339/24 +f 157/340/25 159/341/25 160/342/25 158/343/25 +f 159/344/4 161/345/4 162/346/4 160/347/4 +f 161/348/26 163/349/26 164/350/26 162/351/26 +f 163/352/27 165/353/27 166/354/27 164/355/27 +f 165/356/28 167/357/28 168/358/28 166/359/28 +f 167/360/6 137/361/6 138/362/6 168/363/6 +f 170/364/23 171/365/23 172/366/23 169/367/23 +f 169/368/24 172/369/24 174/370/24 173/371/24 +f 173/372/25 174/373/25 176/374/25 175/375/25 +f 175/376/4 176/377/4 178/378/4 177/379/4 +f 177/380/26 178/381/26 180/382/26 179/383/26 +f 179/384/27 180/385/27 182/386/27 181/387/27 +f 181/388/28 182/389/28 184/390/28 183/391/28 +f 183/392/6 184/393/6 186/394/6 185/395/6 +f 185/396/17 186/397/17 188/398/17 187/399/17 +f 187/400/18 188/401/18 190/402/18 189/403/18 +f 189/404/19 190/405/19 192/406/19 191/407/19 +f 191/408/5 192/409/5 194/410/5 193/411/5 +f 193/412/20 194/413/20 196/414/20 195/415/20 +f 195/416/21 196/417/21 198/418/21 197/419/21 +f 197/420/22 198/421/22 200/422/22 199/423/22 +f 199/424/2 200/425/2 171/426/2 170/427/2 +f 150/428/3 182/429/3 180/430/3 148/323/3 +f 168/431/3 200/432/3 198/433/3 166/359/3 +f 139/304/1 169/434/1 173/435/1 141/436/1 +f 157/340/1 189/437/1 191/438/1 159/439/1 +f 142/440/3 174/441/3 172/442/3 140/307/3 +f 160/443/3 192/444/3 190/445/3 158/343/3 +f 149/324/1 181/446/1 183/447/1 151/448/1 +f 167/360/1 199/449/1 170/450/1 137/451/1 +f 152/452/3 184/453/3 182/454/3 150/327/3 +f 138/455/3 171/456/3 200/457/3 168/363/3 +f 141/308/1 173/458/1 175/459/1 143/460/1 +f 159/344/1 191/461/1 193/462/1 161/463/1 +f 144/464/3 176/465/3 174/466/3 142/311/3 +f 162/467/3 194/468/3 192/469/3 160/347/3 +f 151/328/1 183/470/1 185/471/1 153/472/1 +f 154/473/3 186/474/3 184/475/3 152/331/3 +f 143/312/1 175/476/1 177/477/1 145/478/1 +f 161/348/1 193/479/1 195/480/1 163/481/1 +f 146/482/3 178/483/3 176/484/3 144/315/3 +f 164/485/3 196/486/3 194/487/3 162/351/3 +f 153/332/1 185/488/1 187/489/1 155/490/1 +f 156/491/3 188/492/3 186/493/3 154/335/3 +f 145/316/1 177/494/1 179/495/1 147/496/1 +f 163/352/1 195/497/1 197/498/1 165/499/1 +f 137/300/1 170/500/1 169/501/1 139/502/1 +f 148/503/3 180/504/3 178/505/3 146/319/3 +f 166/506/3 198/507/3 196/508/3 164/355/3 +f 155/336/1 187/509/1 189/510/1 157/511/1 +f 140/512/3 172/513/3 171/514/3 138/303/3 +f 158/515/3 190/516/3 188/517/3 156/339/3 +f 147/320/1 179/518/1 181/519/1 149/520/1 +f 165/356/1 197/521/1 199/522/1 167/523/1 +f 204/524/6 215/525/6 211/526/6 205/527/6 +f 206/528/6 207/529/6 216/530/6 214/531/6 +f 203/532/5 201/533/5 206/534/5 214/535/5 +f 215/536/1 204/524/1 208/537/1 209/538/1 +f 217/539/5 220/540/5 218/541/5 224/542/5 +f 213/543/2 210/544/2 209/545/2 208/546/2 +f 204/547/5 205/548/5 213/549/5 208/550/5 +f 224/551/1 223/552/1 222/553/1 217/554/1 +f 212/555/4 202/556/4 216/557/4 207/558/4 +f 219/559/4 222/560/4 223/561/4 221/562/4 +f 205/527/3 211/563/3 210/564/3 213/565/3 +f 201/566/1 212/567/1 207/568/1 206/528/1 +f 220/569/3 219/570/3 221/571/3 218/572/3 +f 203/573/2 202/574/2 212/575/2 201/576/2 +f 211/577/4 215/578/4 209/579/4 210/580/4 +f 202/581/3 203/582/3 214/531/3 216/583/3 +f 228/584/17 239/585/17 235/586/17 229/587/17 +f 230/588/17 231/589/17 240/590/17 238/591/17 +f 227/592/20 225/593/20 230/594/20 238/595/20 +f 239/596/1 228/584/1 232/597/1 233/598/1 +f 241/599/20 244/600/20 242/601/20 248/602/20 +f 237/603/23 234/604/23 233/605/23 232/606/23 +f 228/607/20 229/608/20 237/609/20 232/610/20 +f 248/611/1 247/612/1 246/613/1 241/614/1 +f 236/615/26 226/616/26 240/617/26 231/618/26 +f 243/619/26 246/620/26 247/621/26 245/622/26 +f 229/587/3 235/623/3 234/624/3 237/625/3 +f 225/626/1 236/627/1 231/628/1 230/588/1 +f 244/629/3 243/630/3 245/631/3 242/632/3 +f 227/633/23 226/634/23 236/635/23 225/636/23 +f 235/637/26 239/638/26 233/639/26 234/640/26 +f 226/641/3 227/642/3 238/591/3 240/643/3 +f 252/644/23 263/645/23 259/646/23 253/647/23 +f 254/648/23 255/649/23 264/650/23 262/651/23 +f 251/652/26 249/653/26 254/654/26 262/655/26 +f 263/656/1 252/644/1 256/657/1 257/658/1 +f 265/659/26 268/660/26 266/661/26 272/662/26 +f 261/663/17 258/664/17 257/665/17 256/666/17 +f 252/667/26 253/668/26 261/669/26 256/670/26 +f 272/671/1 271/672/1 270/673/1 265/674/1 +f 260/675/20 250/676/20 264/677/20 255/678/20 +f 267/679/20 270/680/20 271/681/20 269/682/20 +f 253/647/3 259/683/3 258/684/3 261/685/3 +f 249/686/1 260/687/1 255/688/1 254/648/1 +f 268/689/3 267/690/3 269/691/3 266/692/3 +f 251/693/17 250/694/17 260/695/17 249/696/17 +f 259/697/20 263/698/20 257/699/20 258/700/20 +f 250/701/3 251/702/3 262/651/3 264/703/3 +f 276/704/20 287/705/20 283/706/20 277/707/20 +f 278/708/20 279/709/20 288/710/20 286/711/20 +f 275/712/23 273/713/23 278/714/23 286/715/23 +f 287/716/1 276/704/1 280/717/1 281/718/1 +f 289/719/23 292/720/23 290/721/23 296/722/23 +f 285/723/26 282/724/26 281/725/26 280/726/26 +f 276/727/23 277/728/23 285/729/23 280/730/23 +f 296/731/1 295/732/1 294/733/1 289/734/1 +f 284/735/17 274/736/17 288/737/17 279/738/17 +f 291/739/17 294/740/17 295/741/17 293/742/17 +f 277/707/3 283/743/3 282/744/3 285/745/3 +f 273/746/1 284/747/1 279/748/1 278/708/1 +f 292/749/3 291/750/3 293/751/3 290/752/3 +f 275/753/26 274/754/26 284/755/26 273/756/26 +f 283/757/17 287/758/17 281/759/17 282/760/17 +f 274/761/3 275/762/3 286/711/3 288/763/3 +f 300/764/26 311/765/26 307/766/26 301/767/26 +f 302/768/26 303/769/26 312/770/26 310/771/26 +f 299/772/17 297/773/17 302/774/17 310/775/17 +f 311/776/1 300/764/1 304/777/1 305/778/1 +f 313/779/17 316/780/17 314/781/17 320/782/17 +f 309/783/20 306/784/20 305/785/20 304/786/20 +f 300/787/17 301/788/17 309/789/17 304/790/17 +f 320/791/1 319/792/1 318/793/1 313/794/1 +f 308/795/23 298/796/23 312/797/23 303/798/23 +f 315/799/23 318/800/23 319/801/23 317/802/23 +f 301/767/3 307/803/3 306/804/3 309/805/3 +f 297/806/1 308/807/1 303/808/1 302/768/1 +f 316/809/3 315/810/3 317/811/3 314/812/3 +f 299/813/20 298/814/20 308/815/20 297/816/20 +f 307/817/23 311/818/23 305/819/23 306/820/23 +f 298/821/3 299/822/3 310/771/3 312/823/3 +f 324/824/25 335/825/25 331/826/25 325/827/25 +f 326/828/25 327/829/25 336/830/25 334/831/25 +f 323/832/28 321/833/28 326/834/28 334/835/28 +f 335/836/1 324/824/1 328/837/1 329/838/1 +f 337/839/28 340/840/28 338/841/28 344/842/28 +f 333/843/19 330/844/19 329/845/19 328/846/19 +f 324/847/28 325/848/28 333/849/28 328/850/28 +f 344/851/1 343/852/1 342/853/1 337/854/1 +f 332/855/22 322/856/22 336/857/22 327/858/22 +f 339/859/22 342/860/22 343/861/22 341/862/22 +f 325/827/3 331/863/3 330/864/3 333/865/3 +f 321/866/1 332/867/1 327/868/1 326/828/1 +f 340/869/3 339/870/3 341/871/3 338/872/3 +f 323/873/19 322/874/19 332/875/19 321/876/19 +f 331/877/22 335/878/22 329/879/22 330/880/22 +f 322/881/3 323/882/3 334/831/3 336/883/3 +f 348/884/19 359/885/19 355/886/19 349/887/19 +f 350/888/19 351/889/19 360/890/19 358/891/19 +f 347/892/22 345/893/22 350/894/22 358/895/22 +f 359/896/1 348/884/1 352/897/1 353/898/1 +f 361/899/22 364/900/22 362/901/22 368/902/22 +f 357/903/25 354/904/25 353/905/25 352/906/25 +f 348/907/22 349/908/22 357/909/22 352/910/22 +f 368/911/1 367/912/1 366/913/1 361/914/1 +f 356/915/28 346/916/28 360/917/28 351/918/28 +f 363/919/28 366/920/28 367/921/28 365/922/28 +f 349/887/3 355/923/3 354/924/3 357/925/3 +f 345/926/1 356/927/1 351/928/1 350/888/1 +f 364/929/3 363/930/3 365/931/3 362/932/3 +f 347/933/25 346/934/25 356/935/25 345/936/25 +f 355/937/28 359/938/28 353/939/28 354/940/28 +f 346/941/3 347/942/3 358/891/3 360/943/3 +f 372/944/22 383/945/22 379/946/22 373/947/22 +f 374/948/22 375/949/22 384/950/22 382/951/22 +f 371/952/25 369/953/25 374/954/25 382/955/25 +f 383/956/1 372/944/1 376/957/1 377/958/1 +f 385/959/25 388/960/25 386/961/25 392/962/25 +f 381/963/28 378/964/28 377/965/28 376/966/28 +f 372/967/25 373/968/25 381/969/25 376/970/25 +f 392/971/1 391/972/1 390/973/1 385/974/1 +f 380/975/19 370/976/19 384/977/19 375/978/19 +f 387/979/19 390/980/19 391/981/19 389/982/19 +f 373/947/3 379/983/3 378/984/3 381/985/3 +f 369/986/1 380/987/1 375/988/1 374/948/1 +f 388/989/3 387/990/3 389/991/3 386/992/3 +f 371/993/28 370/994/28 380/995/28 369/996/28 +f 379/997/19 383/998/19 377/999/19 378/1000/19 +f 370/1001/3 371/1002/3 382/951/3 384/1003/3 +f 396/1004/28 407/1005/28 403/1006/28 397/1007/28 +f 398/1008/28 399/1009/28 408/1010/28 406/1011/28 +f 395/1012/19 393/1013/19 398/1014/19 406/1015/19 +f 407/1016/1 396/1004/1 400/1017/1 401/1018/1 +f 409/1019/19 412/1020/19 410/1021/19 416/1022/19 +f 405/1023/22 402/1024/22 401/1025/22 400/1026/22 +f 396/1027/19 397/1028/19 405/1029/19 400/1030/19 +f 416/1031/1 415/1032/1 414/1033/1 409/1034/1 +f 404/1035/25 394/1036/25 408/1037/25 399/1038/25 +f 411/1039/25 414/1040/25 415/1041/25 413/1042/25 +f 397/1007/3 403/1043/3 402/1044/3 405/1045/3 +f 393/1046/1 404/1047/1 399/1048/1 398/1008/1 +f 412/1049/3 411/1050/3 413/1051/3 410/1052/3 +f 395/1053/22 394/1054/22 404/1055/22 393/1056/22 +f 403/1057/25 407/1058/25 401/1059/25 402/1060/25 +f 394/1061/3 395/1062/3 406/1011/3 408/1063/3 +f 420/1064/27 431/1065/27 427/1066/27 421/1067/27 +f 422/1068/27 423/1069/27 432/1070/27 430/1071/27 +f 419/1072/18 417/1073/18 422/1074/18 430/1075/18 +f 431/1076/1 420/1064/1 424/1077/1 425/1078/1 +f 433/1079/18 436/1080/18 434/1081/18 440/1082/18 +f 429/1083/21 426/1084/21 425/1085/21 424/1086/21 +f 420/1087/18 421/1088/18 429/1089/18 424/1090/18 +f 440/1091/1 439/1092/1 438/1093/1 433/1094/1 +f 428/1095/24 418/1096/24 432/1097/24 423/1098/24 +f 435/1099/24 438/1100/24 439/1101/24 437/1102/24 +f 421/1067/3 427/1103/3 426/1104/3 429/1105/3 +f 417/1106/1 428/1107/1 423/1108/1 422/1068/1 +f 436/1109/3 435/1110/3 437/1111/3 434/1112/3 +f 419/1113/21 418/1114/21 428/1115/21 417/1116/21 +f 427/1117/24 431/1118/24 425/1119/24 426/1120/24 +f 418/1121/3 419/1122/3 430/1071/3 432/1123/3 +f 444/1124/21 455/1125/21 451/1126/21 445/1127/21 +f 446/1128/21 447/1129/21 456/1130/21 454/1131/21 +f 443/1132/24 441/1133/24 446/1134/24 454/1135/24 +f 455/1136/1 444/1124/1 448/1137/1 449/1138/1 +f 457/1139/24 460/1140/24 458/1141/24 464/1142/24 +f 453/1143/27 450/1144/27 449/1145/27 448/1146/27 +f 444/1147/24 445/1148/24 453/1149/24 448/1150/24 +f 464/1151/1 463/1152/1 462/1153/1 457/1154/1 +f 452/1155/18 442/1156/18 456/1157/18 447/1158/18 +f 459/1159/18 462/1160/18 463/1161/18 461/1162/18 +f 445/1127/3 451/1163/3 450/1164/3 453/1165/3 +f 441/1166/1 452/1167/1 447/1168/1 446/1128/1 +f 460/1169/3 459/1170/3 461/1171/3 458/1172/3 +f 443/1173/27 442/1174/27 452/1175/27 441/1176/27 +f 451/1177/18 455/1178/18 449/1179/18 450/1180/18 +f 442/1181/3 443/1182/3 454/1131/3 456/1183/3 +f 468/1184/18 479/1185/18 475/1186/18 469/1187/18 +f 470/1188/18 471/1189/18 480/1190/18 478/1191/18 +f 467/1192/21 465/1193/21 470/1194/21 478/1195/21 +f 479/1196/1 468/1184/1 472/1197/1 473/1198/1 +f 481/1199/21 484/1200/21 482/1201/21 488/1202/21 +f 477/1203/24 474/1204/24 473/1205/24 472/1206/24 +f 468/1207/21 469/1208/21 477/1209/21 472/1210/21 +f 488/1211/1 487/1212/1 486/1213/1 481/1214/1 +f 476/1215/27 466/1216/27 480/1217/27 471/1218/27 +f 483/1219/27 486/1220/27 487/1221/27 485/1222/27 +f 469/1187/3 475/1223/3 474/1224/3 477/1225/3 +f 465/1226/1 476/1227/1 471/1228/1 470/1188/1 +f 484/1229/3 483/1230/3 485/1231/3 482/1232/3 +f 467/1233/24 466/1234/24 476/1235/24 465/1236/24 +f 475/1237/27 479/1238/27 473/1239/27 474/1240/27 +f 466/1241/3 467/1242/3 478/1191/3 480/1243/3 +f 492/1244/24 503/1245/24 499/1246/24 493/1247/24 +f 494/1248/24 495/1249/24 504/1250/24 502/1251/24 +f 491/1252/27 489/1253/27 494/1254/27 502/1255/27 +f 503/1256/1 492/1244/1 496/1257/1 497/1258/1 +f 505/1259/27 508/1260/27 506/1261/27 512/1262/27 +f 501/1263/18 498/1264/18 497/1265/18 496/1266/18 +f 492/1267/27 493/1268/27 501/1269/27 496/1270/27 +f 512/1271/1 511/1272/1 510/1273/1 505/1274/1 +f 500/1275/21 490/1276/21 504/1277/21 495/1278/21 +f 507/1279/21 510/1280/21 511/1281/21 509/1282/21 +f 493/1247/3 499/1283/3 498/1284/3 501/1285/3 +f 489/1286/1 500/1287/1 495/1288/1 494/1248/1 +f 508/1289/3 507/1290/3 509/1291/3 506/1292/3 +f 491/1293/18 490/1294/18 500/1295/18 489/1296/18 +f 499/1297/21 503/1298/21 497/1299/21 498/1300/21 +f 490/1301/3 491/1302/3 502/1251/3 504/1303/3 +f 516/1304/4 527/1305/4 523/1306/4 517/1307/4 +f 518/1308/4 519/1309/4 528/1310/4 526/1311/4 +f 515/1312/6 513/1313/6 518/1314/6 526/1315/6 +f 527/1316/1 516/1304/1 520/1317/1 521/1318/1 +f 529/1319/6 532/1320/6 530/1321/6 536/1322/6 +f 525/1323/5 522/1324/5 521/1325/5 520/1326/5 +f 516/1327/6 517/1328/6 525/1329/6 520/1330/6 +f 536/1331/1 535/1332/1 534/1333/1 529/1334/1 +f 524/1335/2 514/1336/2 528/1337/2 519/1338/2 +f 531/1339/2 534/1340/2 535/1341/2 533/1342/2 +f 517/1307/3 523/1343/3 522/1344/3 525/1345/3 +f 513/1346/1 524/1347/1 519/1348/1 518/1308/1 +f 532/1349/3 531/1350/3 533/1351/3 530/1352/3 +f 515/1353/5 514/1354/5 524/1355/5 513/1356/5 +f 523/1357/2 527/1358/2 521/1359/2 522/1360/2 +f 514/1361/3 515/1362/3 526/1311/3 528/1363/3 +f 540/1364/5 551/1365/5 547/1366/5 541/1367/5 +f 542/1368/5 543/1369/5 552/1370/5 550/1371/5 +f 539/1372/2 537/1373/2 542/1374/2 550/1375/2 +f 551/1376/1 540/1364/1 544/1377/1 545/1378/1 +f 553/1379/2 556/1380/2 554/1381/2 560/1382/2 +f 549/1383/4 546/1384/4 545/1385/4 544/1386/4 +f 540/1387/2 541/1388/2 549/1389/2 544/1390/2 +f 560/1391/1 559/1392/1 558/1393/1 553/1394/1 +f 548/1395/6 538/1396/6 552/1397/6 543/1398/6 +f 555/1399/6 558/1400/6 559/1401/6 557/1402/6 +f 541/1367/3 547/1403/3 546/1404/3 549/1405/3 +f 537/1406/1 548/1407/1 543/1408/1 542/1368/1 +f 556/1409/3 555/1410/3 557/1411/3 554/1412/3 +f 539/1413/4 538/1414/4 548/1415/4 537/1416/4 +f 547/1417/6 551/1418/6 545/1419/6 546/1420/6 +f 538/1421/3 539/1422/3 550/1371/3 552/1423/3 +f 564/1424/2 575/1425/2 571/1426/2 565/1427/2 +f 566/1428/2 567/1429/2 576/1430/2 574/1431/2 +f 563/1432/4 561/1433/4 566/1434/4 574/1435/4 +f 575/1436/1 564/1424/1 568/1437/1 569/1438/1 +f 577/1439/4 580/1440/4 578/1441/4 584/1442/4 +f 573/1443/6 570/1444/6 569/1445/6 568/1446/6 +f 564/1447/4 565/1448/4 573/1449/4 568/1450/4 +f 584/1451/1 583/1452/1 582/1453/1 577/1454/1 +f 572/1455/5 562/1456/5 576/1457/5 567/1458/5 +f 579/1459/5 582/1460/5 583/1461/5 581/1462/5 +f 565/1427/3 571/1463/3 570/1464/3 573/1465/3 +f 561/1466/1 572/1467/1 567/1468/1 566/1428/1 +f 580/1469/3 579/1470/3 581/1471/3 578/1472/3 +f 563/1473/6 562/1474/6 572/1475/6 561/1476/6 +f 571/1477/5 575/1478/5 569/1479/5 570/1480/5 +f 562/1481/3 563/1482/3 574/1431/3 576/1483/3 +f 590/1484/6 586/1485/6 588/1486/6 592/1487/6 +f 585/1488/2 589/1489/2 591/1490/2 587/1491/2 +f 592/1492/5 591/1493/5 589/1494/5 590/1495/5 +f 590/1496/1 589/1497/1 585/1498/1 586/1499/1 +f 586/1485/4 585/1488/4 587/1491/4 588/1486/4 +f 588/1500/3 587/1501/3 591/1502/3 592/1503/3 +f 598/1504/6 600/1505/6 596/1506/6 594/1507/6 +f 593/1508/2 595/1509/2 599/1510/2 597/1511/2 +f 600/1512/4 598/1513/4 597/1514/4 599/1515/4 +f 598/1516/1 594/1517/1 593/1518/1 597/1519/1 +f 594/1507/5 596/1506/5 595/1509/5 593/1508/5 +f 596/1520/3 600/1521/3 599/1522/3 595/1523/3 +f 601/1524/5 602/1525/5 604/1526/5 603/1527/5 +f 603/1528/1 604/1529/1 608/1530/1 607/1531/1 +f 607/1532/4 608/1533/4 606/1534/4 605/1535/4 +f 605/1536/3 606/1537/3 602/1538/3 601/1539/3 +f 603/1540/6 607/1541/6 605/1542/6 601/1543/6 +f 608/1544/2 604/1545/2 602/1546/2 606/1547/2 diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj new file mode 100644 index 0000000..4e823ab --- /dev/null +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj @@ -0,0 +1,2619 @@ +# Blender v2.79 (sub 0) OBJ File: 'generator.blend' +# www.blender.org +mtllib universal_motor.mtl +o Stator_mirrored +v -1.000000 0.500000 1.000000 +v -1.000000 0.000000 1.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 0.000000 1.000000 +v 2.000000 0.500000 2.000000 +v -1.000000 0.500000 2.000000 +v -1.000000 0.000000 2.000000 +v 2.000000 0.000000 2.000000 +v -1.000000 0.500000 0.000000 +v -1.000000 0.000000 0.000000 +v 2.000000 0.500000 0.000000 +v 2.000000 0.000000 0.000000 +v 2.000000 0.500000 -1.000000 +v -1.000000 0.500000 -1.000000 +v -1.000000 0.000000 -1.000000 +v 2.000000 0.000000 -1.000000 +v -1.000000 0.500000 0.000000 +v -1.000000 0.000000 0.000000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.000000 0.000000 +v -0.500000 0.500000 1.000000 +v -1.000000 0.500000 1.000000 +v -1.000000 0.000000 1.000000 +v -0.500000 0.000000 1.000000 +v 1.500000 0.500000 0.000000 +v 1.500000 0.000000 0.000000 +v 2.000000 0.500000 -0.000000 +v 2.000000 0.000000 -0.000000 +v 2.000000 0.500000 1.000000 +v 1.500000 0.500000 1.000000 +v 1.500000 0.000000 1.000000 +v 2.000000 0.000000 1.000000 +v 2.000000 0.500000 0.000000 +v 2.000000 1.000000 0.000000 +v 2.000000 0.500000 -1.000000 +v 2.000000 1.000000 -1.000000 +v 1.000000 0.500000 0.000000 +v 1.000000 1.000000 0.000000 +v 1.000000 0.500000 -1.000000 +v 1.000000 1.000000 -1.000000 +v 0.000000 0.500000 0.000000 +v 0.000000 2.000000 0.000000 +v 0.000000 0.500000 -1.000000 +v 0.000000 2.000000 -1.000000 +v -1.000000 0.500000 0.000000 +v -1.000000 2.000000 0.000000 +v -1.000000 0.500000 -1.000000 +v -1.000000 2.000000 -1.000000 +v 0.750000 1.250000 1.625000 +v 0.750000 1.250000 1.375000 +v 0.250000 1.250000 1.625000 +v 0.250000 1.250000 1.375000 +v 0.750000 1.750000 1.625000 +v 0.750000 1.750000 1.375000 +v 0.250000 1.750000 1.375000 +v 0.250000 1.750000 1.625000 +v 0.875000 0.500000 1.625000 +v 0.750000 1.250000 1.625000 +v 0.875000 0.500000 1.375000 +v 0.750000 1.250000 1.375000 +v 0.750000 0.500000 1.625000 +v 0.625000 1.250000 1.625000 +v 0.750000 0.500000 1.375000 +v 0.625000 1.250000 1.375000 +v 0.125000 0.500000 1.375000 +v 0.250000 1.250000 1.375000 +v 0.125000 0.500000 1.625000 +v 0.250000 1.250000 1.625000 +v 0.250000 0.500000 1.375000 +v 0.375000 1.250000 1.375000 +v 0.250000 0.500000 1.625000 +v 0.375000 1.250000 1.625000 +v 0.750000 1.250000 -0.625000 +v 0.750000 1.250000 -0.375000 +v 0.250000 1.250000 -0.625000 +v 0.250000 1.250000 -0.375000 +v 0.750000 1.750000 -0.625000 +v 0.750000 1.750000 -0.375000 +v 0.250000 1.750000 -0.375000 +v 0.250000 1.750000 -0.625000 +v 0.875000 0.500000 -0.625000 +v 0.750000 1.250000 -0.625000 +v 0.875000 0.500000 -0.375000 +v 0.750000 1.250000 -0.375000 +v 0.750000 0.500000 -0.625000 +v 0.625000 1.250000 -0.625000 +v 0.750000 0.500000 -0.375000 +v 0.625000 1.250000 -0.375000 +v 0.125000 0.500000 -0.375000 +v 0.250000 1.250000 -0.375000 +v 0.125000 0.500000 -0.625000 +v 0.250000 1.250000 -0.625000 +v 0.250000 0.500000 -0.375000 +v 0.375000 1.250000 -0.375000 +v 0.250000 0.500000 -0.625000 +v 0.375000 1.250000 -0.625000 +v -0.875000 1.625000 0.625000 +v -0.875000 1.226562 0.250000 +v -0.875000 1.625000 0.375000 +v -1.000000 1.226562 0.750000 +v -0.937500 1.625000 0.625000 +v -1.000000 1.226562 0.250000 +v -0.937500 1.625000 0.375000 +v -0.875000 1.375000 0.625000 +v -0.875000 1.375000 0.375000 +v -1.000000 1.375000 0.375000 +v -1.000000 1.375000 0.625000 +v -0.875000 1.226562 0.750000 +v -0.665942 0.720558 0.750000 +v -1.000000 0.720558 0.750000 +v -0.665942 0.720558 0.250000 +v -1.000000 0.720558 0.250000 +v -0.665942 0.498832 0.250000 +v -1.000000 0.498832 0.250000 +v -1.000000 0.498832 0.750000 +v -0.665942 0.498832 0.750000 +v 1.875000 1.625000 0.625000 +v 1.875000 1.226562 0.250000 +v 1.875000 1.625000 0.375000 +v 2.000000 1.226562 0.750000 +v 1.937500 1.625000 0.625000 +v 2.000000 1.226562 0.250000 +v 1.937500 1.625000 0.375000 +v 1.875000 1.375000 0.625000 +v 1.875000 1.375000 0.375000 +v 2.000000 1.375000 0.375000 +v 2.000000 1.375000 0.625000 +v 1.875000 1.226562 0.750000 +v 1.665942 0.720558 0.750000 +v 2.000000 0.720558 0.750000 +v 1.665942 0.720558 0.250000 +v 2.000000 0.720558 0.250000 +v 1.665942 0.498832 0.250000 +v 2.000000 0.498832 0.250000 +v 2.000000 0.498832 0.750000 +v 1.665942 0.498832 0.750000 +v 0.238920 2.812536 0.251077 +v 0.238920 2.812536 0.748923 +v -0.243492 2.612714 0.251077 +v -0.243492 2.612714 0.748923 +v -0.612714 2.243492 0.251077 +v -0.612714 2.243492 0.748923 +v -0.812536 1.761080 0.251077 +v -0.812536 1.761080 0.748923 +v -0.812536 1.238920 0.251077 +v -0.812536 1.238920 0.748923 +v -0.612714 0.756508 0.251077 +v -0.612714 0.756508 0.748923 +v -0.243492 0.387286 0.251077 +v -0.243492 0.387286 0.748923 +v 0.238920 0.187464 0.251077 +v 0.238920 0.187464 0.748923 +v 0.761079 0.187464 0.251077 +v 0.761079 0.187464 0.748923 +v 1.243492 0.387286 0.251077 +v 1.243492 0.387286 0.748923 +v 1.612714 0.756508 0.251077 +v 1.612714 0.756508 0.748923 +v 1.812536 1.238920 0.251077 +v 1.812536 1.238920 0.748923 +v 1.812536 1.761080 0.251077 +v 1.812536 1.761080 0.748923 +v 1.612714 2.243492 0.251077 +v 1.612714 2.243492 0.748923 +v 1.243491 2.612714 0.251077 +v 1.243491 2.612714 0.748923 +v 0.761079 2.812536 0.251077 +v 0.761079 2.812536 0.748923 +v -0.279065 2.665954 0.251077 +v 0.226429 2.875336 0.251077 +v 0.226429 2.875336 0.748923 +v -0.279065 2.665954 0.748923 +v -0.665954 2.279065 0.251077 +v -0.665954 2.279065 0.748923 +v -0.875336 1.773571 0.251077 +v -0.875336 1.773571 0.748923 +v -0.875336 1.226429 0.251077 +v -0.875336 1.226429 0.748923 +v -0.665954 0.720935 0.251077 +v -0.665954 0.720934 0.748923 +v -0.279065 0.334046 0.251077 +v -0.279065 0.334046 0.748923 +v 0.226429 0.124664 0.251077 +v 0.226429 0.124664 0.748923 +v 0.773571 0.124664 0.251077 +v 0.773571 0.124664 0.748923 +v 1.279065 0.334046 0.251077 +v 1.279065 0.334046 0.748923 +v 1.665954 0.720934 0.251077 +v 1.665954 0.720934 0.748923 +v 1.875336 1.226429 0.251077 +v 1.875336 1.226429 0.748923 +v 1.875336 1.773571 0.251077 +v 1.875336 1.773571 0.748923 +v 1.665954 2.279066 0.251077 +v 1.665954 2.279066 0.748923 +v 1.279065 2.665954 0.251077 +v 1.279065 2.665954 0.748923 +v 0.773571 2.875336 0.251077 +v 0.773571 2.875336 0.748923 +v 0.687500 0.250000 0.312500 +v 0.312500 0.250000 0.687500 +v 0.687500 0.250000 0.687500 +v 0.687500 0.500000 0.312500 +v 0.687500 0.500000 0.687500 +v 0.687500 0.187500 0.312500 +v 0.312500 0.187500 0.312500 +v 0.687500 0.562500 0.312500 +v 0.312500 0.562500 0.312500 +v 0.312500 0.562500 0.687500 +v 0.312500 0.500000 0.687500 +v 0.312500 0.250000 0.312500 +v 0.687500 0.562500 0.687500 +v 0.687500 0.187500 0.687500 +v 0.312500 0.500000 0.312500 +v 0.312500 0.187500 0.687500 +v 0.625000 0.250000 0.375000 +v 0.625000 0.500000 0.625000 +v 0.375000 0.250000 0.625000 +v 0.625000 0.250000 0.625000 +v 0.375000 0.500000 0.625000 +v 0.375000 0.250000 0.375000 +v 0.375000 0.500000 0.375000 +v 0.625000 0.500000 0.375000 +v 1.151582 0.416903 0.312500 +v 0.805127 0.273397 0.687500 +v 1.151582 0.416904 0.687500 +v 1.055911 0.647874 0.312500 +v 1.055911 0.647874 0.687500 +v 1.175499 0.359161 0.312500 +v 0.829045 0.215655 0.312500 +v 1.031993 0.705616 0.312500 +v 0.685538 0.562110 0.312500 +v 0.685538 0.562110 0.687500 +v 0.709456 0.504367 0.687500 +v 0.805127 0.273397 0.312500 +v 1.031993 0.705616 0.687500 +v 1.175499 0.359161 0.687500 +v 0.709456 0.504367 0.312500 +v 0.829045 0.215655 0.687500 +v 1.093839 0.392986 0.375000 +v 0.998168 0.623956 0.625000 +v 0.862869 0.297315 0.625000 +v 1.093839 0.392986 0.625000 +v 0.767199 0.528285 0.625000 +v 0.862869 0.297315 0.375000 +v 0.767199 0.528285 0.375000 +v 0.998168 0.623956 0.375000 +v -0.151582 2.583096 0.312500 +v 0.194873 2.726602 0.687501 +v -0.151582 2.583096 0.687501 +v -0.055911 2.352126 0.312500 +v -0.055911 2.352126 0.687500 +v -0.175500 2.640838 0.312501 +v 0.170955 2.784345 0.312501 +v -0.031993 2.294384 0.312500 +v 0.314461 2.437890 0.312500 +v 0.314461 2.437890 0.687500 +v 0.290544 2.495632 0.687500 +v 0.194873 2.726602 0.312501 +v -0.031993 2.294384 0.687500 +v -0.175500 2.640838 0.687501 +v 0.290544 2.495632 0.312500 +v 0.170955 2.784345 0.687501 +v -0.093840 2.607014 0.375001 +v 0.001831 2.376044 0.625000 +v 0.137130 2.702685 0.625000 +v -0.093840 2.607014 0.625000 +v 0.232801 2.471715 0.625000 +v 0.137130 2.702685 0.375001 +v 0.232801 2.471715 0.375000 +v 0.001831 2.376044 0.375000 +v 1.583097 2.151581 0.312500 +v 1.726603 1.805126 0.687500 +v 1.583097 2.151581 0.687500 +v 1.352127 2.055910 0.312500 +v 1.352127 2.055910 0.687500 +v 1.640839 2.175498 0.312500 +v 1.784346 1.829043 0.312500 +v 1.294385 2.031992 0.312500 +v 1.437891 1.685537 0.312500 +v 1.437890 1.685537 0.687500 +v 1.495633 1.709455 0.687500 +v 1.726603 1.805126 0.312500 +v 1.294384 2.031992 0.687500 +v 1.640839 2.175498 0.687500 +v 1.495633 1.709455 0.312500 +v 1.784345 1.829043 0.687500 +v 1.607014 2.093838 0.375000 +v 1.376045 1.998168 0.625000 +v 1.702685 1.862868 0.625000 +v 1.607014 2.093838 0.625000 +v 1.471715 1.767197 0.625000 +v 1.702685 1.862868 0.375000 +v 1.471715 1.767198 0.375000 +v 1.376045 1.998168 0.375000 +v -0.583096 0.848418 0.312500 +v -0.726603 1.194873 0.687500 +v -0.583096 0.848418 0.687500 +v -0.352126 0.944089 0.312500 +v -0.352126 0.944089 0.687500 +v -0.640839 0.824500 0.312500 +v -0.784345 1.170955 0.312500 +v -0.294384 0.968007 0.312500 +v -0.437890 1.314461 0.312500 +v -0.437890 1.314461 0.687500 +v -0.495633 1.290544 0.687500 +v -0.726603 1.194873 0.312500 +v -0.294384 0.968007 0.687500 +v -0.640839 0.824500 0.687500 +v -0.495633 1.290544 0.312500 +v -0.784345 1.170955 0.687500 +v -0.607014 0.906160 0.375000 +v -0.376044 1.001831 0.625000 +v -0.702685 1.137130 0.625000 +v -0.607014 0.906161 0.625000 +v -0.471715 1.232801 0.625000 +v -0.702685 1.137130 0.375000 +v -0.471715 1.232801 0.375000 +v -0.376044 1.001832 0.375000 +v -0.726603 1.805126 0.312500 +v -0.583096 2.151581 0.687500 +v -0.726602 1.805126 0.687500 +v -0.495633 1.709456 0.312500 +v -0.495633 1.709456 0.687500 +v -0.784345 1.829044 0.312500 +v -0.640839 2.175499 0.312500 +v -0.437890 1.685538 0.312500 +v -0.294384 2.031993 0.312500 +v -0.294384 2.031993 0.687500 +v -0.352126 2.055911 0.687500 +v -0.583096 2.151581 0.312500 +v -0.437890 1.685538 0.687500 +v -0.784345 1.829044 0.687500 +v -0.352126 2.055911 0.312500 +v -0.640839 2.175499 0.687500 +v -0.702685 1.862869 0.375000 +v -0.471715 1.767198 0.625000 +v -0.607014 2.093839 0.625000 +v -0.702685 1.862869 0.625000 +v -0.376044 1.998168 0.625000 +v -0.607014 2.093839 0.375000 +v -0.376044 1.998168 0.375000 +v -0.471715 1.767198 0.375000 +v 1.726602 1.194872 0.312500 +v 1.583095 0.848417 0.687500 +v 1.726602 1.194872 0.687500 +v 1.495632 1.290543 0.312500 +v 1.495632 1.290543 0.687500 +v 1.784345 1.170954 0.312500 +v 1.640838 0.824499 0.312500 +v 1.437890 1.314461 0.312500 +v 1.294383 0.968006 0.312500 +v 1.294383 0.968006 0.687500 +v 1.352126 0.944088 0.687500 +v 1.583096 0.848417 0.312500 +v 1.437890 1.314461 0.687500 +v 1.784345 1.170954 0.687500 +v 1.352126 0.944088 0.312500 +v 1.640838 0.824499 0.687500 +v 1.702685 1.137129 0.375000 +v 1.471715 1.232800 0.625000 +v 1.607013 0.906160 0.625000 +v 1.702684 1.137129 0.625000 +v 1.376044 1.001831 0.625000 +v 1.607013 0.906159 0.375000 +v 1.376044 1.001831 0.375000 +v 1.471715 1.232800 0.375000 +v 0.805127 2.726603 0.312500 +v 1.151582 2.583096 0.687500 +v 0.805127 2.726603 0.687500 +v 0.709456 2.495633 0.312500 +v 0.709456 2.495632 0.687500 +v 0.829045 2.784345 0.312501 +v 1.175500 2.640839 0.312500 +v 0.685538 2.437890 0.312500 +v 1.031993 2.294384 0.312500 +v 1.031993 2.294384 0.687500 +v 1.055911 2.352126 0.687500 +v 1.151582 2.583096 0.312500 +v 0.685538 2.437890 0.687500 +v 0.829045 2.784345 0.687501 +v 1.055911 2.352126 0.312500 +v 1.175500 2.640839 0.687500 +v 0.862869 2.702685 0.375000 +v 0.767199 2.471715 0.625000 +v 1.093839 2.607014 0.625000 +v 0.862869 2.702685 0.625000 +v 0.998168 2.376044 0.625000 +v 1.093839 2.607014 0.375000 +v 0.998168 2.376044 0.375000 +v 0.767199 2.471715 0.375000 +v 0.194873 0.273397 0.312500 +v -0.151582 0.416904 0.687500 +v 0.194873 0.273397 0.687500 +v 0.290544 0.504367 0.312500 +v 0.290544 0.504367 0.687500 +v 0.170956 0.215655 0.312500 +v -0.175499 0.359161 0.312500 +v 0.314462 0.562110 0.312500 +v -0.031993 0.705616 0.312500 +v -0.031993 0.705616 0.687500 +v -0.055911 0.647873 0.687500 +v -0.151582 0.416904 0.312500 +v 0.314462 0.562110 0.687500 +v 0.170956 0.215655 0.687500 +v -0.055911 0.647874 0.312500 +v -0.175499 0.359161 0.687500 +v 0.137131 0.297315 0.375000 +v 0.232802 0.528285 0.625000 +v -0.093839 0.392986 0.625000 +v 0.137131 0.297315 0.625000 +v 0.001832 0.623956 0.625000 +v -0.093839 0.392986 0.375000 +v 0.001832 0.623956 0.375000 +v 0.232802 0.528285 0.375000 +v -0.251301 0.483534 0.312500 +v -0.516466 0.748699 0.687500 +v -0.251301 0.483534 0.687500 +v -0.074524 0.660311 0.312500 +v -0.074524 0.660311 0.687500 +v -0.295495 0.439340 0.312500 +v -0.560660 0.704505 0.312500 +v -0.030330 0.704505 0.312500 +v -0.295495 0.969670 0.312500 +v -0.295495 0.969670 0.687500 +v -0.339689 0.925476 0.687500 +v -0.516466 0.748699 0.312500 +v -0.030330 0.704505 0.687500 +v -0.295495 0.439340 0.687500 +v -0.339689 0.925476 0.312500 +v -0.560660 0.704505 0.687500 +v -0.295495 0.527728 0.375000 +v -0.118718 0.704505 0.625000 +v -0.472272 0.704505 0.625000 +v -0.295495 0.527728 0.625000 +v -0.295495 0.881281 0.625000 +v -0.472272 0.704505 0.375000 +v -0.295495 0.881281 0.375000 +v -0.118718 0.704505 0.375000 +v 1.251301 2.516466 0.312500 +v 1.516466 2.251301 0.687500 +v 1.251301 2.516466 0.687500 +v 1.074524 2.339689 0.312500 +v 1.074524 2.339689 0.687500 +v 1.295495 2.560660 0.312500 +v 1.560660 2.295495 0.312500 +v 1.030330 2.295495 0.312500 +v 1.295495 2.030330 0.312500 +v 1.295495 2.030330 0.687500 +v 1.339689 2.074524 0.687500 +v 1.516466 2.251301 0.312500 +v 1.030330 2.295495 0.687500 +v 1.295495 2.560660 0.687500 +v 1.339689 2.074524 0.312500 +v 1.560660 2.295495 0.687500 +v 1.295495 2.472272 0.375000 +v 1.118718 2.295495 0.625000 +v 1.472272 2.295495 0.625000 +v 1.295495 2.472272 0.625000 +v 1.295495 2.118718 0.625000 +v 1.472272 2.295495 0.375000 +v 1.295495 2.118718 0.375000 +v 1.118719 2.295495 0.375000 +v 1.516465 0.748698 0.312500 +v 1.251300 0.483533 0.687500 +v 1.516465 0.748698 0.687500 +v 1.339689 0.925475 0.312500 +v 1.339689 0.925475 0.687500 +v 1.560660 0.704504 0.312500 +v 1.295494 0.439339 0.312500 +v 1.295495 0.969669 0.312500 +v 1.030329 0.704504 0.312500 +v 1.030329 0.704504 0.687500 +v 1.074524 0.660310 0.687500 +v 1.251300 0.483533 0.312500 +v 1.295495 0.969669 0.687500 +v 1.560660 0.704504 0.687500 +v 1.074524 0.660310 0.312500 +v 1.295494 0.439339 0.687500 +v 1.472271 0.704504 0.375000 +v 1.295495 0.881281 0.625000 +v 1.295494 0.527727 0.625000 +v 1.472271 0.704504 0.625000 +v 1.118718 0.704504 0.625000 +v 1.295494 0.527727 0.375000 +v 1.118718 0.704504 0.375000 +v 1.295495 0.881281 0.375000 +v -0.516466 2.251301 0.312500 +v -0.251301 2.516466 0.687500 +v -0.516466 2.251300 0.687500 +v -0.339689 2.074524 0.312500 +v -0.339689 2.074524 0.687500 +v -0.560660 2.295495 0.312500 +v -0.295495 2.560660 0.312500 +v -0.295495 2.030330 0.312500 +v -0.030330 2.295495 0.312500 +v -0.030330 2.295495 0.687500 +v -0.074524 2.339689 0.687500 +v -0.251301 2.516466 0.312500 +v -0.295495 2.030330 0.687500 +v -0.560660 2.295495 0.687500 +v -0.074524 2.339689 0.312500 +v -0.295495 2.560660 0.687500 +v -0.472272 2.295495 0.375000 +v -0.295495 2.118718 0.625000 +v -0.295495 2.472271 0.625000 +v -0.472272 2.295495 0.625000 +v -0.118719 2.295495 0.625000 +v -0.295495 2.472271 0.375000 +v -0.118719 2.295495 0.375000 +v -0.295495 2.118718 0.375000 +v -0.750000 1.312500 0.312500 +v -0.750000 1.687500 0.687500 +v -0.750000 1.312500 0.687500 +v -0.500000 1.312500 0.312500 +v -0.500000 1.312500 0.687500 +v -0.812500 1.312500 0.312500 +v -0.812500 1.687500 0.312500 +v -0.437500 1.312500 0.312500 +v -0.437500 1.687500 0.312500 +v -0.437500 1.687500 0.687500 +v -0.500000 1.687500 0.687500 +v -0.750000 1.687500 0.312500 +v -0.437500 1.312500 0.687500 +v -0.812500 1.312500 0.687500 +v -0.500000 1.687500 0.312500 +v -0.812500 1.687500 0.687500 +v -0.750000 1.375000 0.375000 +v -0.500000 1.375000 0.625000 +v -0.750000 1.625000 0.625000 +v -0.750000 1.375000 0.625000 +v -0.500000 1.625000 0.625000 +v -0.750000 1.625000 0.375000 +v -0.500000 1.625000 0.375000 +v -0.500000 1.375000 0.375000 +v 1.750000 1.687499 0.312500 +v 1.750000 1.312499 0.687500 +v 1.750000 1.687499 0.687500 +v 1.500000 1.687499 0.312500 +v 1.500000 1.687499 0.687500 +v 1.812500 1.687499 0.312500 +v 1.812500 1.312499 0.312500 +v 1.437500 1.687499 0.312500 +v 1.437500 1.312499 0.312500 +v 1.437500 1.312500 0.687500 +v 1.500000 1.312499 0.687500 +v 1.750000 1.312499 0.312500 +v 1.437500 1.687499 0.687500 +v 1.812500 1.687499 0.687500 +v 1.500000 1.312499 0.312500 +v 1.812500 1.312499 0.687500 +v 1.750000 1.624999 0.375000 +v 1.500000 1.624999 0.625000 +v 1.750000 1.374999 0.625000 +v 1.750000 1.624999 0.625000 +v 1.500000 1.374999 0.625000 +v 1.750000 1.374999 0.375000 +v 1.500000 1.375000 0.375000 +v 1.500000 1.624999 0.375000 +v 0.312500 2.750000 0.312501 +v 0.687500 2.750000 0.687501 +v 0.312500 2.750000 0.687501 +v 0.312500 2.500000 0.312500 +v 0.312500 2.500000 0.687500 +v 0.312500 2.812500 0.312501 +v 0.687500 2.812500 0.312501 +v 0.312500 2.437500 0.312500 +v 0.687500 2.437500 0.312500 +v 0.687500 2.437500 0.687500 +v 0.687500 2.500000 0.687500 +v 0.687500 2.750000 0.312501 +v 0.312500 2.437500 0.687500 +v 0.312500 2.812500 0.687501 +v 0.687500 2.500000 0.312500 +v 0.687500 2.812500 0.687501 +v 0.375000 2.750000 0.375001 +v 0.375000 2.500000 0.625000 +v 0.625000 2.750000 0.625000 +v 0.375000 2.750000 0.625000 +v 0.625000 2.500000 0.625000 +v 0.625000 2.750000 0.375001 +v 0.625000 2.500000 0.375000 +v 0.375000 2.500000 0.375000 +v 0.750000 1.625000 1.000000 +v 0.750000 1.375000 1.000000 +v 0.750000 1.625000 1.625000 +v 0.750000 1.375000 1.625000 +v 1.000000 1.625000 1.000000 +v 1.000000 1.375000 1.000000 +v 1.000000 1.625000 1.625000 +v 1.000000 1.375000 1.625000 +v 0.250000 1.625000 1.000000 +v 0.250000 1.375000 1.000000 +v 0.250000 1.625000 1.625000 +v 0.250000 1.375000 1.625000 +v 0.000000 1.625000 1.000000 +v 0.000000 1.375000 1.000000 +v 0.000000 1.625000 1.625000 +v 0.000000 1.375000 1.625000 +v 0.750000 1.437500 1.156250 +v 0.750000 1.562500 1.156250 +v 0.750000 1.437500 1.031250 +v 0.750000 1.562500 1.031250 +v 0.250000 1.437500 1.156250 +v 0.250000 1.562500 1.156250 +v 0.250000 1.437500 1.031250 +v 0.250000 1.562500 1.031250 +vt 0.375000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.312500 +vt 0.375000 0.312500 +vt 0.375000 0.750000 +vt 0.375000 0.625000 +vt 0.000000 0.625000 +vt 0.000000 0.750000 +vt 0.375000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.312500 +vt 0.375000 0.312500 +vt 0.625000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.312500 +vt 0.625000 0.312500 +vt 0.625000 0.250000 +vt 0.625000 0.312500 +vt 0.000000 0.500000 +vt 0.000000 0.625000 +vt 0.375000 0.625000 +vt 0.375000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.312500 +vt 0.750000 0.312500 +vt 0.750000 0.250000 +vt 0.375000 0.875000 +vt 0.000000 0.875000 +vt 0.000000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.312500 +vt 0.375000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.312500 +vt 0.500000 0.250000 +vt 0.500000 0.312500 +vt 0.375000 0.312500 +vt 0.375000 0.250000 +vt 0.625000 0.312500 +vt 0.625000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.312500 +vt 0.000000 0.375000 +vt 0.375000 0.375000 +vt 0.000000 0.250000 +vt 0.375000 0.875000 +vt 0.375000 0.750000 +vt 0.312500 0.750000 +vt 0.312500 0.875000 +vt 0.500000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.312500 +vt 0.500000 0.312500 +vt 0.625000 0.250000 +vt 0.500000 0.250000 +vt 0.500000 0.312500 +vt 0.625000 0.312500 +vt 0.312500 0.375000 +vt 0.312500 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.375000 +vt 0.062500 0.875000 +vt 0.062500 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.875000 +vt 0.625000 0.250000 +vt 0.500000 0.250000 +vt 0.500000 0.312500 +vt 0.625000 0.312500 +vt 0.625000 0.250000 +vt 0.500000 0.250000 +vt 0.500000 0.312500 +vt 0.625000 0.312500 +vt 0.000000 0.375000 +vt 0.000000 0.500000 +vt 0.062500 0.500000 +vt 0.062500 0.375000 +vt 0.750000 0.375000 +vt 0.625000 0.375000 +vt 0.625000 0.437500 +vt 0.750000 0.437500 +vt 0.750000 0.375000 +vt 0.625000 0.375000 +vt 0.625000 0.437500 +vt 0.750000 0.437500 +vt 0.750000 0.437500 +vt 0.625000 0.437500 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.437500 +vt 0.625000 0.437500 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.375000 0.562500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.562500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.875000 0.812500 +vt 0.750000 0.812500 +vt 0.750000 1.000000 +vt 0.875000 1.000000 +vt 0.625000 0.812500 +vt 0.625000 1.000000 +vt 0.375000 0.562500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.562500 +vt 0.531250 0.593750 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.593750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.593750 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.812500 0.515625 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.812500 0.515625 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.812500 0.609375 +vt 0.796875 0.609375 +vt 0.796875 0.515625 +vt 0.812500 0.515625 +vt 0.531250 0.593750 +vt 0.593750 0.593750 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.593750 0.593750 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.500000 0.593750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.593750 +vt 0.531250 0.593750 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.812500 0.515625 +vt 0.812500 0.609375 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.843750 0.609375 +vt 0.843750 0.515625 +vt 0.812500 0.609375 +vt 0.812500 0.515625 +vt 0.796875 0.515625 +vt 0.796875 0.609375 +vt 0.359922 0.489680 +vt 0.327578 0.489680 +vt 0.327578 0.523034 +vt 0.359922 0.523034 +vt 0.338696 0.490690 +vt 0.322524 0.490690 +vt 0.330610 0.523034 +vt 0.338696 0.523034 +vt 0.359922 0.489680 +vt 0.327578 0.489680 +vt 0.327578 0.523034 +vt 0.359922 0.523034 +vt 0.322524 0.490690 +vt 0.338696 0.490690 +vt 0.338696 0.523034 +vt 0.330610 0.523034 +vt 0.338696 0.470475 +vt 0.364976 0.403766 +vt 0.322524 0.403766 +vt 0.322524 0.470475 +vt 0.370030 0.523034 +vt 0.317470 0.523034 +vt 0.317470 0.509895 +vt 0.370030 0.509895 +vt 0.322524 0.470475 +vt 0.338696 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.375083 0.404776 +vt 0.312417 0.404776 +vt 0.375083 0.403766 +vt 0.312417 0.403766 +vt 0.322524 0.403766 +vt 0.364976 0.403766 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.322524 0.375464 +vt 0.364976 0.375464 +vt 0.364976 0.375464 +vt 0.322524 0.375464 +vt 0.359922 0.489680 +vt 0.359922 0.523034 +vt 0.327578 0.523034 +vt 0.327578 0.489680 +vt 0.338696 0.490690 +vt 0.338696 0.523034 +vt 0.330610 0.523034 +vt 0.322524 0.490690 +vt 0.359922 0.489680 +vt 0.359922 0.523034 +vt 0.327578 0.523034 +vt 0.327578 0.489680 +vt 0.322524 0.490690 +vt 0.330610 0.523034 +vt 0.338696 0.523034 +vt 0.338696 0.490690 +vt 0.338696 0.470475 +vt 0.322524 0.470475 +vt 0.322524 0.403766 +vt 0.364976 0.403766 +vt 0.370030 0.523034 +vt 0.370030 0.509895 +vt 0.317470 0.509895 +vt 0.317470 0.523034 +vt 0.322524 0.470475 +vt 0.338696 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.375083 0.470475 +vt 0.312417 0.470475 +vt 0.312417 0.404776 +vt 0.375083 0.404776 +vt 0.312417 0.403766 +vt 0.375083 0.403766 +vt 0.364976 0.403766 +vt 0.322524 0.403766 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.312417 0.375464 +vt 0.375083 0.375464 +vt 0.364976 0.375464 +vt 0.322524 0.375464 +vt 0.322524 0.375464 +vt 0.364976 0.375464 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.625000 0.812500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.375000 0.687500 +vt 0.375000 0.812500 +vt 0.500000 0.812500 +vt 0.375000 0.687500 +vt 0.375000 0.695312 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.500000 0.687500 +vt 0.375000 0.695312 +vt 0.843750 0.742188 +vt 0.843750 0.664062 +vt 0.812500 0.664062 +vt 0.812500 0.742188 +vt 0.843750 0.742188 +vt 0.843750 0.664062 +vt 0.812500 0.664062 +vt 0.812500 0.742188 +vt 0.812500 0.742188 +vt 0.812500 0.664062 +vt 0.843750 0.664062 +vt 0.843750 0.742188 +vt 0.875000 0.343750 +vt 0.875000 0.312500 +vt 0.843750 0.312500 +vt 0.843750 0.343750 +vt 0.875000 0.343750 +vt 0.875000 0.312500 +vt 0.843750 0.312500 +vt 0.843750 0.343750 +vt 0.843750 0.742188 +vt 0.812500 0.742188 +vt 0.812500 0.664062 +vt 0.843750 0.664062 +vt 0.843750 0.742188 +vt 0.812500 0.742188 +vt 0.812500 0.664062 +vt 0.843750 0.664062 +vt 0.812500 0.742188 +vt 0.843750 0.742188 +vt 0.843750 0.664062 +vt 0.812500 0.664062 +vt 0.875000 0.343750 +vt 0.843750 0.343750 +vt 0.843750 0.312500 +vt 0.875000 0.312500 +vt 0.875000 0.343750 +vt 0.843750 0.343750 +vt 0.843750 0.312500 +vt 0.875000 0.312500 +vt 0.875000 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.734375 +vt 0.875000 0.734375 +vt 0.843750 0.656250 +vt 0.843750 0.812500 +vt 0.875000 0.812500 +vt 0.875000 0.656250 +vt 0.875000 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.734375 +vt 0.875000 0.734375 +vt 0.843750 0.656250 +vt 0.843750 0.812500 +vt 0.875000 0.812500 +vt 0.875000 0.656250 +vt 0.843750 0.812500 +vt 0.875000 0.812500 +vt 0.875000 0.656250 +vt 0.843750 0.656250 +vt 0.875000 0.656250 +vt 0.843750 0.656250 +vt 0.843750 0.812500 +vt 0.875000 0.812500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.9864 0.1644 0.0000 +vn -0.9864 -0.1644 0.0000 +vn -0.9864 0.1644 0.0000 +vn 0.9864 -0.1644 -0.0000 +vn -0.9701 0.2425 0.0000 +vn 0.0000 0.6441 0.7649 +vn 0.0000 0.6441 -0.7649 +vn 0.9242 0.3818 0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.9242 0.3818 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.3827 -0.9239 0.0000 +usemtl None +s off +f 4/1/1 2/2/1 1/3/1 3/4/1 +f 1/5/2 6/6/2 5/7/2 3/8/2 +f 7/9/3 8/10/3 5/11/3 6/12/3 +f 2/13/4 7/14/4 6/15/4 1/16/4 +f 8/10/5 4/17/5 3/18/5 5/11/5 +f 4/19/6 8/20/6 7/21/6 2/22/6 +f 12/23/3 11/24/3 9/25/3 10/26/3 +f 9/27/2 11/28/2 13/29/2 14/30/2 +f 15/31/1 14/32/1 13/33/1 16/34/1 +f 10/35/4 9/36/4 14/37/4 15/38/4 +f 16/39/5 13/40/5 11/41/5 12/42/5 +f 12/43/6 10/44/6 15/38/6 16/45/6 +f 17/46/2 22/47/2 21/48/2 19/49/2 +f 18/50/4 23/51/4 22/52/4 17/53/4 +f 24/54/5 20/55/5 19/56/5 21/57/5 +f 20/58/6 24/59/6 23/60/6 18/61/6 +f 25/62/2 30/63/2 29/64/2 27/65/2 +f 26/66/4 31/67/4 30/68/4 25/69/4 +f 32/70/5 28/71/5 27/72/5 29/73/5 +f 28/74/6 32/75/6 31/76/6 26/77/6 +f 33/78/5 35/79/5 36/80/5 34/81/5 +f 35/82/1 39/83/1 40/84/1 36/85/1 +f 39/86/4 37/87/4 38/88/4 40/89/4 +f 37/90/3 33/91/3 34/92/3 38/93/3 +f 40/94/2 38/95/2 34/96/2 36/97/2 +f 41/98/5 43/99/5 44/100/5 42/101/5 +f 43/102/1 47/103/1 48/104/1 44/105/1 +f 47/103/4 45/106/4 46/107/4 48/104/4 +f 45/106/3 41/98/3 42/101/3 46/107/3 +f 48/108/2 46/109/2 42/110/2 44/111/2 +f 49/112/3 53/113/3 56/114/3 51/115/3 +f 55/116/2 56/117/2 53/118/2 54/119/2 +f 52/120/1 55/121/1 54/122/1 50/123/1 +f 51/124/4 56/125/4 55/126/4 52/127/4 +f 50/128/5 54/129/5 53/113/5 49/112/5 +f 49/130/6 51/131/6 52/132/6 50/133/6 +f 57/134/7 59/135/7 60/136/7 58/137/7 +f 59/138/1 63/139/1 64/140/1 60/141/1 +f 63/139/8 61/142/8 62/143/8 64/140/8 +f 61/144/3 57/145/3 58/146/3 62/147/3 +f 67/148/3 71/149/3 72/150/3 68/151/3 +f 65/152/9 67/153/9 68/154/9 66/155/9 +f 71/149/10 69/156/10 70/157/10 72/150/10 +f 69/158/1 65/159/1 66/160/1 70/161/1 +f 73/162/1 75/163/1 80/164/1 77/165/1 +f 79/166/2 78/167/2 77/168/2 80/169/2 +f 76/170/3 74/171/3 78/172/3 79/173/3 +f 75/174/4 76/175/4 79/176/4 80/177/4 +f 74/178/5 73/162/5 77/165/5 78/179/5 +f 73/180/6 74/181/6 76/182/6 75/183/6 +f 81/184/7 82/185/7 84/186/7 83/187/7 +f 83/188/3 84/189/3 88/190/3 87/191/3 +f 87/191/8 88/190/8 86/192/8 85/193/8 +f 85/194/1 86/195/1 82/196/1 81/197/1 +f 91/198/1 92/199/1 96/200/1 95/201/1 +f 89/202/9 90/203/9 92/204/9 91/205/9 +f 95/201/10 96/200/10 94/206/10 93/207/10 +f 93/208/3 94/209/3 90/210/3 89/211/3 +f 104/212/5 105/213/5 99/214/5 97/215/5 +f 105/216/1 106/217/1 103/218/1 99/219/1 +f 106/220/11 107/221/11 101/222/11 103/223/11 +f 107/224/3 104/225/3 97/226/3 101/227/3 +f 98/228/1 111/229/1 112/230/1 102/231/1 +f 103/232/2 101/233/2 97/234/2 99/235/2 +f 100/236/12 108/237/12 104/225/12 107/224/12 +f 102/238/4 100/239/4 107/221/4 106/220/4 +f 98/228/13 102/231/13 106/217/13 105/216/13 +f 108/240/5 98/241/5 105/213/5 104/212/5 +f 108/240/14 109/242/14 111/243/14 98/241/14 +f 102/238/4 112/244/4 110/245/4 100/239/4 +f 100/236/3 110/246/3 109/247/3 108/237/3 +f 115/248/4 110/245/4 112/244/4 114/249/4 +f 113/250/5 111/243/5 109/242/5 116/251/5 +f 109/247/3 110/246/3 115/252/3 116/253/3 +f 112/230/1 111/229/1 113/254/1 114/255/1 +f 124/256/4 117/257/4 119/258/4 125/259/4 +f 125/260/1 119/261/1 123/262/1 126/263/1 +f 126/264/15 123/265/15 121/266/15 127/267/15 +f 127/268/3 121/269/3 117/270/3 124/271/3 +f 118/272/1 122/273/1 132/274/1 131/275/1 +f 123/276/2 119/277/2 117/278/2 121/279/2 +f 120/280/12 127/268/12 124/271/12 128/281/12 +f 122/282/5 126/264/5 127/267/5 120/283/5 +f 118/272/13 125/260/13 126/263/13 122/273/13 +f 128/284/4 124/256/4 125/259/4 118/285/4 +f 128/284/16 118/285/16 131/286/16 129/287/16 +f 122/282/5 120/283/5 130/288/5 132/289/5 +f 120/280/3 128/281/3 129/290/3 130/291/3 +f 135/292/5 134/293/5 132/289/5 130/288/5 +f 133/294/4 136/295/4 129/287/4 131/286/4 +f 129/290/3 136/296/3 135/297/3 130/291/3 +f 132/274/1 134/298/1 133/299/1 131/275/1 +f 137/300/17 138/301/17 140/302/17 139/303/17 +f 139/304/18 140/305/18 142/306/18 141/307/18 +f 141/308/19 142/309/19 144/310/19 143/311/19 +f 143/312/5 144/313/5 146/314/5 145/315/5 +f 145/316/20 146/317/20 148/318/20 147/319/20 +f 147/320/21 148/321/21 150/322/21 149/323/21 +f 149/324/22 150/325/22 152/326/22 151/327/22 +f 151/328/2 152/329/2 154/330/2 153/331/2 +f 153/332/23 154/333/23 156/334/23 155/335/23 +f 155/336/24 156/337/24 158/338/24 157/339/24 +f 157/340/25 158/341/25 160/342/25 159/343/25 +f 159/344/4 160/345/4 162/346/4 161/347/4 +f 161/348/26 162/349/26 164/350/26 163/351/26 +f 163/352/27 164/353/27 166/354/27 165/355/27 +f 165/356/28 166/357/28 168/358/28 167/359/28 +f 167/360/6 168/361/6 138/362/6 137/363/6 +f 170/364/23 169/365/23 172/366/23 171/367/23 +f 169/368/24 173/369/24 174/370/24 172/371/24 +f 173/372/25 175/373/25 176/374/25 174/375/25 +f 175/376/4 177/377/4 178/378/4 176/379/4 +f 177/380/26 179/381/26 180/382/26 178/383/26 +f 179/384/27 181/385/27 182/386/27 180/387/27 +f 181/388/28 183/389/28 184/390/28 182/391/28 +f 183/392/6 185/393/6 186/394/6 184/395/6 +f 185/396/17 187/397/17 188/398/17 186/399/17 +f 187/400/18 189/401/18 190/402/18 188/403/18 +f 189/404/19 191/405/19 192/406/19 190/407/19 +f 191/408/5 193/409/5 194/410/5 192/411/5 +f 193/412/20 195/413/20 196/414/20 194/415/20 +f 195/416/21 197/417/21 198/418/21 196/419/21 +f 197/420/22 199/421/22 200/422/22 198/423/22 +f 199/424/2 170/425/2 171/426/2 200/427/2 +f 150/428/3 148/321/3 180/429/3 182/430/3 +f 168/431/3 166/357/3 198/432/3 200/433/3 +f 139/304/1 141/434/1 173/435/1 169/436/1 +f 157/340/1 159/437/1 191/438/1 189/439/1 +f 142/440/3 140/305/3 172/441/3 174/442/3 +f 160/443/3 158/341/3 190/444/3 192/445/3 +f 149/324/1 151/446/1 183/447/1 181/448/1 +f 167/360/1 137/449/1 170/450/1 199/451/1 +f 152/452/3 150/325/3 182/453/3 184/454/3 +f 138/455/3 168/361/3 200/456/3 171/457/3 +f 141/308/1 143/458/1 175/459/1 173/460/1 +f 159/344/1 161/461/1 193/462/1 191/463/1 +f 144/464/3 142/309/3 174/465/3 176/466/3 +f 162/467/3 160/345/3 192/468/3 194/469/3 +f 151/328/1 153/470/1 185/471/1 183/472/1 +f 154/473/3 152/329/3 184/474/3 186/475/3 +f 143/312/1 145/476/1 177/477/1 175/478/1 +f 161/348/1 163/479/1 195/480/1 193/481/1 +f 146/482/3 144/313/3 176/483/3 178/484/3 +f 164/485/3 162/349/3 194/486/3 196/487/3 +f 153/332/1 155/488/1 187/489/1 185/490/1 +f 156/491/3 154/333/3 186/492/3 188/493/3 +f 145/316/1 147/494/1 179/495/1 177/496/1 +f 163/352/1 165/497/1 197/498/1 195/499/1 +f 137/300/1 139/500/1 169/501/1 170/502/1 +f 148/503/3 146/317/3 178/504/3 180/505/3 +f 166/506/3 164/353/3 196/507/3 198/508/3 +f 155/336/1 157/509/1 189/510/1 187/511/1 +f 140/512/3 138/301/3 171/513/3 172/514/3 +f 158/515/3 156/337/3 188/516/3 190/517/3 +f 147/320/1 149/518/1 181/519/1 179/520/1 +f 165/356/1 167/521/1 199/522/1 197/523/1 +f 204/524/6 205/525/6 211/526/6 215/527/6 +f 206/528/6 214/529/6 216/530/6 207/531/6 +f 203/532/5 214/533/5 206/534/5 201/535/5 +f 215/536/1 209/537/1 208/538/1 204/524/1 +f 217/539/5 224/540/5 218/541/5 220/542/5 +f 213/543/2 208/544/2 209/545/2 210/546/2 +f 204/547/5 208/548/5 213/549/5 205/550/5 +f 224/551/1 217/552/1 222/553/1 223/554/1 +f 212/555/4 207/556/4 216/557/4 202/558/4 +f 219/559/4 221/560/4 223/561/4 222/562/4 +f 205/525/3 213/563/3 210/564/3 211/565/3 +f 201/566/1 206/528/1 207/567/1 212/568/1 +f 220/569/3 218/570/3 221/571/3 219/572/3 +f 203/573/2 201/574/2 212/575/2 202/576/2 +f 211/577/4 210/578/4 209/579/4 215/580/4 +f 202/581/3 216/582/3 214/529/3 203/583/3 +f 228/584/17 229/585/17 235/586/17 239/587/17 +f 230/588/17 238/589/17 240/590/17 231/591/17 +f 227/592/20 238/593/20 230/594/20 225/595/20 +f 239/596/1 233/597/1 232/598/1 228/584/1 +f 241/599/20 248/600/20 242/601/20 244/602/20 +f 237/603/23 232/604/23 233/605/23 234/606/23 +f 228/607/20 232/608/20 237/609/20 229/610/20 +f 248/611/1 241/612/1 246/613/1 247/614/1 +f 236/615/26 231/616/26 240/617/26 226/618/26 +f 243/619/26 245/620/26 247/621/26 246/622/26 +f 229/585/3 237/623/3 234/624/3 235/625/3 +f 225/626/1 230/588/1 231/627/1 236/628/1 +f 244/629/3 242/630/3 245/631/3 243/632/3 +f 227/633/23 225/634/23 236/635/23 226/636/23 +f 235/637/26 234/638/26 233/639/26 239/640/26 +f 226/641/3 240/642/3 238/589/3 227/643/3 +f 252/644/23 253/645/23 259/646/23 263/647/23 +f 254/648/23 262/649/23 264/650/23 255/651/23 +f 251/652/26 262/653/26 254/654/26 249/655/26 +f 263/656/1 257/657/1 256/658/1 252/644/1 +f 265/659/26 272/660/26 266/661/26 268/662/26 +f 261/663/17 256/664/17 257/665/17 258/666/17 +f 252/667/26 256/668/26 261/669/26 253/670/26 +f 272/671/1 265/672/1 270/673/1 271/674/1 +f 260/675/20 255/676/20 264/677/20 250/678/20 +f 267/679/20 269/680/20 271/681/20 270/682/20 +f 253/645/3 261/683/3 258/684/3 259/685/3 +f 249/686/1 254/648/1 255/687/1 260/688/1 +f 268/689/3 266/690/3 269/691/3 267/692/3 +f 251/693/17 249/694/17 260/695/17 250/696/17 +f 259/697/20 258/698/20 257/699/20 263/700/20 +f 250/701/3 264/702/3 262/649/3 251/703/3 +f 276/704/20 277/705/20 283/706/20 287/707/20 +f 278/708/20 286/709/20 288/710/20 279/711/20 +f 275/712/23 286/713/23 278/714/23 273/715/23 +f 287/716/1 281/717/1 280/718/1 276/704/1 +f 289/719/23 296/720/23 290/721/23 292/722/23 +f 285/723/26 280/724/26 281/725/26 282/726/26 +f 276/727/23 280/728/23 285/729/23 277/730/23 +f 296/731/1 289/732/1 294/733/1 295/734/1 +f 284/735/17 279/736/17 288/737/17 274/738/17 +f 291/739/17 293/740/17 295/741/17 294/742/17 +f 277/705/3 285/743/3 282/744/3 283/745/3 +f 273/746/1 278/708/1 279/747/1 284/748/1 +f 292/749/3 290/750/3 293/751/3 291/752/3 +f 275/753/26 273/754/26 284/755/26 274/756/26 +f 283/757/17 282/758/17 281/759/17 287/760/17 +f 274/761/3 288/762/3 286/709/3 275/763/3 +f 300/764/26 301/765/26 307/766/26 311/767/26 +f 302/768/26 310/769/26 312/770/26 303/771/26 +f 299/772/17 310/773/17 302/774/17 297/775/17 +f 311/776/1 305/777/1 304/778/1 300/764/1 +f 313/779/17 320/780/17 314/781/17 316/782/17 +f 309/783/20 304/784/20 305/785/20 306/786/20 +f 300/787/17 304/788/17 309/789/17 301/790/17 +f 320/791/1 313/792/1 318/793/1 319/794/1 +f 308/795/23 303/796/23 312/797/23 298/798/23 +f 315/799/23 317/800/23 319/801/23 318/802/23 +f 301/765/3 309/803/3 306/804/3 307/805/3 +f 297/806/1 302/768/1 303/807/1 308/808/1 +f 316/809/3 314/810/3 317/811/3 315/812/3 +f 299/813/20 297/814/20 308/815/20 298/816/20 +f 307/817/23 306/818/23 305/819/23 311/820/23 +f 298/821/3 312/822/3 310/769/3 299/823/3 +f 324/824/25 325/825/25 331/826/25 335/827/25 +f 326/828/25 334/829/25 336/830/25 327/831/25 +f 323/832/28 334/833/28 326/834/28 321/835/28 +f 335/836/1 329/837/1 328/838/1 324/824/1 +f 337/839/28 344/840/28 338/841/28 340/842/28 +f 333/843/19 328/844/19 329/845/19 330/846/19 +f 324/847/28 328/848/28 333/849/28 325/850/28 +f 344/851/1 337/852/1 342/853/1 343/854/1 +f 332/855/22 327/856/22 336/857/22 322/858/22 +f 339/859/22 341/860/22 343/861/22 342/862/22 +f 325/825/3 333/863/3 330/864/3 331/865/3 +f 321/866/1 326/828/1 327/867/1 332/868/1 +f 340/869/3 338/870/3 341/871/3 339/872/3 +f 323/873/19 321/874/19 332/875/19 322/876/19 +f 331/877/22 330/878/22 329/879/22 335/880/22 +f 322/881/3 336/882/3 334/829/3 323/883/3 +f 348/884/19 349/885/19 355/886/19 359/887/19 +f 350/888/19 358/889/19 360/890/19 351/891/19 +f 347/892/22 358/893/22 350/894/22 345/895/22 +f 359/896/1 353/897/1 352/898/1 348/884/1 +f 361/899/22 368/900/22 362/901/22 364/902/22 +f 357/903/25 352/904/25 353/905/25 354/906/25 +f 348/907/22 352/908/22 357/909/22 349/910/22 +f 368/911/1 361/912/1 366/913/1 367/914/1 +f 356/915/28 351/916/28 360/917/28 346/918/28 +f 363/919/28 365/920/28 367/921/28 366/922/28 +f 349/885/3 357/923/3 354/924/3 355/925/3 +f 345/926/1 350/888/1 351/927/1 356/928/1 +f 364/929/3 362/930/3 365/931/3 363/932/3 +f 347/933/25 345/934/25 356/935/25 346/936/25 +f 355/937/28 354/938/28 353/939/28 359/940/28 +f 346/941/3 360/942/3 358/889/3 347/943/3 +f 372/944/22 373/945/22 379/946/22 383/947/22 +f 374/948/22 382/949/22 384/950/22 375/951/22 +f 371/952/25 382/953/25 374/954/25 369/955/25 +f 383/956/1 377/957/1 376/958/1 372/944/1 +f 385/959/25 392/960/25 386/961/25 388/962/25 +f 381/963/28 376/964/28 377/965/28 378/966/28 +f 372/967/25 376/968/25 381/969/25 373/970/25 +f 392/971/1 385/972/1 390/973/1 391/974/1 +f 380/975/19 375/976/19 384/977/19 370/978/19 +f 387/979/19 389/980/19 391/981/19 390/982/19 +f 373/945/3 381/983/3 378/984/3 379/985/3 +f 369/986/1 374/948/1 375/987/1 380/988/1 +f 388/989/3 386/990/3 389/991/3 387/992/3 +f 371/993/28 369/994/28 380/995/28 370/996/28 +f 379/997/19 378/998/19 377/999/19 383/1000/19 +f 370/1001/3 384/1002/3 382/949/3 371/1003/3 +f 396/1004/28 397/1005/28 403/1006/28 407/1007/28 +f 398/1008/28 406/1009/28 408/1010/28 399/1011/28 +f 395/1012/19 406/1013/19 398/1014/19 393/1015/19 +f 407/1016/1 401/1017/1 400/1018/1 396/1004/1 +f 409/1019/19 416/1020/19 410/1021/19 412/1022/19 +f 405/1023/22 400/1024/22 401/1025/22 402/1026/22 +f 396/1027/19 400/1028/19 405/1029/19 397/1030/19 +f 416/1031/1 409/1032/1 414/1033/1 415/1034/1 +f 404/1035/25 399/1036/25 408/1037/25 394/1038/25 +f 411/1039/25 413/1040/25 415/1041/25 414/1042/25 +f 397/1005/3 405/1043/3 402/1044/3 403/1045/3 +f 393/1046/1 398/1008/1 399/1047/1 404/1048/1 +f 412/1049/3 410/1050/3 413/1051/3 411/1052/3 +f 395/1053/22 393/1054/22 404/1055/22 394/1056/22 +f 403/1057/25 402/1058/25 401/1059/25 407/1060/25 +f 394/1061/3 408/1062/3 406/1009/3 395/1063/3 +f 420/1064/27 421/1065/27 427/1066/27 431/1067/27 +f 422/1068/27 430/1069/27 432/1070/27 423/1071/27 +f 419/1072/18 430/1073/18 422/1074/18 417/1075/18 +f 431/1076/1 425/1077/1 424/1078/1 420/1064/1 +f 433/1079/18 440/1080/18 434/1081/18 436/1082/18 +f 429/1083/21 424/1084/21 425/1085/21 426/1086/21 +f 420/1087/18 424/1088/18 429/1089/18 421/1090/18 +f 440/1091/1 433/1092/1 438/1093/1 439/1094/1 +f 428/1095/24 423/1096/24 432/1097/24 418/1098/24 +f 435/1099/24 437/1100/24 439/1101/24 438/1102/24 +f 421/1065/3 429/1103/3 426/1104/3 427/1105/3 +f 417/1106/1 422/1068/1 423/1107/1 428/1108/1 +f 436/1109/3 434/1110/3 437/1111/3 435/1112/3 +f 419/1113/21 417/1114/21 428/1115/21 418/1116/21 +f 427/1117/24 426/1118/24 425/1119/24 431/1120/24 +f 418/1121/3 432/1122/3 430/1069/3 419/1123/3 +f 444/1124/21 445/1125/21 451/1126/21 455/1127/21 +f 446/1128/21 454/1129/21 456/1130/21 447/1131/21 +f 443/1132/24 454/1133/24 446/1134/24 441/1135/24 +f 455/1136/1 449/1137/1 448/1138/1 444/1124/1 +f 457/1139/24 464/1140/24 458/1141/24 460/1142/24 +f 453/1143/27 448/1144/27 449/1145/27 450/1146/27 +f 444/1147/24 448/1148/24 453/1149/24 445/1150/24 +f 464/1151/1 457/1152/1 462/1153/1 463/1154/1 +f 452/1155/18 447/1156/18 456/1157/18 442/1158/18 +f 459/1159/18 461/1160/18 463/1161/18 462/1162/18 +f 445/1125/3 453/1163/3 450/1164/3 451/1165/3 +f 441/1166/1 446/1128/1 447/1167/1 452/1168/1 +f 460/1169/3 458/1170/3 461/1171/3 459/1172/3 +f 443/1173/27 441/1174/27 452/1175/27 442/1176/27 +f 451/1177/18 450/1178/18 449/1179/18 455/1180/18 +f 442/1181/3 456/1182/3 454/1129/3 443/1183/3 +f 468/1184/18 469/1185/18 475/1186/18 479/1187/18 +f 470/1188/18 478/1189/18 480/1190/18 471/1191/18 +f 467/1192/21 478/1193/21 470/1194/21 465/1195/21 +f 479/1196/1 473/1197/1 472/1198/1 468/1184/1 +f 481/1199/21 488/1200/21 482/1201/21 484/1202/21 +f 477/1203/24 472/1204/24 473/1205/24 474/1206/24 +f 468/1207/21 472/1208/21 477/1209/21 469/1210/21 +f 488/1211/1 481/1212/1 486/1213/1 487/1214/1 +f 476/1215/27 471/1216/27 480/1217/27 466/1218/27 +f 483/1219/27 485/1220/27 487/1221/27 486/1222/27 +f 469/1185/3 477/1223/3 474/1224/3 475/1225/3 +f 465/1226/1 470/1188/1 471/1227/1 476/1228/1 +f 484/1229/3 482/1230/3 485/1231/3 483/1232/3 +f 467/1233/24 465/1234/24 476/1235/24 466/1236/24 +f 475/1237/27 474/1238/27 473/1239/27 479/1240/27 +f 466/1241/3 480/1242/3 478/1189/3 467/1243/3 +f 492/1244/24 493/1245/24 499/1246/24 503/1247/24 +f 494/1248/24 502/1249/24 504/1250/24 495/1251/24 +f 491/1252/27 502/1253/27 494/1254/27 489/1255/27 +f 503/1256/1 497/1257/1 496/1258/1 492/1244/1 +f 505/1259/27 512/1260/27 506/1261/27 508/1262/27 +f 501/1263/18 496/1264/18 497/1265/18 498/1266/18 +f 492/1267/27 496/1268/27 501/1269/27 493/1270/27 +f 512/1271/1 505/1272/1 510/1273/1 511/1274/1 +f 500/1275/21 495/1276/21 504/1277/21 490/1278/21 +f 507/1279/21 509/1280/21 511/1281/21 510/1282/21 +f 493/1245/3 501/1283/3 498/1284/3 499/1285/3 +f 489/1286/1 494/1248/1 495/1287/1 500/1288/1 +f 508/1289/3 506/1290/3 509/1291/3 507/1292/3 +f 491/1293/18 489/1294/18 500/1295/18 490/1296/18 +f 499/1297/21 498/1298/21 497/1299/21 503/1300/21 +f 490/1301/3 504/1302/3 502/1249/3 491/1303/3 +f 516/1304/4 517/1305/4 523/1306/4 527/1307/4 +f 518/1308/4 526/1309/4 528/1310/4 519/1311/4 +f 515/1312/6 526/1313/6 518/1314/6 513/1315/6 +f 527/1316/1 521/1317/1 520/1318/1 516/1304/1 +f 529/1319/6 536/1320/6 530/1321/6 532/1322/6 +f 525/1323/5 520/1324/5 521/1325/5 522/1326/5 +f 516/1327/6 520/1328/6 525/1329/6 517/1330/6 +f 536/1331/1 529/1332/1 534/1333/1 535/1334/1 +f 524/1335/2 519/1336/2 528/1337/2 514/1338/2 +f 531/1339/2 533/1340/2 535/1341/2 534/1342/2 +f 517/1305/3 525/1343/3 522/1344/3 523/1345/3 +f 513/1346/1 518/1308/1 519/1347/1 524/1348/1 +f 532/1349/3 530/1350/3 533/1351/3 531/1352/3 +f 515/1353/5 513/1354/5 524/1355/5 514/1356/5 +f 523/1357/2 522/1358/2 521/1359/2 527/1360/2 +f 514/1361/3 528/1362/3 526/1309/3 515/1363/3 +f 540/1364/5 541/1365/5 547/1366/5 551/1367/5 +f 542/1368/5 550/1369/5 552/1370/5 543/1371/5 +f 539/1372/2 550/1373/2 542/1374/2 537/1375/2 +f 551/1376/1 545/1377/1 544/1378/1 540/1364/1 +f 553/1379/2 560/1380/2 554/1381/2 556/1382/2 +f 549/1383/4 544/1384/4 545/1385/4 546/1386/4 +f 540/1387/2 544/1388/2 549/1389/2 541/1390/2 +f 560/1391/1 553/1392/1 558/1393/1 559/1394/1 +f 548/1395/6 543/1396/6 552/1397/6 538/1398/6 +f 555/1399/6 557/1400/6 559/1401/6 558/1402/6 +f 541/1365/3 549/1403/3 546/1404/3 547/1405/3 +f 537/1406/1 542/1368/1 543/1407/1 548/1408/1 +f 556/1409/3 554/1410/3 557/1411/3 555/1412/3 +f 539/1413/4 537/1414/4 548/1415/4 538/1416/4 +f 547/1417/6 546/1418/6 545/1419/6 551/1420/6 +f 538/1421/3 552/1422/3 550/1369/3 539/1423/3 +f 564/1424/2 565/1425/2 571/1426/2 575/1427/2 +f 566/1428/2 574/1429/2 576/1430/2 567/1431/2 +f 563/1432/4 574/1433/4 566/1434/4 561/1435/4 +f 575/1436/1 569/1437/1 568/1438/1 564/1424/1 +f 577/1439/4 584/1440/4 578/1441/4 580/1442/4 +f 573/1443/6 568/1444/6 569/1445/6 570/1446/6 +f 564/1447/4 568/1448/4 573/1449/4 565/1450/4 +f 584/1451/1 577/1452/1 582/1453/1 583/1454/1 +f 572/1455/5 567/1456/5 576/1457/5 562/1458/5 +f 579/1459/5 581/1460/5 583/1461/5 582/1462/5 +f 565/1425/3 573/1463/3 570/1464/3 571/1465/3 +f 561/1466/1 566/1428/1 567/1467/1 572/1468/1 +f 580/1469/3 578/1470/3 581/1471/3 579/1472/3 +f 563/1473/6 561/1474/6 572/1475/6 562/1476/6 +f 571/1477/5 570/1478/5 569/1479/5 575/1480/5 +f 562/1481/3 576/1482/3 574/1429/3 563/1483/3 +f 590/1484/6 592/1485/6 588/1486/6 586/1487/6 +f 585/1488/2 587/1489/2 591/1490/2 589/1491/2 +f 592/1492/5 590/1493/5 589/1494/5 591/1495/5 +f 590/1496/1 586/1497/1 585/1498/1 589/1499/1 +f 586/1487/4 588/1486/4 587/1489/4 585/1488/4 +f 588/1500/3 592/1501/3 591/1502/3 587/1503/3 +f 598/1504/6 594/1505/6 596/1506/6 600/1507/6 +f 593/1508/2 597/1509/2 599/1510/2 595/1511/2 +f 600/1512/4 599/1513/4 597/1514/4 598/1515/4 +f 598/1516/1 597/1517/1 593/1518/1 594/1519/1 +f 594/1505/5 593/1508/5 595/1511/5 596/1506/5 +f 596/1520/3 595/1521/3 599/1522/3 600/1523/3 +f 601/1524/5 603/1525/5 604/1526/5 602/1527/5 +f 603/1528/1 607/1529/1 608/1530/1 604/1531/1 +f 607/1532/4 605/1533/4 606/1534/4 608/1535/4 +f 605/1536/3 601/1537/3 602/1538/3 606/1539/3 +f 603/1540/6 601/1541/6 605/1542/6 607/1543/6 +f 608/1544/2 606/1545/2 602/1546/2 604/1547/2 diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj new file mode 100644 index 0000000..7e19693 --- /dev/null +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj @@ -0,0 +1,2136 @@ +# Blender v2.79 (sub 0) OBJ File: 'generator.blend' +# www.blender.org +mtllib universal_motor.mtl +o Rotor_Rotor.Shaft +v -0.125000 -0.125000 -1.500000 +v -0.125000 0.125000 -1.500000 +v 0.125000 0.125000 -1.500000 +v -0.125000 -0.125000 1.500000 +v -0.125000 0.125000 1.500000 +v 0.125000 -0.125000 1.500000 +v 0.125000 0.125000 1.500000 +v 0.125000 -0.125000 -1.500000 +v 0.073934 0.178492 -0.075000 +v 0.073934 0.178492 0.075000 +v 0.178492 0.073934 -0.075000 +v 0.178492 0.073934 0.075000 +v 0.178492 -0.073934 -0.075000 +v 0.178492 -0.073934 0.075000 +v 0.073934 -0.178493 -0.075000 +v 0.073934 -0.178493 0.075000 +v -0.073934 -0.178492 -0.075000 +v -0.073934 -0.178492 0.075000 +v -0.178493 -0.073934 -0.075000 +v -0.178493 -0.073934 0.075000 +v -0.178492 0.073934 -0.075000 +v -0.178492 0.073934 0.075000 +v -0.073934 0.178493 -0.075000 +v -0.073934 0.178493 0.075000 +v 0.062500 -0.562500 0.062500 +v -0.062500 -0.562500 0.062500 +v 0.062500 -0.562500 -0.062500 +v -0.062500 -0.562500 -0.062500 +v 0.062500 0.563750 0.062500 +v -0.062500 0.563750 0.062500 +v 0.062500 0.563750 -0.062500 +v -0.062500 0.563750 -0.062500 +v 0.563125 0.063125 0.062500 +v 0.563125 -0.061875 0.062500 +v 0.563125 0.063125 -0.062500 +v 0.563125 -0.061875 -0.062500 +v -0.563125 0.063125 0.062500 +v -0.563125 -0.061875 0.062500 +v -0.563125 0.063125 -0.062500 +v -0.563125 -0.061875 -0.062500 +v -0.353996 -0.441759 0.062500 +v -0.442384 -0.353370 0.062500 +v -0.353996 -0.441759 -0.062500 +v -0.442384 -0.353370 -0.062500 +v 0.442384 0.354620 0.062500 +v 0.353995 0.443008 0.062500 +v 0.442384 0.354620 -0.062500 +v 0.353995 0.443009 -0.062500 +v 0.442384 -0.353370 0.062500 +v 0.353995 -0.441759 0.062500 +v 0.442384 -0.353370 -0.062500 +v 0.353995 -0.441759 -0.062500 +v -0.353995 0.443009 0.062500 +v -0.442384 0.354620 0.062500 +v -0.353995 0.443009 -0.062500 +v -0.442384 0.354620 -0.062500 +v -0.180264 -0.843750 -0.187500 +v 0.180265 -0.843750 0.187500 +v -0.180264 -0.843750 0.187500 +v -0.118104 -0.593750 -0.187500 +v -0.118104 -0.593750 0.187500 +v -0.180264 -0.906250 -0.187500 +v 0.180265 -0.906250 -0.187500 +v -0.118104 -0.531250 -0.187500 +v 0.118104 -0.531250 -0.187500 +v 0.118104 -0.531250 0.187500 +v 0.118104 -0.593750 0.187500 +v 0.180264 -0.843750 -0.187500 +v -0.118104 -0.531250 0.187500 +v -0.180264 -0.906250 0.187500 +v 0.118104 -0.593750 -0.187500 +v 0.180265 -0.906250 0.187500 +v -0.125000 -0.843750 -0.125000 +v -0.125000 -0.593750 0.125000 +v 0.125000 -0.843750 0.125000 +v -0.125000 -0.843750 0.125000 +v 0.125000 -0.593750 0.125000 +v 0.125000 -0.843750 -0.125000 +v 0.125000 -0.593750 -0.125000 +v -0.125000 -0.593750 -0.125000 +v -0.489432 -0.710539 -0.187500 +v -0.156346 -0.848508 0.187500 +v -0.489431 -0.710539 0.187500 +v -0.336332 -0.503357 -0.187500 +v -0.336332 -0.503357 0.187500 +v -0.513349 -0.768282 -0.187500 +v -0.180264 -0.906250 -0.187500 +v -0.312415 -0.445615 -0.187500 +v -0.094187 -0.536008 -0.187500 +v -0.094187 -0.536008 0.187500 +v -0.118104 -0.593750 0.187500 +v -0.156347 -0.848508 -0.187500 +v -0.312415 -0.445615 0.187500 +v -0.513349 -0.768282 0.187500 +v -0.118104 -0.593750 -0.187500 +v -0.180264 -0.906250 0.187500 +v -0.438374 -0.731688 -0.125000 +v -0.342703 -0.500718 0.125000 +v -0.207404 -0.827359 0.125000 +v -0.438374 -0.731688 0.125000 +v -0.111733 -0.596389 0.125000 +v -0.207404 -0.827359 -0.125000 +v -0.111733 -0.596389 -0.125000 +v -0.342703 -0.500718 -0.125000 +v 0.489432 0.710539 -0.187500 +v 0.156347 0.848507 0.187500 +v 0.489432 0.710539 0.187500 +v 0.336332 0.503357 -0.187500 +v 0.336332 0.503357 0.187500 +v 0.513350 0.768282 -0.187500 +v 0.180264 0.906250 -0.187500 +v 0.312415 0.445615 -0.187500 +v 0.094187 0.536008 -0.187500 +v 0.094187 0.536007 0.187500 +v 0.118104 0.593750 0.187500 +v 0.156347 0.848508 -0.187500 +v 0.312415 0.445614 0.187500 +v 0.513349 0.768281 0.187500 +v 0.118104 0.593750 -0.187500 +v 0.180264 0.906250 0.187500 +v 0.438374 0.731688 -0.125000 +v 0.342703 0.500718 0.125000 +v 0.207404 0.827359 0.125000 +v 0.438374 0.731688 0.125000 +v 0.111734 0.596389 0.125000 +v 0.207404 0.827359 -0.125000 +v 0.111734 0.596389 -0.125000 +v 0.342703 0.500718 -0.125000 +v -0.710539 0.489432 -0.187500 +v -0.848507 0.156347 0.187500 +v -0.710539 0.489432 0.187500 +v -0.503357 0.336333 -0.187500 +v -0.503357 0.336333 0.187500 +v -0.768282 0.513350 -0.187500 +v -0.906250 0.180264 -0.187500 +v -0.445615 0.312415 -0.187500 +v -0.536007 0.094187 -0.187500 +v -0.536007 0.094187 0.187500 +v -0.593750 0.118104 0.187500 +v -0.848507 0.156347 -0.187500 +v -0.445614 0.312415 0.187500 +v -0.768282 0.513349 0.187500 +v -0.593750 0.118104 -0.187500 +v -0.906250 0.180264 0.187500 +v -0.731688 0.438374 -0.125000 +v -0.500718 0.342703 0.125000 +v -0.827359 0.207404 0.125000 +v -0.731688 0.438374 0.125000 +v -0.596389 0.111734 0.125000 +v -0.827359 0.207404 -0.125000 +v -0.596389 0.111734 -0.125000 +v -0.500718 0.342704 -0.125000 +v 0.710539 -0.489432 -0.187500 +v 0.848508 -0.156347 0.187500 +v 0.710539 -0.489432 0.187500 +v 0.503357 -0.336332 -0.187500 +v 0.503357 -0.336332 0.187500 +v 0.768282 -0.513349 -0.187500 +v 0.906250 -0.180264 -0.187500 +v 0.445615 -0.312415 -0.187500 +v 0.536008 -0.094187 -0.187500 +v 0.536008 -0.094187 0.187500 +v 0.593750 -0.118104 0.187500 +v 0.848508 -0.156347 -0.187500 +v 0.445614 -0.312415 0.187500 +v 0.768282 -0.513349 0.187500 +v 0.593750 -0.118104 -0.187500 +v 0.906250 -0.180264 0.187500 +v 0.731688 -0.438374 -0.125000 +v 0.500718 -0.342703 0.125000 +v 0.827359 -0.207404 0.125000 +v 0.731688 -0.438374 0.125000 +v 0.596389 -0.111733 0.125000 +v 0.827359 -0.207404 -0.125000 +v 0.596389 -0.111733 -0.125000 +v 0.500718 -0.342703 -0.125000 +v 0.848508 0.156347 -0.187500 +v 0.710539 0.489432 0.187500 +v 0.848508 0.156347 0.187500 +v 0.593750 0.118104 -0.187500 +v 0.593750 0.118104 0.187500 +v 0.906250 0.180264 -0.187500 +v 0.768282 0.513350 -0.187500 +v 0.536008 0.094187 -0.187500 +v 0.445615 0.312415 -0.187500 +v 0.445615 0.312415 0.187500 +v 0.503357 0.336332 0.187500 +v 0.710539 0.489432 -0.187500 +v 0.536008 0.094187 0.187500 +v 0.906250 0.180265 0.187500 +v 0.503357 0.336333 -0.187500 +v 0.768282 0.513350 0.187500 +v 0.827359 0.207404 -0.125000 +v 0.596389 0.111733 0.125000 +v 0.731688 0.438374 0.125000 +v 0.827359 0.207404 0.125000 +v 0.500718 0.342703 0.125000 +v 0.731688 0.438374 -0.125000 +v 0.500718 0.342703 -0.125000 +v 0.596389 0.111733 -0.125000 +v -0.848508 -0.156347 -0.187500 +v -0.710539 -0.489432 0.187500 +v -0.848508 -0.156347 0.187500 +v -0.593750 -0.118104 -0.187500 +v -0.593750 -0.118104 0.187500 +v -0.906250 -0.180265 -0.187500 +v -0.768281 -0.513349 -0.187500 +v -0.536008 -0.094186 -0.187500 +v -0.445615 -0.312414 -0.187500 +v -0.445614 -0.312414 0.187500 +v -0.503357 -0.336332 0.187500 +v -0.710539 -0.489432 -0.187500 +v -0.536008 -0.094186 0.187500 +v -0.906250 -0.180265 0.187500 +v -0.503357 -0.336332 -0.187500 +v -0.768281 -0.513349 0.187500 +v -0.827359 -0.207404 -0.125000 +v -0.596389 -0.111733 0.125000 +v -0.731688 -0.438374 0.125000 +v -0.827359 -0.207404 0.125000 +v -0.500718 -0.342703 0.125000 +v -0.731688 -0.438374 -0.125000 +v -0.500718 -0.342703 -0.125000 +v -0.596389 -0.111733 -0.125000 +v -0.156347 0.848508 -0.187500 +v -0.489432 0.710539 0.187500 +v -0.156347 0.848507 0.187500 +v -0.118104 0.593750 -0.187500 +v -0.118104 0.593750 0.187500 +v -0.180264 0.906250 -0.187500 +v -0.513349 0.768282 -0.187500 +v -0.094186 0.536008 -0.187500 +v -0.312414 0.445615 -0.187500 +v -0.312414 0.445615 0.187500 +v -0.336332 0.503357 0.187500 +v -0.489432 0.710539 -0.187500 +v -0.094186 0.536008 0.187500 +v -0.180264 0.906250 0.187500 +v -0.336332 0.503357 -0.187500 +v -0.513349 0.768282 0.187500 +v -0.207404 0.827359 -0.125000 +v -0.111733 0.596389 0.125000 +v -0.438374 0.731688 0.125000 +v -0.207404 0.827359 0.125000 +v -0.342703 0.500718 0.125000 +v -0.438374 0.731688 -0.125000 +v -0.342703 0.500718 -0.125000 +v -0.111733 0.596389 -0.125000 +v 0.156347 -0.848507 -0.187500 +v 0.489432 -0.710539 0.187500 +v 0.156347 -0.848507 0.187500 +v 0.118104 -0.593750 -0.187500 +v 0.118104 -0.593750 0.187500 +v 0.180264 -0.906250 -0.187500 +v 0.513350 -0.768282 -0.187500 +v 0.094187 -0.536008 -0.187500 +v 0.312415 -0.445615 -0.187500 +v 0.312415 -0.445615 0.187500 +v 0.336332 -0.503357 0.187500 +v 0.489432 -0.710539 -0.187500 +v 0.094187 -0.536008 0.187500 +v 0.180265 -0.906250 0.187500 +v 0.336332 -0.503357 -0.187500 +v 0.513350 -0.768282 0.187500 +v 0.207404 -0.827359 -0.125000 +v 0.111733 -0.596389 0.125000 +v 0.438374 -0.731688 0.125000 +v 0.207404 -0.827359 0.125000 +v 0.342703 -0.500718 0.125000 +v 0.438374 -0.731688 -0.125000 +v 0.342703 -0.500718 -0.125000 +v 0.111733 -0.596389 -0.125000 +v 0.469155 -0.724087 -0.187500 +v 0.724088 -0.469155 0.187500 +v 0.469155 -0.724087 0.187500 +v 0.336332 -0.503357 -0.187500 +v 0.336332 -0.503357 0.187500 +v 0.513350 -0.768282 -0.187500 +v 0.768282 -0.513349 -0.187500 +v 0.292138 -0.459163 -0.187500 +v 0.459163 -0.292138 -0.187500 +v 0.459163 -0.292138 0.187500 +v 0.503357 -0.336332 0.187500 +v 0.724088 -0.469155 -0.187500 +v 0.292138 -0.459163 0.187500 +v 0.513350 -0.768282 0.187500 +v 0.503357 -0.336332 -0.187500 +v 0.768282 -0.513349 0.187500 +v 0.508233 -0.685010 -0.125000 +v 0.331456 -0.508233 0.125000 +v 0.685010 -0.508233 0.125000 +v 0.508233 -0.685010 0.125000 +v 0.508233 -0.331456 0.125000 +v 0.685010 -0.508233 -0.125000 +v 0.508233 -0.331456 -0.125000 +v 0.331456 -0.508233 -0.125000 +v -0.469155 0.724087 -0.187500 +v -0.724087 0.469155 0.187500 +v -0.469155 0.724087 0.187500 +v -0.336332 0.503357 -0.187500 +v -0.336332 0.503357 0.187500 +v -0.513349 0.768282 -0.187500 +v -0.768282 0.513350 -0.187500 +v -0.292138 0.459163 -0.187500 +v -0.459163 0.292138 -0.187500 +v -0.459163 0.292138 0.187500 +v -0.503357 0.336333 0.187500 +v -0.724087 0.469155 -0.187500 +v -0.292138 0.459163 0.187500 +v -0.513349 0.768281 0.187500 +v -0.503357 0.336333 -0.187500 +v -0.768282 0.513350 0.187500 +v -0.508233 0.685010 -0.125000 +v -0.331456 0.508233 0.125000 +v -0.685009 0.508233 0.125000 +v -0.508233 0.685010 0.125000 +v -0.508233 0.331456 0.125000 +v -0.685009 0.508233 -0.125000 +v -0.508233 0.331457 -0.125000 +v -0.331456 0.508233 -0.125000 +v -0.724087 -0.469155 -0.187500 +v -0.469155 -0.724087 0.187500 +v -0.724087 -0.469155 0.187500 +v -0.503357 -0.336332 -0.187500 +v -0.503357 -0.336332 0.187500 +v -0.768282 -0.513350 -0.187500 +v -0.513349 -0.768282 -0.187500 +v -0.459163 -0.292138 -0.187500 +v -0.292138 -0.459163 -0.187500 +v -0.292138 -0.459162 0.187500 +v -0.336332 -0.503357 0.187500 +v -0.469155 -0.724087 -0.187500 +v -0.459163 -0.292138 0.187500 +v -0.768282 -0.513350 0.187500 +v -0.336332 -0.503357 -0.187500 +v -0.513349 -0.768282 0.187500 +v -0.685010 -0.508233 -0.125000 +v -0.508233 -0.331456 0.125000 +v -0.508233 -0.685010 0.125000 +v -0.685010 -0.508233 0.125000 +v -0.331456 -0.508233 0.125000 +v -0.508233 -0.685010 -0.125000 +v -0.331456 -0.508233 -0.125000 +v -0.508233 -0.331456 -0.125000 +v 0.724087 0.469155 -0.187500 +v 0.469155 0.724087 0.187500 +v 0.724087 0.469155 0.187500 +v 0.503357 0.336333 -0.187500 +v 0.503357 0.336332 0.187500 +v 0.768282 0.513350 -0.187500 +v 0.513350 0.768282 -0.187500 +v 0.459163 0.292138 -0.187500 +v 0.292138 0.459163 -0.187500 +v 0.292138 0.459163 0.187500 +v 0.336332 0.503357 0.187500 +v 0.469155 0.724088 -0.187500 +v 0.459163 0.292138 0.187500 +v 0.768282 0.513350 0.187500 +v 0.336332 0.503357 -0.187500 +v 0.513349 0.768282 0.187500 +v 0.685010 0.508233 -0.125000 +v 0.508233 0.331456 0.125000 +v 0.508233 0.685010 0.125000 +v 0.685010 0.508233 0.125000 +v 0.331456 0.508233 0.125000 +v 0.508233 0.685010 -0.125000 +v 0.331456 0.508233 -0.125000 +v 0.508233 0.331456 -0.125000 +v 0.843750 -0.180264 -0.187500 +v 0.843750 0.180264 0.187500 +v 0.843750 -0.180264 0.187500 +v 0.593750 -0.118104 -0.187500 +v 0.593750 -0.118104 0.187500 +v 0.906250 -0.180264 -0.187500 +v 0.906250 0.180264 -0.187500 +v 0.531250 -0.118104 -0.187500 +v 0.531250 0.118104 -0.187500 +v 0.531250 0.118104 0.187500 +v 0.593750 0.118104 0.187500 +v 0.843750 0.180264 -0.187500 +v 0.531250 -0.118104 0.187500 +v 0.906250 -0.180264 0.187500 +v 0.593750 0.118104 -0.187500 +v 0.906250 0.180264 0.187500 +v 0.843750 -0.125000 -0.125000 +v 0.593750 -0.125000 0.125000 +v 0.843750 0.125000 0.125000 +v 0.843750 -0.125000 0.125000 +v 0.593750 0.125000 0.125000 +v 0.843750 0.125000 -0.125000 +v 0.593750 0.125000 -0.125000 +v 0.593750 -0.125000 -0.125000 +v -0.843750 0.180264 -0.187500 +v -0.843750 -0.180264 0.187500 +v -0.843750 0.180264 0.187500 +v -0.593750 0.118104 -0.187500 +v -0.593750 0.118104 0.187500 +v -0.906250 0.180264 -0.187500 +v -0.906250 -0.180264 -0.187500 +v -0.531250 0.118104 -0.187500 +v -0.531250 -0.118104 -0.187500 +v -0.531250 -0.118104 0.187500 +v -0.593750 -0.118104 0.187500 +v -0.843750 -0.180264 -0.187500 +v -0.531250 0.118104 0.187500 +v -0.906250 0.180264 0.187500 +v -0.593750 -0.118104 -0.187500 +v -0.906250 -0.180264 0.187500 +v -0.843750 0.125000 -0.125000 +v -0.593750 0.125000 0.125000 +v -0.843750 -0.125000 0.125000 +v -0.843750 0.125000 0.125000 +v -0.593750 -0.125000 0.125000 +v -0.843750 -0.125000 -0.125000 +v -0.593750 -0.125000 -0.125000 +v -0.593750 0.125000 -0.125000 +v 0.180264 0.843750 -0.187500 +v -0.180264 0.843750 0.187500 +v 0.180264 0.843750 0.187500 +v 0.118104 0.593750 -0.187500 +v 0.118104 0.593750 0.187500 +v 0.180264 0.906250 -0.187500 +v -0.180264 0.906250 -0.187500 +v 0.118104 0.531250 -0.187500 +v -0.118104 0.531250 -0.187500 +v -0.118104 0.531250 0.187500 +v -0.118104 0.593750 0.187500 +v -0.180264 0.843750 -0.187500 +v 0.118104 0.531250 0.187500 +v 0.180264 0.906250 0.187500 +v -0.118104 0.593750 -0.187500 +v -0.180264 0.906250 0.187500 +v 0.125000 0.843750 -0.125000 +v 0.125000 0.593750 0.125000 +v -0.125000 0.843750 0.125000 +v 0.125000 0.843750 0.125000 +v -0.125000 0.593750 0.125000 +v -0.125000 0.843750 -0.125000 +v -0.125000 0.593750 -0.125000 +v 0.125000 0.593750 -0.125000 +v 0.035458 0.178260 0.500000 +v -0.035458 0.178260 0.500000 +v -0.100976 0.151121 0.500000 +v -0.151121 0.100976 0.500000 +v -0.178260 0.035458 0.500000 +v -0.178260 -0.035458 0.500000 +v -0.151121 -0.100976 0.500000 +v -0.100976 -0.151121 0.500000 +v -0.035458 -0.178260 0.500000 +v 0.035458 -0.178260 0.500000 +v 0.100976 -0.151121 0.500000 +v 0.151121 -0.100976 0.500000 +v 0.178260 -0.035458 0.500000 +v 0.178260 0.035458 0.500000 +v 0.151121 0.100976 0.500000 +v 0.100976 0.151121 0.500000 +v 0.035458 0.178260 0.687500 +v -0.035458 0.178260 0.687500 +v -0.100976 0.151121 0.687500 +v -0.151121 0.100976 0.687500 +v -0.178260 0.035458 0.687500 +v -0.178260 -0.035458 0.687500 +v -0.151121 -0.100976 0.687500 +v -0.100976 -0.151121 0.687500 +v -0.035458 -0.178260 0.687500 +v 0.035458 -0.178260 0.687500 +v 0.100976 -0.151121 0.687500 +v 0.151121 -0.100976 0.687500 +v 0.178260 -0.035458 0.687500 +v 0.178260 0.035458 0.687500 +v 0.151121 0.100976 0.687500 +v 0.100976 0.151121 0.687500 +v 0.021070 0.105925 0.750000 +v -0.021070 0.105925 0.750000 +v -0.060002 0.089799 0.750000 +v -0.089799 0.060002 0.750000 +v -0.105925 0.021070 0.750000 +v -0.105925 -0.021070 0.750000 +v -0.089799 -0.060002 0.750000 +v -0.060002 -0.089799 0.750000 +v -0.021070 -0.105925 0.750000 +v 0.021070 -0.105925 0.750000 +v 0.060002 -0.089799 0.750000 +v 0.089799 -0.060002 0.750000 +v 0.105925 -0.021070 0.750000 +v 0.105925 0.021070 0.750000 +v 0.089799 0.060002 0.750000 +v 0.060002 0.089799 0.750000 +v 0.021070 0.105925 0.437500 +v -0.021070 0.105925 0.437500 +v -0.060002 0.089799 0.437500 +v -0.089799 0.060002 0.437500 +v -0.105925 0.021070 0.437500 +v -0.105925 -0.021070 0.437500 +v -0.089799 -0.060002 0.437500 +v -0.060002 -0.089799 0.437500 +v -0.021070 -0.105925 0.437500 +v 0.021070 -0.105925 0.437500 +v 0.060002 -0.089799 0.437500 +v 0.089799 -0.060002 0.437500 +v 0.105925 -0.021070 0.437500 +v 0.105925 0.021070 0.437500 +v 0.089799 0.060002 0.437500 +v 0.060002 0.089799 0.437500 +v -0.012500 0.143750 0.504991 +v -0.012500 0.168750 0.504991 +v -0.012500 0.143750 0.084845 +v -0.012500 0.168750 0.084845 +v 0.012500 0.143750 0.504991 +v 0.012500 0.168750 0.504991 +v 0.012500 0.143750 0.084845 +v 0.012500 0.168750 0.084845 +v -0.012500 0.532838 0.109845 +v -0.012500 0.532838 0.084845 +v -0.012500 0.168750 0.109845 +v -0.012500 0.168750 0.084845 +v 0.012500 0.532838 0.109845 +v 0.012500 0.532838 0.084845 +v 0.012500 0.168750 0.109845 +v 0.012500 0.168750 0.084845 +v -0.143750 -0.012500 0.504991 +v -0.168750 -0.012500 0.504991 +v -0.143750 -0.012500 0.084845 +v -0.168750 -0.012500 0.084845 +v -0.143750 0.012500 0.504991 +v -0.168750 0.012500 0.504991 +v -0.143750 0.012500 0.084845 +v -0.168750 0.012500 0.084845 +v -0.532838 -0.012500 0.109845 +v -0.532838 -0.012500 0.084845 +v -0.168750 -0.012500 0.109845 +v -0.168750 -0.012500 0.084845 +v -0.532838 0.012500 0.109845 +v -0.532838 0.012500 0.084845 +v -0.168750 0.012500 0.109845 +v -0.168750 0.012500 0.084845 +v 0.143750 0.012500 0.504991 +v 0.168750 0.012500 0.504991 +v 0.143750 0.012500 0.084845 +v 0.168750 0.012500 0.084845 +v 0.143750 -0.012500 0.504991 +v 0.168750 -0.012500 0.504991 +v 0.143750 -0.012500 0.084845 +v 0.168750 -0.012500 0.084845 +v 0.532838 0.012500 0.109845 +v 0.532838 0.012500 0.084845 +v 0.168750 0.012500 0.109845 +v 0.168750 0.012500 0.084845 +v 0.532838 -0.012500 0.109845 +v 0.532838 -0.012500 0.084845 +v 0.168750 -0.012500 0.109845 +v 0.168750 -0.012500 0.084845 +v 0.012500 -0.143750 0.504991 +v 0.012500 -0.168750 0.504991 +v 0.012500 -0.143750 0.084845 +v 0.012500 -0.168750 0.084845 +v -0.012500 -0.143750 0.504991 +v -0.012500 -0.168750 0.504991 +v -0.012500 -0.143750 0.084845 +v -0.012500 -0.168750 0.084845 +v 0.012500 -0.532838 0.109845 +v 0.012500 -0.532838 0.084845 +v 0.012500 -0.168750 0.109845 +v 0.012500 -0.168750 0.084845 +v -0.012500 -0.532838 0.109845 +v -0.012500 -0.532838 0.084845 +v -0.012500 -0.168750 0.109845 +v -0.012500 -0.168750 0.084845 +vt 0.843750 0.750000 +vt 0.812500 0.750000 +vt 0.812500 0.375000 +vt 0.843750 0.375000 +vt 0.843750 0.750000 +vt 0.812500 0.750000 +vt 0.812500 0.375000 +vt 0.843750 0.375000 +vt 0.843750 0.750000 +vt 0.812500 0.750000 +vt 0.812500 0.375000 +vt 0.843750 0.375000 +vt 0.843750 0.750000 +vt 0.812500 0.750000 +vt 0.812500 0.375000 +vt 0.843750 0.375000 +vt 0.875000 0.312500 +vt 0.875000 0.343750 +vt 0.843750 0.343750 +vt 0.843750 0.312500 +vt 0.875000 0.312500 +vt 0.875000 0.343750 +vt 0.843750 0.343750 +vt 0.843750 0.312500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.499289 0.775594 +vt 0.463094 0.811789 +vt 0.411906 0.811789 +vt 0.375711 0.775594 +vt 0.375711 0.724406 +vt 0.411906 0.688211 +vt 0.463094 0.688211 +vt 0.499289 0.724406 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.463094 0.811789 +vt 0.499289 0.775594 +vt 0.499289 0.724406 +vt 0.463094 0.688211 +vt 0.411906 0.688211 +vt 0.375711 0.724406 +vt 0.375711 0.775594 +vt 0.411906 0.811789 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.437500 +vt 0.843750 0.437500 +vt 0.843750 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.375000 0.687500 +vt 0.375000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.500000 0.687500 +vt 0.625000 0.687500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.500000 0.687500 +vt 0.500000 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.687500 +vt 0.500000 0.695312 +vt 0.375000 0.695312 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.625000 0.656250 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.656250 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.812500 0.718750 +vt 0.812500 0.703125 +vt 0.843750 0.703125 +vt 0.843750 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.843750 0.718750 +vt 0.843750 0.703125 +vt 0.812500 0.703125 +vt 0.812500 0.718750 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.843750 0.710938 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.812500 +vt 0.851562 0.710938 +vt 0.851562 0.812500 +vt 0.843750 0.710938 +vt 0.843750 0.812500 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.2502 0.6040 0.7567 +vn 0.0000 -0.6538 0.7567 +vn -0.2502 0.6040 0.7567 +vn 0.2502 -0.6040 0.7567 +vn -0.4623 0.4623 0.7567 +vn 0.4623 -0.4623 0.7567 +vn -0.6040 0.2502 0.7567 +vn 0.6040 -0.2502 0.7567 +vn -0.6538 0.0000 0.7567 +vn 0.6538 0.0000 0.7567 +vn -0.6040 -0.2502 0.7567 +vn 0.6040 0.2502 0.7567 +vn -0.4623 -0.4623 0.7567 +vn 0.4623 0.4623 0.7567 +vn -0.2502 -0.6040 0.7567 +vn 0.0000 0.6538 0.7567 +vn 0.2502 -0.6040 -0.7567 +vn -0.4623 0.4623 -0.7567 +vn 0.4623 -0.4623 -0.7567 +vn -0.6040 0.2502 -0.7567 +vn 0.6040 -0.2502 -0.7567 +vn -0.6538 0.0000 -0.7567 +vn 0.6538 0.0000 -0.7567 +vn -0.6040 -0.2502 -0.7567 +vn 0.6040 0.2502 -0.7567 +vn -0.4623 -0.4623 -0.7567 +vn 0.4623 0.4623 -0.7567 +vn -0.2502 -0.6040 -0.7567 +vn 0.0000 0.6538 -0.7567 +vn 0.2502 0.6040 -0.7567 +vn 0.0000 -0.6538 -0.7567 +vn -0.2502 0.6040 -0.7567 +usemtl None +s off +f 2/1/1 1/2/1 4/3/1 5/4/1 +f 1/5/2 8/6/2 6/7/2 4/8/2 +f 3/9/3 2/10/3 5/11/3 7/12/3 +f 8/13/4 3/14/4 7/15/4 6/16/4 +f 6/17/5 7/18/5 5/19/5 4/20/5 +f 1/21/6 2/22/6 3/23/6 8/24/6 +f 9/25/7 10/26/7 12/27/7 11/28/7 +f 11/29/4 12/30/4 14/31/4 13/32/4 +f 13/33/8 14/34/8 16/35/8 15/36/8 +f 15/37/2 16/38/2 18/39/2 17/40/2 +f 17/41/9 18/42/9 20/43/9 19/44/9 +f 19/45/1 20/46/1 22/47/1 21/48/1 +f 12/49/5 10/50/5 24/51/5 22/52/5 20/53/5 18/54/5 16/55/5 14/56/5 +f 21/57/10 22/58/10 24/59/10 23/60/10 +f 23/61/3 24/62/3 10/63/3 9/64/3 +f 9/65/6 11/66/6 13/67/6 15/68/6 17/69/6 19/70/6 21/71/6 23/72/6 +f 27/73/6 28/74/6 32/75/6 31/76/6 +f 29/77/5 30/78/5 26/79/5 25/80/5 +f 27/81/4 31/82/4 29/83/4 25/84/4 +f 32/85/1 28/86/1 26/87/1 30/88/1 +f 35/89/6 36/90/6 40/91/6 39/92/6 +f 37/93/5 38/94/5 34/95/5 33/96/5 +f 35/97/3 39/98/3 37/99/3 33/100/3 +f 40/101/2 36/102/2 34/103/2 38/104/2 +f 43/105/6 44/106/6 48/107/6 47/108/6 +f 45/109/5 46/110/5 42/111/5 41/112/5 +f 43/113/8 47/114/8 45/115/8 41/116/8 +f 48/117/10 44/118/10 42/119/10 46/120/10 +f 51/121/6 52/122/6 56/123/6 55/124/6 +f 53/125/5 54/126/5 50/127/5 49/128/5 +f 51/129/7 55/130/7 53/131/7 49/132/7 +f 56/133/9 52/134/9 50/135/9 54/136/9 +f 60/137/2 71/138/2 67/139/2 61/140/2 +f 62/141/2 63/142/2 72/143/2 70/144/2 +f 71/145/6 60/146/6 64/147/6 65/148/6 +f 73/149/1 76/150/1 74/151/1 80/152/1 +f 69/153/3 66/154/3 65/155/3 64/147/3 +f 80/156/6 79/157/6 78/158/6 73/159/6 +f 75/160/4 78/161/4 79/162/4 77/163/4 +f 61/164/5 67/165/5 66/166/5 69/153/5 +f 57/167/6 68/168/6 63/169/6 62/170/6 +f 76/171/5 75/172/5 77/173/5 74/174/5 +f 59/175/3 58/176/3 68/177/3 57/167/3 +f 58/178/5 59/175/5 70/179/5 72/180/5 +f 84/181/11 95/182/11 91/183/11 85/184/11 +f 86/185/11 87/186/11 96/187/11 94/188/11 +f 95/189/6 84/190/6 88/191/6 89/192/6 +f 97/193/12 100/194/12 98/195/12 104/196/12 +f 93/197/13 90/198/13 89/199/13 88/191/13 +f 104/200/6 103/201/6 102/202/6 97/203/6 +f 99/204/14 102/205/14 103/206/14 101/207/14 +f 85/208/5 91/209/5 90/210/5 93/197/5 +f 81/211/6 92/212/6 87/213/6 86/214/6 +f 100/215/5 99/216/5 101/217/5 98/218/5 +f 83/219/13 82/220/13 92/221/13 81/211/13 +f 82/222/5 83/219/5 94/223/5 96/224/5 +f 108/225/13 119/226/13 115/227/13 109/228/13 +f 110/229/13 111/230/13 120/231/13 118/232/13 +f 119/233/6 108/234/6 112/235/6 113/236/6 +f 121/237/14 124/238/14 122/239/14 128/240/14 +f 117/241/11 114/242/11 113/243/11 112/235/11 +f 128/244/6 127/245/6 126/246/6 121/247/6 +f 123/248/12 126/249/12 127/250/12 125/251/12 +f 109/252/5 115/253/5 114/254/5 117/241/5 +f 105/255/6 116/256/6 111/257/6 110/258/6 +f 124/259/5 123/260/5 125/261/5 122/262/5 +f 107/263/11 106/264/11 116/265/11 105/255/11 +f 106/266/5 107/263/5 118/267/5 120/268/5 +f 132/269/12 143/270/12 139/271/12 133/272/12 +f 134/273/12 135/274/12 144/275/12 142/276/12 +f 143/277/6 132/278/6 136/279/6 137/280/6 +f 145/281/13 148/282/13 146/283/13 152/284/13 +f 141/285/14 138/286/14 137/287/14 136/279/14 +f 152/288/6 151/289/6 150/290/6 145/291/6 +f 147/292/11 150/293/11 151/294/11 149/295/11 +f 133/296/5 139/297/5 138/298/5 141/285/5 +f 129/299/6 140/300/6 135/301/6 134/302/6 +f 148/303/5 147/304/5 149/305/5 146/306/5 +f 131/307/14 130/308/14 140/309/14 129/299/14 +f 130/310/5 131/307/5 142/311/5 144/312/5 +f 156/313/14 167/314/14 163/315/14 157/316/14 +f 158/317/14 159/318/14 168/319/14 166/320/14 +f 167/321/6 156/322/6 160/323/6 161/324/6 +f 169/325/11 172/326/11 170/327/11 176/328/11 +f 165/329/12 162/330/12 161/331/12 160/323/12 +f 176/332/6 175/333/6 174/334/6 169/335/6 +f 171/336/13 174/337/13 175/338/13 173/339/13 +f 157/340/5 163/341/5 162/342/5 165/329/5 +f 153/343/6 164/344/6 159/345/6 158/346/6 +f 172/347/5 171/348/5 173/349/5 170/350/5 +f 155/351/12 154/352/12 164/353/12 153/343/12 +f 154/354/5 155/351/5 166/355/5 168/356/5 +f 180/357/15 191/358/15 187/359/15 181/360/15 +f 182/361/15 183/362/15 192/363/15 190/364/15 +f 191/365/6 180/366/6 184/367/6 185/368/6 +f 193/369/16 196/370/16 194/371/16 200/372/16 +f 189/373/17 186/374/17 185/375/17 184/367/17 +f 200/376/6 199/377/6 198/378/6 193/379/6 +f 195/380/18 198/381/18 199/382/18 197/383/18 +f 181/384/5 187/385/5 186/386/5 189/373/5 +f 177/387/6 188/388/6 183/389/6 182/390/6 +f 196/391/5 195/392/5 197/393/5 194/394/5 +f 179/395/17 178/396/17 188/397/17 177/387/17 +f 178/398/5 179/395/5 190/399/5 192/400/5 +f 204/401/17 215/402/17 211/403/17 205/404/17 +f 206/405/17 207/406/17 216/407/17 214/408/17 +f 215/409/6 204/410/6 208/411/6 209/412/6 +f 217/413/18 220/414/18 218/415/18 224/416/18 +f 213/417/15 210/418/15 209/419/15 208/411/15 +f 224/420/6 223/421/6 222/422/6 217/423/6 +f 219/424/16 222/425/16 223/426/16 221/427/16 +f 205/428/5 211/429/5 210/430/5 213/417/5 +f 201/431/6 212/432/6 207/433/6 206/434/6 +f 220/435/5 219/436/5 221/437/5 218/438/5 +f 203/439/15 202/440/15 212/441/15 201/431/15 +f 202/442/5 203/439/5 214/443/5 216/444/5 +f 228/445/18 239/446/18 235/447/18 229/448/18 +f 230/449/18 231/450/18 240/451/18 238/452/18 +f 239/453/6 228/454/6 232/455/6 233/456/6 +f 241/457/15 244/458/15 242/459/15 248/460/15 +f 237/461/16 234/462/16 233/463/16 232/455/16 +f 248/464/6 247/465/6 246/466/6 241/467/6 +f 243/468/17 246/469/17 247/470/17 245/471/17 +f 229/472/5 235/473/5 234/474/5 237/461/5 +f 225/475/6 236/476/6 231/477/6 230/478/6 +f 244/479/5 243/480/5 245/481/5 242/482/5 +f 227/483/16 226/484/16 236/485/16 225/475/16 +f 226/486/5 227/483/5 238/487/5 240/488/5 +f 252/489/16 263/490/16 259/491/16 253/492/16 +f 254/493/16 255/494/16 264/495/16 262/496/16 +f 263/497/6 252/498/6 256/499/6 257/500/6 +f 265/501/17 268/502/17 266/503/17 272/504/17 +f 261/505/18 258/506/18 257/507/18 256/499/18 +f 272/508/6 271/509/6 270/510/6 265/511/6 +f 267/512/15 270/513/15 271/514/15 269/515/15 +f 253/516/5 259/517/5 258/518/5 261/505/5 +f 249/519/6 260/520/6 255/521/6 254/522/6 +f 268/523/5 267/524/5 269/525/5 266/526/5 +f 251/527/18 250/528/18 260/529/18 249/519/18 +f 250/530/5 251/527/5 262/531/5 264/532/5 +f 276/533/8 287/534/8 283/535/8 277/536/8 +f 278/537/8 279/538/8 288/539/8 286/540/8 +f 287/541/6 276/542/6 280/543/6 281/544/6 +f 289/545/9 292/546/9 290/547/9 296/548/9 +f 285/549/10 282/550/10 281/551/10 280/543/10 +f 296/552/6 295/553/6 294/554/6 289/555/6 +f 291/556/7 294/557/7 295/558/7 293/559/7 +f 277/560/5 283/561/5 282/562/5 285/549/5 +f 273/563/6 284/564/6 279/565/6 278/566/6 +f 292/567/5 291/568/5 293/569/5 290/570/5 +f 275/571/10 274/572/10 284/573/10 273/563/10 +f 274/574/5 275/571/5 286/575/5 288/576/5 +f 300/577/10 311/578/10 307/579/10 301/580/10 +f 302/581/10 303/582/10 312/583/10 310/584/10 +f 311/585/6 300/586/6 304/587/6 305/588/6 +f 313/589/7 316/590/7 314/591/7 320/592/7 +f 309/593/8 306/594/8 305/595/8 304/587/8 +f 320/596/6 319/597/6 318/598/6 313/599/6 +f 315/600/9 318/601/9 319/602/9 317/603/9 +f 301/604/5 307/605/5 306/606/5 309/593/5 +f 297/607/6 308/608/6 303/609/6 302/610/6 +f 316/611/5 315/612/5 317/613/5 314/614/5 +f 299/615/8 298/616/8 308/617/8 297/607/8 +f 298/618/5 299/615/5 310/619/5 312/620/5 +f 324/621/9 335/622/9 331/623/9 325/624/9 +f 326/625/9 327/626/9 336/627/9 334/628/9 +f 335/629/6 324/630/6 328/631/6 329/632/6 +f 337/633/10 340/634/10 338/635/10 344/636/10 +f 333/637/7 330/638/7 329/639/7 328/631/7 +f 344/640/6 343/641/6 342/642/6 337/643/6 +f 339/644/8 342/645/8 343/646/8 341/647/8 +f 325/648/5 331/649/5 330/650/5 333/637/5 +f 321/651/6 332/652/6 327/653/6 326/654/6 +f 340/655/5 339/656/5 341/657/5 338/658/5 +f 323/659/7 322/660/7 332/661/7 321/651/7 +f 322/662/5 323/659/5 334/663/5 336/664/5 +f 348/665/7 359/666/7 355/667/7 349/668/7 +f 350/669/7 351/670/7 360/671/7 358/672/7 +f 359/673/6 348/674/6 352/675/6 353/676/6 +f 361/677/8 364/678/8 362/679/8 368/680/8 +f 357/681/9 354/682/9 353/683/9 352/675/9 +f 368/684/6 367/685/6 366/686/6 361/687/6 +f 363/688/10 366/689/10 367/690/10 365/691/10 +f 349/692/5 355/693/5 354/694/5 357/681/5 +f 345/695/6 356/696/6 351/697/6 350/698/6 +f 364/699/5 363/700/5 365/701/5 362/702/5 +f 347/703/9 346/704/9 356/705/9 345/695/9 +f 346/706/5 347/703/5 358/707/5 360/708/5 +f 372/709/4 383/710/4 379/711/4 373/712/4 +f 374/713/4 375/714/4 384/715/4 382/716/4 +f 383/717/6 372/718/6 376/719/6 377/720/6 +f 385/721/2 388/722/2 386/723/2 392/724/2 +f 381/725/1 378/726/1 377/727/1 376/719/1 +f 392/728/6 391/729/6 390/730/6 385/731/6 +f 387/732/3 390/733/3 391/734/3 389/735/3 +f 373/736/5 379/737/5 378/738/5 381/725/5 +f 369/739/6 380/740/6 375/741/6 374/742/6 +f 388/743/5 387/744/5 389/745/5 386/746/5 +f 371/747/1 370/748/1 380/749/1 369/739/1 +f 370/750/5 371/747/5 382/751/5 384/752/5 +f 396/753/1 407/754/1 403/755/1 397/756/1 +f 398/757/1 399/758/1 408/759/1 406/760/1 +f 407/761/6 396/762/6 400/763/6 401/764/6 +f 409/765/3 412/766/3 410/767/3 416/768/3 +f 405/769/4 402/770/4 401/771/4 400/763/4 +f 416/772/6 415/773/6 414/774/6 409/775/6 +f 411/776/2 414/777/2 415/778/2 413/779/2 +f 397/780/5 403/781/5 402/782/5 405/769/5 +f 393/783/6 404/784/6 399/785/6 398/786/6 +f 412/787/5 411/788/5 413/789/5 410/790/5 +f 395/791/4 394/792/4 404/793/4 393/783/4 +f 394/794/5 395/791/5 406/795/5 408/796/5 +f 420/797/3 431/798/3 427/799/3 421/800/3 +f 422/801/3 423/802/3 432/803/3 430/804/3 +f 431/805/6 420/806/6 424/807/6 425/808/6 +f 433/809/4 436/810/4 434/811/4 440/812/4 +f 429/813/2 426/814/2 425/815/2 424/807/2 +f 440/816/6 439/817/6 438/818/6 433/819/6 +f 435/820/1 438/821/1 439/822/1 437/823/1 +f 421/824/5 427/825/5 426/826/5 429/813/5 +f 417/827/6 428/828/6 423/829/6 422/830/6 +f 436/831/5 435/832/5 437/833/5 434/834/5 +f 419/835/2 418/836/2 428/837/2 417/827/2 +f 418/838/5 419/835/5 430/839/5 432/840/5 +f 450/841/16 451/842/16 467/843/16 466/844/16 +f 443/845/10 444/846/10 460/847/10 459/848/10 +f 451/849/8 452/850/8 468/851/8 467/852/8 +f 444/853/12 445/854/12 461/855/12 460/856/12 +f 452/857/14 453/858/14 469/859/14 468/860/14 +f 445/861/1 446/862/1 462/863/1 461/864/1 +f 453/865/4 454/866/4 470/867/4 469/868/4 +f 446/869/17 447/870/17 463/871/17 462/872/17 +f 454/873/15 455/874/15 471/875/15 470/876/15 +f 447/877/9 448/878/9 464/879/9 463/880/9 +f 455/881/7 456/882/7 472/883/7 471/884/7 +f 448/885/11 449/886/11 465/887/11 464/888/11 +f 441/889/3 442/890/3 458/891/3 457/892/3 +f 456/893/13 441/894/13 457/895/13 472/896/13 +f 449/897/2 450/898/2 466/899/2 465/900/2 +f 442/901/18 443/902/18 459/903/18 458/904/18 +f 472/905/19 457/906/19 473/907/19 488/908/19 +f 465/909/20 466/910/20 482/911/20 481/912/20 +f 458/913/21 459/914/21 475/915/21 474/916/21 +f 466/917/22 467/918/22 483/919/22 482/920/22 +f 459/921/23 460/922/23 476/923/23 475/924/23 +f 467/925/24 468/926/24 484/927/24 483/928/24 +f 460/929/25 461/930/25 477/931/25 476/932/25 +f 468/933/26 469/934/26 485/935/26 484/936/26 +f 461/937/27 462/938/27 478/939/27 477/940/27 +f 469/941/28 470/942/28 486/943/28 485/944/28 +f 462/945/29 463/946/29 479/947/29 478/948/29 +f 470/949/30 471/950/30 487/951/30 486/952/30 +f 463/953/31 464/954/31 480/955/31 479/956/31 +f 471/957/32 472/958/32 488/959/32 487/960/32 +f 464/961/33 465/962/33 481/963/33 480/964/33 +f 457/965/34 458/966/34 474/967/34 473/968/34 +f 451/969/35 450/970/35 498/971/35 499/972/35 +f 444/973/36 443/974/36 491/975/36 492/976/36 +f 452/977/37 451/978/37 499/979/37 500/980/37 +f 445/981/38 444/982/38 492/983/38 493/984/38 +f 453/985/39 452/986/39 500/987/39 501/988/39 +f 446/989/40 445/990/40 493/991/40 494/992/40 +f 454/993/41 453/994/41 501/995/41 502/996/41 +f 447/997/42 446/998/42 494/999/42 495/1000/42 +f 455/1001/43 454/1002/43 502/1003/43 503/1004/43 +f 448/1005/44 447/1006/44 495/1007/44 496/1008/44 +f 456/1009/45 455/1010/45 503/1011/45 504/1012/45 +f 449/1013/46 448/1014/46 496/1015/46 497/1016/46 +f 442/1017/47 441/1018/47 489/1019/47 490/1020/47 +f 441/1021/48 456/1022/48 504/1023/48 489/1024/48 +f 450/1025/49 449/1026/49 497/1027/49 498/1028/49 +f 443/1029/50 442/1030/50 490/1031/50 491/1032/50 +f 505/1033/1 506/1034/1 508/1035/1 507/1036/1 +f 507/1037/6 508/1038/6 512/1039/6 511/1040/6 +f 511/1041/4 512/1042/4 510/1043/4 509/1044/4 +f 509/1045/5 510/1046/5 506/1047/5 505/1048/5 +f 507/1037/2 511/1049/2 509/1050/2 505/1048/2 +f 512/1051/3 508/1038/3 506/1047/3 510/1052/3 +f 513/1053/1 514/1054/1 516/1055/1 515/1056/1 +f 515/1057/2 516/1058/2 520/1059/2 519/1060/2 +f 519/1061/4 520/1062/4 518/1063/4 517/1064/4 +f 517/1065/3 518/1066/3 514/1067/3 513/1068/3 +f 515/1057/5 519/1069/5 517/1070/5 513/1068/5 +f 520/1071/6 516/1058/6 514/1067/6 518/1072/6 +f 521/1073/2 522/1074/2 524/1075/2 523/1076/2 +f 523/1077/6 524/1078/6 528/1079/6 527/1080/6 +f 527/1081/3 528/1082/3 526/1083/3 525/1084/3 +f 525/1085/5 526/1086/5 522/1087/5 521/1088/5 +f 523/1077/4 527/1089/4 525/1090/4 521/1088/4 +f 528/1091/1 524/1078/1 522/1087/1 526/1092/1 +f 529/1093/2 530/1094/2 532/1095/2 531/1096/2 +f 531/1097/4 532/1098/4 536/1099/4 535/1100/4 +f 535/1101/3 536/1102/3 534/1103/3 533/1104/3 +f 533/1105/1 534/1106/1 530/1107/1 529/1108/1 +f 531/1097/5 535/1109/5 533/1110/5 529/1108/5 +f 536/1111/6 532/1098/6 530/1107/6 534/1112/6 +f 537/1113/3 538/1114/3 540/1115/3 539/1116/3 +f 539/1117/6 540/1118/6 544/1119/6 543/1120/6 +f 543/1121/2 544/1122/2 542/1123/2 541/1124/2 +f 541/1125/5 542/1126/5 538/1127/5 537/1128/5 +f 539/1117/1 543/1129/1 541/1130/1 537/1128/1 +f 544/1131/4 540/1118/4 538/1127/4 542/1132/4 +f 545/1133/3 546/1134/3 548/1135/3 547/1136/3 +f 547/1137/1 548/1138/1 552/1139/1 551/1140/1 +f 551/1141/2 552/1142/2 550/1143/2 549/1144/2 +f 549/1145/4 550/1146/4 546/1147/4 545/1148/4 +f 547/1137/5 551/1149/5 549/1150/5 545/1148/5 +f 552/1151/6 548/1138/6 546/1147/6 550/1152/6 +f 553/1153/4 554/1154/4 556/1155/4 555/1156/4 +f 555/1157/6 556/1158/6 560/1159/6 559/1160/6 +f 559/1161/1 560/1162/1 558/1163/1 557/1164/1 +f 557/1165/5 558/1166/5 554/1167/5 553/1168/5 +f 555/1157/3 559/1169/3 557/1170/3 553/1168/3 +f 560/1171/2 556/1158/2 554/1167/2 558/1172/2 +f 561/1173/4 562/1174/4 564/1175/4 563/1176/4 +f 563/1177/3 564/1178/3 568/1179/3 567/1180/3 +f 567/1181/1 568/1182/1 566/1183/1 565/1184/1 +f 565/1185/2 566/1186/2 562/1187/2 561/1188/2 +f 563/1177/5 567/1189/5 565/1190/5 561/1188/5 +f 568/1191/6 564/1178/6 562/1187/6 566/1192/6 diff --git a/src/main/resources/assets/overengineered/textures/multiblock/universal_motor.png b/src/main/resources/assets/overengineered/textures/multiblock/universal_motor.png new file mode 100644 index 0000000000000000000000000000000000000000..6ae23b74ae4dfc56c4a5343a71ac2a1d5ea11126 GIT binary patch literal 9608 zcmb`N_cvT$)bK|eA=(!Sq9zC;dL7XvNJI(I&5)>xK8)TaMD%FUiRg?@MlXpndX&)y zF($?^dasYX>s`-Z@ceMjS!dmK?>T$lz4!U-eQ%VWjs`X5JxTxoK>b|vss7Cv@~_P1=2C%+&U(%gjD| zeLjD+eg=7uNW&Mobv&)XdzX!r8mwiNSx#+VZ4tCNFP6!TA3l7DL?U0z*4k>BT39&Q zzMCl0w)OLC9v{g989e0UW7Rf;Kp+Lqi>-(TrNA@K7WK6HaJYqXZbrs?f@RqPt`4>_ z?NyoOh1bcEpS5YBNlr^mHG>E5CGW12FKupa>RmYXspEMF;mNyW#(_?r_{q}R>gq9E z&rb05`I4p7p5V`-_<&VzK?w+07hw@*f(O&r~NT0AED2wS5 z7$GL<2i!JWkvydO#L?D2%skeQf|qA*AP|UN87d{GrS`UlK1YkW{)TXP>(1|NhBwSt z+d;=IYGj?OQYef4rVpG-L9G_P*pz3YUu_+thS;BY)u-PyTNI4As%zN^o{{6#upj z2e+7kjh9euTQF=dtLtN3`Q4`=_m!u&zYAYWjLO&jb?dbYaPBu~U->Ku>2$paBfqAW zSWD*0N zcBt}c#`wPtCvt0;tvOf$sCpAnU~jMlRbMM32rpqm(l?4YVUfQ$`Cbq5#EoUpIKX!k zW7UhYs3bm8`6*uP^i*bJ8T?Ks_#!7%L|K>|j&TL??IBA)8UinN`&iKp?L0&xdMWoGypCc^_GXtBTBU(1$>yQ+HCG*%1Xo%nfcJuX z-{)IJY=8Fm_sg3?)y@YS2efV1UZRr?$!OTpMT%2X2d9UpI#b;J?8=;~1dk7%g1a{k zyVjVH7wgRdQZ+E^I_LNNSL;Ga*w5JpzZ6d<(^H@qD>9AgM;d-cv#EMrUDcMSNaK6K z#N^2hNs6Zfy3!f`3gHpCb&H2^?}m#U|E+gAuV|4mm(xw{4Qz@5KeQ8eZp+pg1KhsU znzMpd!=ybMm?&`X?_$QcIu=e}o^~_^)Ghq*hY<&0ZUI;*?C9}{anR=vF=*3U~lqXdx<#vM!+I(=-u4~!M-rNrATDi( z(|hg5ZB+}5{q;oX%{D|O48>UcC4# zBXepLE*xx>B^{T+SCU2Na?7L z9AG@4{A{W#6O}riqCItg%3yTFkOaYz+5stOI-7Gz$idk$tbNt?Ki*PsT)9OEQaX_e zLh$Ck9K09}zS`fL$i1q+z#DhGr|CFe^k=1IZ@$RVW(w`L8w36ZUu~;1F^71Yyu`_?+p;M;;wP^g zb({s}9X0GzjqUdq(Xb9ZYW*n@`?8)!BgniQ3yod1!JqsNITfMc(5wCOQBvVnOx4^A(d(sajd}80 zioW=<1_EA*YMMuHghgHzR{fg1_4W3Ap)ghu76Nqlt65}n%zPehS=RSeZqPV+V-o@? zY1zUfCScRFgWJvHQz$Q$s+^c&5zqSLj_XV3*|a6EdFM)}(=|=hoWuM4 zJDO(EP#AQOQhPjbZM+}s0JL(8==d3FmzS_{8~ET`ft}0WU%~2 z%^oMsqA9%NELiHE=Z328QqS87a>bp{JFNV#@b^hRDma?S)+ZxO^BDVCKT!iB< zT-rBh%w%9N^-&#HA@ZCjrj4j5*%nysw5vco2k4d8=ya?u`ou65>frK@|Ee!eD7jo@ z!RRi&$Uev&ku~EVIFCET54@3nm18YhBHrUh&s}aG5LYMf*z=rY)uE5bC+oq&escReqe(R(JrsT4#Na;D`+aHjSRBW1v{2jrLd0%wz>|hFW^{w1M7Fbo?oI_ zM{k<|{X;(|u=XZ>^0foVBv2?Xs$)M`B-lIRQNjF9V$wvY7qT~T>K)@n&)aTgiV1f{ zhwcp}8d-xuttpB+n8thiZCQH_CBtllt(_w}-#F4}GNpxM9#3yLkBU&+Zvh_8QU6Y| zR#y0-y*XP~OgK?E9^G21^OC4c69I+y4Ny5X)JPVXvd}YzpX^qUUss#>)2-er@ECk? zuDrSvZrkklXLTJ5T|X+_>zC+5Zn4iJkJjZ1%B?vAx1J)b<~`HRWx>MpVqhAD;Ibj7 zY<`L4Dw*AIzPpht!4(k8#=74dHSYds8TsJx1_BkjoX^^%TL@+M2^>6@eSfZtPjNSD zdW2p$d;5ZWmSjd*3{LYbqc286SK+n2n?MUbV)*UVq(z&^)cL7rHUcJMOv7o(FLCJC zsIxpgbw9Ga$7^U3TZ;UO7B|hwwq*N!t%v5`EGMddowjs(Z*$brNBf^WmJazG0qt%T z^bbE!uM5bOn#(j~0(-tHnC~}TNg1`jat+$g>>=xnR6NLUq>!vrUZZM(?p#3+ewO;t z78IlA1fO6`KV@-7f#Z00)Proe3I_z1%-|HK`QnUaBob+(IZ~|?av`g$~2M-xV z4YF(7T+ryj;j!Cg;Z9rM)%tW&oDCQn+H*QUt-@1w)!_CcT@ED><2Az}V@=iKJ$cfM z^5T#re^&c6T{NG@`*Bx=_vXAYcM> zEJL1C@ni=z<$q$phyT)M`^~A`{%9TlJ^YYE(Y#9cakfC(R+hkMjx5-IzsRqnaZm)i zK7Ez4&j~`j7G5+OZIPmr*ZR8DbPo{x-CiorG-(ZxL;Y333*TuHV}JLZ|Ez7Al;5^T z$bL%j4B%_)R`bS{Q6!_=-Nt%ZYdBkA(a5B}*L*2T_-`3EdN9|rWDV2oG%A!+I(YPS zez>K0RH%xBJ$}-^!!$4;e`M(X$r`@4qjC==hI$PWnL$xalowMchE(?)e|esBTQl{g zKM=%S96)G5!2`4W+V^SCRr_u3OfTLN&vbeeLXSPY2auw)--yA67-&tYOqntbyEwY;TmIVRHCM6@fgZ%ifa zGJhT)WBFB~?^+eoYa;f*A>IWzaAR@#GNHbVPVZugM^M^ACK zWm;#*^uoOpkA0Z2l7RubBpdRWe51%kqjG+H>(Akg@%DPpj?$~Dsu?Np!$v3P;wXed zd3@Nl<|t)^s5L1G_b+Ao3>M505j@nLMJhtx@-%Xh)Qkv9!#nw9BF>on7&ZIEw5Z&t z?x>0FHOxe|u5`0B^0+T9=MmHP0;EV`?u5d16wjpY%Atd=FVzk$Z7bRntlad0^EB*-9kF|gom>jM61}zQ zJbLwSl%InnoBjilK#ORDDtIox0JPxQ3*>rxli7kc5v;kjVn{L}^sFiuRkYV&tjeZv z=$oOO*ds+{B?aCH#KCW^`A9`05}o)0mXQXF>{0T?^TlInMPTFkkyE}UboC`Xo2^40 zwnp!1qhSr~N~jI-Qh5AuNX`eBABhwRJ{@eJnJe~c2*=_(L0a#Ga^WD2oHF^v;~qTk zuV)|M4-MBD*dnG!s~*!1Z{GvA;Z^*giW;cG>Kjl~as;YbvuPFIAsS*9|E<#om?;qi zjHO@ozJF;&WqL~)QDBn4V$cZ;XCG%CdJ>d0#RS`j6x(Enn&asq z>jn*1Lwow^jcl%P37BRO3it2uuxEQGjT}Czpi0#|q~dR){5o(_pCXN?R5qpq9I>f{ zbt&31mUx}2Ns8SnNPjl6wl%?u4GdB7`J?TDh5iK>#~?KlbBD zmg|EMfC}qfhW~!b4&*oIfvgHzX+<@4)!%m+B;_SMc{C?>-v4!+IRQhaM)j%4r2q~v zDy?|!S=16Da}*<^B2V@3F|XJcnv|}EJ;>FBM=^4}`L>eZ%J)*EQ~{%nzq&2CRmsKi zxsRi%%-hN?_kQDhqTif?3(8S9fJp(MNwqh`wcQns^XDiQe-K`_gcA&@p$x*%;1{TuRPsm|HagTG9p!>#CdB-T3?4rx*G zix}ZzbHb#dN}Evw{!4>PH~Np{`_c6%Aw=0ayuz+05B|HHod*@gQd`}sPs91dl;ae= zo1v3DQDj3#=DC3%OGNC=bMIsS*smF-Z9THq0=H~@V9!{RYW5=l*Plb|>iO*0hJ4yk zR#Rh(feq`gsDHdN23UW~wW1!YaPpM7azP6|yA2q${ucWud866#&*3=uVlH@h_s z_d9`-34f0X8N$ZXa+b#{t$%--ZCvM{Zotm(nO6SONNU$sP#&2pta?J(g$1`*|K`Wg z6=|nBm?$PH2wI+ATl1aGpDMbM!ilEJt@W+)r^FmZh`kofh*0%-l4jg#OV+1w1kV>Z zRo*;=LX6a(ALD;ZKJIYz{D%V!^-OfLV#QgeKlN~DMogDhH}8^SVHG_qTrJV~MyyLV zCZ9xv73Vai7vNcBvB_b<-UZQ``cE1bE$s#?(wRKJh^uS}G_;wmhrgT3w>xpWfd4=K z9_5jkOj4HkkW@(pC9u4Jitm_)iA2NWYVb`e#(?DjQKPeoH1?q&R4FHra94RJoL13f zt7W_0?#Erz;roZ1rcb=(leGN3Um9af!|-14-+{fZ>kx~Q!B@k_go?~|{Nn!_jJr+F z&bvM3fHyU?xoITtuo&c ze64q>%S`vCQ`Rw}yj$k?HVM`5iAQvierlQ{dQh!)#*91n1)4s`HWM?uhUt&YKJU%E z<8DMBi`jsJ}#DQ|&gN`p^7xU>avS|#M9XUDvWC<4y`3RGm=%&d&gG>%7-bvuF@ zFAfdok(QQ-$_qp7V6RiB(|tj^LCfibQTSJZVE3DBb}daiMb}c%@amVX`OSrkQQ_=I z*L!nQ#*?FDF+#^a)-OOR%E1_xyUwvTkE8T@L+xtMmehSY0cYz1-j?*q%Ju?k zL8i9CM(pvqW{)Kru9Pl&;;*YGW9W_mM-LYRQtP5FKc~GVyu#VC(aP_1>Rnc~F=lYb z`m?Hq>M*}tixK{nCl^1#EZ^3Y9unXd2%j1AU>Byj^zW+vF zqG()~GpM?_nU(HfDRlKl4vb{n@>*AEL=~s*gzIna-ExWybAZ$J>eVYkX{dH|4Tz zG;_@EQx*(=L7_I)oK&jgVS9a-o`_+boYoJyI@S)WP7#$8i(+ji{4gU8kFlr^|EhP; zYS4xTvEYZJ7)sLt=wJdVm$g4+Cn@*hyEcvIo~5>@zS%DG?DX`G8BZrIvFN8zP0USCWTAIOglyaWiBv82PT~i9uq7YtG4nQf=-|DH7 zXP|}0u$1%NI6ojw*qVf=M3CH9o`WZRf&jG)l?OWM?yW(aNs@7@##JM}8T!d@_$3d& zF=#8uK@g1h(&XQ)Ep^xo<_*>o!L*(n~2SYRTvceQraAZG5?RoqOQR#nii(<3Fq2Q@My~9}QD`54IEvVsqQlQxn z=DYg2ujsaRTl&W$4)!Vw%Gj4t0fR0$8w_t+tNfm!u8ZdjOY{+&?NL}Gcwkafc0)F2i?+5iu z5Zk*sFPOK5kKV`g9_t?jsNP*0Y|G_Kj4W!yTKHf7s+ofVX4h%8+r$<3CX72p*@k4< zu&G_?9JBa7*DGJUvG#3~4Ukx$N}NU#Iq^q08+@dJLCXi?Ja*rjVY#4ptQY_~%R^sB z54^Is!b8>txCs69l0m6x*YmSj%VI#s^_oq>_B4s_z%FZ~#gaqV)IgWW2TDaPs1JnN z2BziKgZM#4eR)h=yV?7$?ZSPL3xxKUaj1%m*|D8gZ*W-3#b8>w4-gNeBXu?ChUf5hdXif;YV_}*tL<5t(^|T zR9IrO>Nk+s1o%R~vaY|I?sl>LDn(2`@gBoh2Ok_ylX!`D7TZz0aJJwHg(Zd_&`V9c ztf6!^u6gKu_pMu0=-YbcA$pOfr-Lj8G;@E=SZGD7YvpM4mz={>FIB57K;UL5=2#II9H;o1SaYCwmMn%ed&k=VU4KJT;QCfm=j9il{yQv(g>xtzm9YWv#idf zj`A}XI(zlI2$j_{#){mWo-5T}^bFxp9S! zvdm*RJspi-rT1I?v4w=8Q*PUMVm}A$g+UZ72Sr`VO955|9-&8OvIYL4m>i58QRjbf zSdM>lqumoM&*5C5kYW@DdotGWYd$6Ote?*q1f|XrM(QgmSeDbBZ~y z&<=tnSW}8tfcfZ!G8Hv82y6`8W%Hnb( zFsIC}o24h!Q_v=mCmV8taG)RoO#A{Vi`i=Pw6t5Lf+_fBAyMflp_xeVjMb#cd2HU0 zblgOKu^#eULf0^qQdE9s%7Ak99Upn^H`(Uz@%^!z3zz}vnSR5E+)(m=tJbgzva%c_ zIy*a`2p@xv>(WY_mFj`kB*4$s0OyhF)*_18JYe2wJ)Lne_O2@QLlCZk9grm<` z=BD(QvZmgR4&u>zvj@#hj5A#)leC6SSLxfVcKo4|mqDpVU}PZN$rTSj>vWf~-0j zQK_mv4J06PyT6g~RC_m-j!Xz5u~1R&Xu_jSh0hxL;SfwlbG%s4H>p^$M`l!&H%QAS zI~Mk{)}_M!Hb9z7#@CydnRhxa6#8Gegw;hdwZ6i~7JC@YCu`Y9(4BAZbb-xB$i%_K zcM~b)ke}sgT+s7%#A4nP1%h|L+jWKTna|o4G^esMhl)sPopmQJ@|cv%8T&~GNB*9_ z6z1MWzq+_&#)jrBSiiDF6~***T6oyZ!E6OIrlSYQY?;5W`Gr|`Qrev!UxZ&dCCJl` z$p5UBV~(%MqTWmp>up?nfJ5bw_~dts7cgWSm=x2K`GxAX3>mGR%Dz%fV&zX4z(g<9 z6WNYcL082&sDA&GIS%=w5NF$pub?^Dp6fo;dgkOQJaz;SQxpyGro(^dPyDnkJb)hp zgzM*q773Zc3;Q>YG95p8U{@2gMz|DEtSlm9qYd)bbbxUs6)I09bGn}p0nA2R@avN1 zjvb$=;c*E7@;NGXm8IKZmnpj7_Dlkn@0hJzmpGXK|I^ou`!{Qax zPeGtx4Pu}A6Uw=@Oas|i5OasfkEH5KH!@{86mLs;cD!0(o=>!w_lvk@zcgpT}4 zz1Z>qRMnauVL1S%XY3^F!Hr_oNxMm$tbM?OpEquqxBrxjjJ^hV?<3STP4>m-{jnX) zfK@WLG3VS*y2NrwUdd<(gXE2Cx{hUYc%6-$Y+X88#dMqwyPApq5OPR6OFLr=QHVtk z!gqg_yux0;nJ7~0jeqMd+D|PRH_{M_1%-rS5}Rx5lRO@j#P9bf0td*jb?bjQ<)Z8VJ?;3Xp!eaD z@~#k9AAR-Ei5_=H^E0B})Nid_4v}~JSiY;|4+yYher&x>upkVlLJ&4Hnuik;$fRXr z#E0B0fOboLikfGknh{H<$c+A095_AaWC6o|xOw1wurp!0q(h#Sx{EO=&bI#6>>7Y! z6_Fg-{v#9CFRGZNZ0T~}dnwR+>8Og4fU(l#!2D!E0<%N4kZr*46^vIwTFe=mTPduw z(2IARh&>g*X1hF|!S6p$1hnvDvV!&=QQT~UJho3@15A1W(VziXdt;6tNCBtA6xD9p zw$*mLcoc3(EGWo&FjvhqTw@issq;4Pp3+$R?b zPaWGW3|v)ZD^;u=(@*tBPV4GMtbDpWKkl%KI!JLl^g@T@Y!dExZjip~{qF$NwqBHJ z<_20TuyF=*Ny8+V*d8FC+V%7n|yLN^#XHw!uvuhkQ9G2Or~C9Bns zRS-auC<%e5HL~K8d(9H4P6o*~sI`^nb8}x~;W;jaP%6nMP6Cp$tY{%J^k$?ByO~{( z%acnVB5?Dc2v##IK;UJ2NTgA(FfSdCwRNP5s1adjAfL6rpxg8c(pe_K&l2enT~wjK zS3=?$Fc%GVCRGc23jWe)6bZK=^lu=w%}==$?jPfY&&I9j*hh@WFY)X5LGx=_+Y4Ko zxO}=cvX9AUoio5tg}3uF^c7S`SwViyDYq(^3t3-+NjAt824Fb)bUPoMrx*<`F3IKj&Q1?)lNWw>WkdTw zvl_>@H-j->Ix|}GKf6JuyaKLU5oiXgi;r}=_01$7nJ4q|o^Y#1-=F+w432qB_dq6Y zvI=TbV(?HfkTN95PwpNpTR82TM#xPH?$x(qcFo2jclG!bIWA?}1PZY8vhg~Eu_N@I zQXB_l$uGO2%w5|WoQcsovROH&mn6``@assWi$88eqBtg1C$|;ZY*nC5o-)P2a((Os zf9fpBTtYs_^-lJzla={<-OqlQ1xQyvAVSwEG8iTN3k`YIv7B)rOF57KmQzEQn28#PzXa<;Hx zW-=q@?p!K-$LAB7-PNK(s5!0DZo* z4+bGdWQpZ5snW>Q^;O))sa8Isso7A|C~5KBSxL?pXLCHwlIHmQS|sx3!Qr@#sL)`M z5DDtIZwMd?m**S@bHCT)URLY%FP%uI*h1vB$%%KbO)GO?1PZj`o^4#RarxQHdp`9* zKO=rL=F;Ot9Bk+46fGNmRq04mzxZd z*7^h7uLM#bM8LlaieUqWjWB$`@Dqkz;9`U;8DaRD9Dad|6Ry*~IN_QRy|alkADDAF zjL1oe^IYQM6MZp)InCi@P7aA#hZNGc7P0DF3*f4P+tOiVR$eu&#$u}s233x z|3vbm$PDJK&=>-CAN@Rs{MFeOUH4NgVEGX_r>&Gxm)1gijLO-IXb_%M)1dQehiGIp zqEkk$d_dHNFGXEjUB#Uux=bZp)fe88g{4)xXm&mINKzXVyRTxf)ARQvFVUbA!McfD zt>h+ Date: Wed, 6 Dec 2023 01:35:19 +0100 Subject: [PATCH 03/13] =?UTF-8?q?Rotating=20model=20180=C2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/multiblock/obj/universal_motor.obj | 1140 ++++++++-------- .../obj/universal_motor_mirrored.obj | 1142 ++++++++--------- .../multiblock/obj/universal_motor_rotor.obj | 1110 ++++++++-------- 3 files changed, 1696 insertions(+), 1696 deletions(-) diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj index 3f2b967..3666780 100644 --- a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj @@ -2,614 +2,614 @@ # www.blender.org mtllib universal_motor.mtl o Stator_Stator.Baseplate -v 2.000000 0.500000 1.000000 -v 2.000000 0.000000 1.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 0.000000 1.000000 -v -1.000000 0.500000 2.000000 -v 2.000000 0.500000 2.000000 -v 2.000000 0.000000 2.000000 -v -1.000000 0.000000 2.000000 -v 2.000000 0.500000 0.000000 -v 2.000000 0.000000 0.000000 v -1.000000 0.500000 0.000000 v -1.000000 0.000000 0.000000 -v -1.000000 0.500000 -1.000000 +v 2.000000 0.500000 -0.000000 +v 2.000000 0.000000 -0.000000 v 2.000000 0.500000 -1.000000 -v 2.000000 0.000000 -1.000000 +v -1.000000 0.500000 -1.000000 v -1.000000 0.000000 -1.000000 -v 2.000000 0.500000 0.000000 -v 2.000000 0.000000 0.000000 -v 1.500000 0.500000 0.000000 -v 1.500000 0.000000 0.000000 -v 1.500000 0.500000 1.000000 +v 2.000000 0.000000 -1.000000 +v -1.000000 0.500000 1.000000 +v -1.000000 0.000000 1.000000 v 2.000000 0.500000 1.000000 v 2.000000 0.000000 1.000000 -v 1.500000 0.000000 1.000000 -v -0.500000 0.500000 0.000000 -v -0.500000 0.000000 0.000000 -v -1.000000 0.500000 -0.000000 -v -1.000000 0.000000 -0.000000 +v 2.000000 0.500000 2.000000 +v -1.000000 0.500000 2.000000 +v -1.000000 0.000000 2.000000 +v 2.000000 0.000000 2.000000 v -1.000000 0.500000 1.000000 +v -1.000000 0.000000 1.000000 v -0.500000 0.500000 1.000000 v -0.500000 0.000000 1.000000 -v -1.000000 0.000000 1.000000 +v -0.500000 0.500000 0.000000 v -1.000000 0.500000 0.000000 -v -1.000000 1.000000 0.000000 -v -1.000000 0.500000 -1.000000 -v -1.000000 1.000000 -1.000000 -v 0.000000 0.500000 0.000000 -v 0.000000 1.000000 0.000000 -v 0.000000 0.500000 -1.000000 -v 0.000000 1.000000 -1.000000 -v 1.000000 0.500000 0.000000 -v 1.000000 2.000000 0.000000 -v 1.000000 0.500000 -1.000000 -v 1.000000 2.000000 -1.000000 -v 2.000000 0.500000 0.000000 -v 2.000000 2.000000 0.000000 -v 2.000000 0.500000 -1.000000 -v 2.000000 2.000000 -1.000000 -v 0.250000 1.250000 1.625000 -v 0.250000 1.250000 1.375000 -v 0.750000 1.250000 1.625000 -v 0.750000 1.250000 1.375000 -v 0.250000 1.750000 1.625000 -v 0.250000 1.750000 1.375000 -v 0.750000 1.750000 1.375000 -v 0.750000 1.750000 1.625000 -v 0.125000 0.500000 1.625000 -v 0.250000 1.250000 1.625000 -v 0.125000 0.500000 1.375000 -v 0.250000 1.250000 1.375000 -v 0.250000 0.500000 1.625000 -v 0.375000 1.250000 1.625000 -v 0.250000 0.500000 1.375000 -v 0.375000 1.250000 1.375000 -v 0.875000 0.500000 1.375000 -v 0.750000 1.250000 1.375000 -v 0.875000 0.500000 1.625000 -v 0.750000 1.250000 1.625000 -v 0.750000 0.500000 1.375000 -v 0.625000 1.250000 1.375000 -v 0.750000 0.500000 1.625000 -v 0.625000 1.250000 1.625000 -v 0.250000 1.250000 -0.625000 -v 0.250000 1.250000 -0.375000 +v -1.000000 0.000000 0.000000 +v -0.500000 0.000000 0.000000 +v 1.500000 0.500000 1.000000 +v 1.500000 0.000000 1.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 0.000000 1.000000 +v 2.000000 0.500000 -0.000000 +v 1.500000 0.500000 -0.000000 +v 1.500000 0.000000 -0.000000 +v 2.000000 0.000000 -0.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 1.000000 1.000000 +v 2.000000 0.500000 2.000000 +v 2.000000 1.000000 2.000000 +v 1.000000 0.500000 1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 0.500000 2.000000 +v 1.000000 1.000000 2.000000 +v 0.000000 0.500000 1.000000 +v 0.000000 2.000000 1.000000 +v 0.000000 0.500000 2.000000 +v 0.000000 2.000000 2.000000 +v -1.000000 0.500000 1.000000 +v -1.000000 2.000000 1.000000 +v -1.000000 0.500000 2.000000 +v -1.000000 2.000000 2.000000 v 0.750000 1.250000 -0.625000 v 0.750000 1.250000 -0.375000 -v 0.250000 1.750000 -0.625000 -v 0.250000 1.750000 -0.375000 -v 0.750000 1.750000 -0.375000 -v 0.750000 1.750000 -0.625000 -v 0.125000 0.500000 -0.625000 v 0.250000 1.250000 -0.625000 -v 0.125000 0.500000 -0.375000 v 0.250000 1.250000 -0.375000 -v 0.250000 0.500000 -0.625000 -v 0.375000 1.250000 -0.625000 -v 0.250000 0.500000 -0.375000 -v 0.375000 1.250000 -0.375000 -v 0.875000 0.500000 -0.375000 -v 0.750000 1.250000 -0.375000 +v 0.750000 1.750000 -0.625000 +v 0.750000 1.750000 -0.375000 +v 0.250000 1.750000 -0.375000 +v 0.250000 1.750000 -0.625000 v 0.875000 0.500000 -0.625000 v 0.750000 1.250000 -0.625000 -v 0.750000 0.500000 -0.375000 -v 0.625000 1.250000 -0.375000 +v 0.875000 0.500000 -0.375000 +v 0.750000 1.250000 -0.375000 v 0.750000 0.500000 -0.625000 v 0.625000 1.250000 -0.625000 -v 1.875000 1.625000 0.625000 -v 1.875000 1.226562 0.250000 -v 1.875000 1.625000 0.375000 -v 2.000000 1.226562 0.750000 -v 1.937500 1.625000 0.625000 -v 2.000000 1.226562 0.250000 -v 1.937500 1.625000 0.375000 -v 1.875000 1.375000 0.625000 -v 1.875000 1.375000 0.375000 -v 2.000000 1.375000 0.375000 -v 2.000000 1.375000 0.625000 -v 1.875000 1.226562 0.750000 -v 1.665942 0.720558 0.750000 -v 2.000000 0.720558 0.750000 -v 1.665942 0.720558 0.250000 -v 2.000000 0.720558 0.250000 -v 1.665942 0.498832 0.250000 -v 2.000000 0.498832 0.250000 -v 2.000000 0.498832 0.750000 -v 1.665942 0.498832 0.750000 -v -0.875000 1.625000 0.625000 -v -0.875000 1.226562 0.250000 +v 0.750000 0.500000 -0.375000 +v 0.625000 1.250000 -0.375000 +v 0.125000 0.500000 -0.375000 +v 0.250000 1.250000 -0.375000 +v 0.125000 0.500000 -0.625000 +v 0.250000 1.250000 -0.625000 +v 0.250000 0.500000 -0.375000 +v 0.375000 1.250000 -0.375000 +v 0.250000 0.500000 -0.625000 +v 0.375000 1.250000 -0.625000 +v 0.750000 1.250000 1.625000 +v 0.750000 1.250000 1.375000 +v 0.250000 1.250000 1.625000 +v 0.250000 1.250000 1.375000 +v 0.750000 1.750000 1.625000 +v 0.750000 1.750000 1.375000 +v 0.250000 1.750000 1.375000 +v 0.250000 1.750000 1.625000 +v 0.875000 0.500000 1.625000 +v 0.750000 1.250000 1.625000 +v 0.875000 0.500000 1.375000 +v 0.750000 1.250000 1.375000 +v 0.750000 0.500000 1.625000 +v 0.625000 1.250000 1.625000 +v 0.750000 0.500000 1.375000 +v 0.625000 1.250000 1.375000 +v 0.125000 0.500000 1.375000 +v 0.250000 1.250000 1.375000 +v 0.125000 0.500000 1.625000 +v 0.250000 1.250000 1.625000 +v 0.250000 0.500000 1.375000 +v 0.375000 1.250000 1.375000 +v 0.250000 0.500000 1.625000 +v 0.375000 1.250000 1.625000 v -0.875000 1.625000 0.375000 -v -1.000000 1.226562 0.750000 -v -0.937500 1.625000 0.625000 +v -0.875000 1.226562 0.750000 +v -0.875000 1.625000 0.625000 v -1.000000 1.226562 0.250000 v -0.937500 1.625000 0.375000 -v -0.875000 1.375000 0.625000 +v -1.000000 1.226562 0.750000 +v -0.937500 1.625000 0.625000 v -0.875000 1.375000 0.375000 -v -1.000000 1.375000 0.375000 +v -0.875000 1.375000 0.625000 v -1.000000 1.375000 0.625000 -v -0.875000 1.226562 0.750000 -v -0.665942 0.720558 0.750000 -v -1.000000 0.720558 0.750000 +v -1.000000 1.375000 0.375000 +v -0.875000 1.226562 0.250000 v -0.665942 0.720558 0.250000 v -1.000000 0.720558 0.250000 -v -0.665942 0.498832 0.250000 -v -1.000000 0.498832 0.250000 -v -1.000000 0.498832 0.750000 +v -0.665942 0.720558 0.750000 +v -1.000000 0.720558 0.750000 v -0.665942 0.498832 0.750000 -v 0.761080 2.812536 0.251077 -v 0.761080 2.812536 0.748923 -v 1.243492 2.612714 0.251077 -v 1.243492 2.612714 0.748923 -v 1.612714 2.243492 0.251077 -v 1.612714 2.243492 0.748923 -v 1.812536 1.761080 0.251077 -v 1.812536 1.761080 0.748923 -v 1.812536 1.238920 0.251077 -v 1.812536 1.238920 0.748923 -v 1.612714 0.756508 0.251077 -v 1.612714 0.756508 0.748923 -v 1.243492 0.387286 0.251077 -v 1.243492 0.387286 0.748923 -v 0.761080 0.187464 0.251077 -v 0.761080 0.187464 0.748923 -v 0.238921 0.187464 0.251077 -v 0.238921 0.187464 0.748923 -v -0.243492 0.387286 0.251077 -v -0.243492 0.387286 0.748923 -v -0.612714 0.756508 0.251077 -v -0.612714 0.756508 0.748923 -v -0.812536 1.238920 0.251077 -v -0.812536 1.238920 0.748923 -v -0.812536 1.761080 0.251077 -v -0.812536 1.761080 0.748923 -v -0.612714 2.243492 0.251077 +v -1.000000 0.498832 0.750000 +v -1.000000 0.498832 0.250000 +v -0.665942 0.498832 0.250000 +v 1.875000 1.625000 0.375000 +v 1.875000 1.226562 0.750000 +v 1.875000 1.625000 0.625000 +v 2.000000 1.226562 0.250000 +v 1.937500 1.625000 0.375000 +v 2.000000 1.226562 0.750000 +v 1.937500 1.625000 0.625000 +v 1.875000 1.375000 0.375000 +v 1.875000 1.375000 0.625000 +v 2.000000 1.375000 0.625000 +v 2.000000 1.375000 0.375000 +v 1.875000 1.226562 0.250000 +v 1.665942 0.720558 0.250000 +v 2.000000 0.720558 0.250000 +v 1.665942 0.720558 0.750000 +v 2.000000 0.720558 0.750000 +v 1.665942 0.498832 0.750000 +v 2.000000 0.498832 0.750000 +v 2.000000 0.498832 0.250000 +v 1.665942 0.498832 0.250000 +v 0.238920 2.812536 0.748923 +v 0.238920 2.812536 0.251077 +v -0.243492 2.612714 0.748923 +v -0.243492 2.612714 0.251077 v -0.612714 2.243492 0.748923 -v -0.243491 2.612714 0.251077 -v -0.243491 2.612714 0.748923 -v 0.238921 2.812536 0.251077 -v 0.238921 2.812536 0.748923 -v 1.279065 2.665954 0.251077 -v 0.773571 2.875336 0.251077 -v 0.773571 2.875336 0.748923 -v 1.279065 2.665954 0.748923 -v 1.665954 2.279065 0.251077 -v 1.665954 2.279065 0.748923 -v 1.875336 1.773571 0.251077 -v 1.875336 1.773571 0.748923 -v 1.875336 1.226429 0.251077 -v 1.875336 1.226429 0.748923 -v 1.665954 0.720935 0.251077 -v 1.665954 0.720934 0.748923 -v 1.279065 0.334046 0.251077 -v 1.279065 0.334046 0.748923 -v 0.773571 0.124664 0.251077 -v 0.773571 0.124664 0.748923 -v 0.226429 0.124664 0.251077 -v 0.226429 0.124664 0.748923 -v -0.279065 0.334046 0.251077 -v -0.279065 0.334046 0.748923 -v -0.665954 0.720934 0.251077 -v -0.665954 0.720934 0.748923 -v -0.875336 1.226429 0.251077 -v -0.875336 1.226429 0.748923 -v -0.875336 1.773571 0.251077 -v -0.875336 1.773571 0.748923 -v -0.665954 2.279066 0.251077 -v -0.665954 2.279066 0.748923 -v -0.279065 2.665954 0.251077 +v -0.612714 2.243492 0.251077 +v -0.812536 1.761080 0.748923 +v -0.812536 1.761080 0.251077 +v -0.812536 1.238920 0.748923 +v -0.812536 1.238920 0.251077 +v -0.612714 0.756508 0.748923 +v -0.612714 0.756508 0.251077 +v -0.243492 0.387286 0.748923 +v -0.243492 0.387286 0.251077 +v 0.238920 0.187464 0.748923 +v 0.238920 0.187464 0.251077 +v 0.761079 0.187464 0.748923 +v 0.761079 0.187464 0.251077 +v 1.243492 0.387286 0.748923 +v 1.243492 0.387286 0.251077 +v 1.612714 0.756508 0.748923 +v 1.612714 0.756508 0.251077 +v 1.812536 1.238920 0.748923 +v 1.812536 1.238920 0.251077 +v 1.812536 1.761080 0.748923 +v 1.812536 1.761080 0.251077 +v 1.612714 2.243492 0.748923 +v 1.612714 2.243492 0.251077 +v 1.243491 2.612714 0.748923 +v 1.243491 2.612714 0.251077 +v 0.761079 2.812536 0.748923 +v 0.761079 2.812536 0.251077 v -0.279065 2.665954 0.748923 -v 0.226429 2.875336 0.251077 v 0.226429 2.875336 0.748923 -v 0.312500 0.250000 0.312500 +v 0.226429 2.875336 0.251077 +v -0.279065 2.665954 0.251077 +v -0.665954 2.279065 0.748923 +v -0.665954 2.279065 0.251077 +v -0.875336 1.773571 0.748923 +v -0.875336 1.773571 0.251077 +v -0.875336 1.226429 0.748923 +v -0.875336 1.226429 0.251077 +v -0.665954 0.720935 0.748923 +v -0.665954 0.720934 0.251077 +v -0.279065 0.334046 0.748923 +v -0.279065 0.334046 0.251077 +v 0.226429 0.124664 0.748923 +v 0.226429 0.124664 0.251077 +v 0.773571 0.124664 0.748923 +v 0.773571 0.124664 0.251077 +v 1.279065 0.334046 0.748923 +v 1.279065 0.334046 0.251077 +v 1.665954 0.720934 0.748923 +v 1.665954 0.720934 0.251077 +v 1.875336 1.226429 0.748923 +v 1.875336 1.226429 0.251077 +v 1.875336 1.773571 0.748923 +v 1.875336 1.773571 0.251077 +v 1.665954 2.279066 0.748923 +v 1.665954 2.279066 0.251077 +v 1.279065 2.665954 0.748923 +v 1.279065 2.665954 0.251077 +v 0.773571 2.875336 0.748923 +v 0.773571 2.875336 0.251077 v 0.687500 0.250000 0.687500 -v 0.312500 0.250000 0.687500 -v 0.312500 0.500000 0.312500 -v 0.312500 0.500000 0.687500 -v 0.312500 0.187500 0.312500 -v 0.687500 0.187500 0.312500 -v 0.312500 0.562500 0.312500 -v 0.687500 0.562500 0.312500 -v 0.687500 0.562500 0.687500 -v 0.687500 0.500000 0.687500 +v 0.312500 0.250000 0.312500 v 0.687500 0.250000 0.312500 -v 0.312500 0.562500 0.687500 -v 0.312500 0.187500 0.687500 +v 0.687500 0.500000 0.687500 v 0.687500 0.500000 0.312500 v 0.687500 0.187500 0.687500 -v 0.375000 0.250000 0.375000 -v 0.375000 0.500000 0.625000 +v 0.312500 0.187500 0.687500 +v 0.687500 0.562500 0.687500 +v 0.312500 0.562500 0.687500 +v 0.312500 0.562500 0.312500 +v 0.312500 0.500000 0.312500 +v 0.312500 0.250000 0.687500 +v 0.687500 0.562500 0.312500 +v 0.687500 0.187500 0.312500 +v 0.312500 0.500000 0.687500 +v 0.312500 0.187500 0.312500 v 0.625000 0.250000 0.625000 -v 0.375000 0.250000 0.625000 -v 0.625000 0.500000 0.625000 -v 0.625000 0.250000 0.375000 v 0.625000 0.500000 0.375000 +v 0.375000 0.250000 0.375000 +v 0.625000 0.250000 0.375000 v 0.375000 0.500000 0.375000 -v -0.151582 0.416903 0.312500 -v 0.194873 0.273397 0.687500 -v -0.151582 0.416904 0.687500 -v -0.055911 0.647874 0.312500 -v -0.055911 0.647874 0.687500 -v -0.175499 0.359161 0.312500 -v 0.170955 0.215655 0.312500 -v -0.031993 0.705616 0.312500 -v 0.314462 0.562110 0.312500 -v 0.314462 0.562110 0.687500 -v 0.290544 0.504367 0.687500 -v 0.194873 0.273397 0.312500 -v -0.031993 0.705616 0.687500 -v -0.175499 0.359161 0.687500 -v 0.290544 0.504367 0.312500 -v 0.170955 0.215655 0.687500 -v -0.093839 0.392986 0.375000 -v 0.001832 0.623956 0.625000 -v 0.137131 0.297315 0.625000 -v -0.093839 0.392986 0.625000 -v 0.232801 0.528285 0.625000 -v 0.137131 0.297315 0.375000 -v 0.232801 0.528285 0.375000 -v 0.001832 0.623956 0.375000 -v 1.151582 2.583096 0.312500 -v 0.805127 2.726602 0.687501 -v 1.151582 2.583096 0.687501 -v 1.055911 2.352126 0.312500 -v 1.055911 2.352126 0.687500 -v 1.175500 2.640838 0.312501 -v 0.829045 2.784345 0.312501 -v 1.031993 2.294384 0.312500 -v 0.685539 2.437890 0.312500 -v 0.685539 2.437890 0.687500 -v 0.709456 2.495632 0.687500 -v 0.805127 2.726602 0.312501 -v 1.031993 2.294384 0.687500 -v 1.175500 2.640838 0.687501 -v 0.709456 2.495632 0.312500 -v 0.829045 2.784345 0.687501 -v 1.093840 2.607014 0.375001 -v 0.998169 2.376044 0.625000 -v 0.862870 2.702685 0.625000 -v 1.093840 2.607014 0.625000 -v 0.767199 2.471715 0.625000 -v 0.862870 2.702685 0.375001 -v 0.767199 2.471715 0.375000 -v 0.998169 2.376044 0.375000 -v -0.583097 2.151581 0.312500 -v -0.726603 1.805126 0.687500 -v -0.583097 2.151581 0.687500 -v -0.352127 2.055910 0.312500 -v -0.352127 2.055910 0.687500 -v -0.640839 2.175498 0.312500 -v -0.784346 1.829043 0.312500 -v -0.294385 2.031992 0.312500 -v -0.437891 1.685537 0.312500 -v -0.437890 1.685537 0.687500 -v -0.495633 1.709455 0.687500 -v -0.726603 1.805126 0.312500 -v -0.294384 2.031992 0.687500 -v -0.640839 2.175498 0.687500 -v -0.495633 1.709455 0.312500 -v -0.784345 1.829043 0.687500 -v -0.607014 2.093838 0.375000 -v -0.376045 1.998168 0.625000 -v -0.702685 1.862868 0.625000 -v -0.607014 2.093838 0.625000 -v -0.471715 1.767197 0.625000 -v -0.702685 1.862868 0.375000 -v -0.471715 1.767198 0.375000 -v -0.376045 1.998168 0.375000 -v 1.583096 0.848418 0.312500 -v 1.726603 1.194873 0.687500 -v 1.583096 0.848418 0.687500 -v 1.352126 0.944089 0.312500 -v 1.352126 0.944089 0.687500 -v 1.640839 0.824500 0.312500 -v 1.784345 1.170955 0.312500 -v 1.294384 0.968007 0.312500 -v 1.437890 1.314461 0.312500 -v 1.437890 1.314461 0.687500 -v 1.495633 1.290544 0.687500 -v 1.726603 1.194873 0.312500 -v 1.294384 0.968007 0.687500 -v 1.640839 0.824500 0.687500 -v 1.495633 1.290544 0.312500 -v 1.784345 1.170955 0.687500 -v 1.607014 0.906160 0.375000 -v 1.376044 1.001831 0.625000 -v 1.702685 1.137130 0.625000 -v 1.607014 0.906161 0.625000 -v 1.471715 1.232801 0.625000 -v 1.702685 1.137130 0.375000 -v 1.471715 1.232801 0.375000 -v 1.376044 1.001832 0.375000 -v 1.726603 1.805126 0.312500 -v 1.583096 2.151581 0.687500 -v 1.726602 1.805126 0.687500 -v 1.495633 1.709456 0.312500 -v 1.495633 1.709456 0.687500 -v 1.784345 1.829044 0.312500 -v 1.640839 2.175499 0.312500 -v 1.437890 1.685538 0.312500 -v 1.294384 2.031993 0.312500 -v 1.294384 2.031993 0.687500 -v 1.352126 2.055911 0.687500 -v 1.583096 2.151581 0.312500 -v 1.437890 1.685538 0.687500 -v 1.784345 1.829044 0.687500 -v 1.352126 2.055911 0.312500 -v 1.640839 2.175499 0.687500 -v 1.702685 1.862869 0.375000 -v 1.471715 1.767198 0.625000 -v 1.607014 2.093839 0.625000 -v 1.702685 1.862869 0.625000 -v 1.376044 1.998168 0.625000 -v 1.607014 2.093839 0.375000 -v 1.376044 1.998168 0.375000 -v 1.471715 1.767198 0.375000 -v -0.726602 1.194872 0.312500 -v -0.583095 0.848417 0.687500 -v -0.726602 1.194872 0.687500 -v -0.495632 1.290543 0.312500 -v -0.495632 1.290543 0.687500 -v -0.784345 1.170954 0.312500 -v -0.640838 0.824499 0.312500 -v -0.437890 1.314461 0.312500 -v -0.294383 0.968006 0.312500 -v -0.294383 0.968006 0.687500 -v -0.352126 0.944088 0.687500 -v -0.583096 0.848417 0.312500 -v -0.437890 1.314461 0.687500 -v -0.784345 1.170954 0.687500 -v -0.352126 0.944088 0.312500 -v -0.640838 0.824499 0.687500 -v -0.702685 1.137129 0.375000 -v -0.471715 1.232800 0.625000 -v -0.607013 0.906160 0.625000 -v -0.702684 1.137129 0.625000 -v -0.376044 1.001831 0.625000 -v -0.607013 0.906159 0.375000 -v -0.376044 1.001831 0.375000 -v -0.471715 1.232800 0.375000 -v 0.194873 2.726603 0.312500 -v -0.151582 2.583096 0.687500 -v 0.194873 2.726603 0.687500 -v 0.290544 2.495633 0.312500 -v 0.290544 2.495632 0.687500 -v 0.170955 2.784345 0.312501 -v -0.175500 2.640839 0.312500 -v 0.314462 2.437890 0.312500 -v -0.031993 2.294384 0.312500 -v -0.031993 2.294384 0.687500 -v -0.055911 2.352126 0.687500 -v -0.151582 2.583096 0.312500 -v 0.314462 2.437890 0.687500 -v 0.170955 2.784345 0.687501 -v -0.055911 2.352126 0.312500 -v -0.175500 2.640839 0.687500 -v 0.137131 2.702685 0.375000 -v 0.232801 2.471715 0.625000 -v -0.093839 2.607014 0.625000 -v 0.137131 2.702685 0.625000 -v 0.001832 2.376044 0.625000 -v -0.093839 2.607014 0.375000 -v 0.001832 2.376044 0.375000 -v 0.232801 2.471715 0.375000 +v 0.375000 0.250000 0.625000 +v 0.375000 0.500000 0.625000 +v 0.625000 0.500000 0.625000 +v 1.151582 0.416903 0.687500 v 0.805127 0.273397 0.312500 -v 1.151582 0.416904 0.687500 -v 0.805127 0.273397 0.687500 -v 0.709456 0.504367 0.312500 -v 0.709456 0.504367 0.687500 -v 0.829044 0.215655 0.312500 -v 1.175499 0.359161 0.312500 -v 0.685538 0.562110 0.312500 -v 1.031993 0.705616 0.312500 -v 1.031993 0.705616 0.687500 -v 1.055911 0.647873 0.687500 v 1.151582 0.416904 0.312500 -v 0.685538 0.562110 0.687500 -v 0.829044 0.215655 0.687500 +v 1.055911 0.647874 0.687500 v 1.055911 0.647874 0.312500 v 1.175499 0.359161 0.687500 -v 0.862869 0.297315 0.375000 -v 0.767198 0.528285 0.625000 +v 0.829045 0.215655 0.687500 +v 1.031993 0.705616 0.687500 +v 0.685538 0.562110 0.687500 +v 0.685538 0.562110 0.312500 +v 0.709456 0.504367 0.312500 +v 0.805127 0.273397 0.687500 +v 1.031993 0.705616 0.312500 +v 1.175499 0.359161 0.312500 +v 0.709456 0.504367 0.687500 +v 0.829045 0.215655 0.312500 v 1.093839 0.392986 0.625000 +v 0.998168 0.623956 0.375000 +v 0.862869 0.297315 0.375000 +v 1.093839 0.392986 0.375000 +v 0.767199 0.528285 0.375000 v 0.862869 0.297315 0.625000 +v 0.767199 0.528285 0.625000 v 0.998168 0.623956 0.625000 -v 1.093839 0.392986 0.375000 -v 0.998168 0.623956 0.375000 -v 0.767198 0.528285 0.375000 -v 1.251301 0.483534 0.312500 -v 1.516466 0.748699 0.687500 -v 1.251301 0.483534 0.687500 -v 1.074524 0.660311 0.312500 -v 1.074524 0.660311 0.687500 -v 1.295495 0.439340 0.312500 -v 1.560660 0.704505 0.312500 -v 1.030330 0.704505 0.312500 -v 1.295495 0.969670 0.312500 -v 1.295495 0.969670 0.687500 -v 1.339689 0.925476 0.687500 -v 1.516466 0.748699 0.312500 -v 1.030330 0.704505 0.687500 -v 1.295495 0.439340 0.687500 -v 1.339689 0.925476 0.312500 -v 1.560660 0.704505 0.687500 -v 1.295495 0.527728 0.375000 -v 1.118718 0.704505 0.625000 -v 1.472272 0.704505 0.625000 -v 1.295495 0.527728 0.625000 -v 1.295495 0.881281 0.625000 -v 1.472272 0.704505 0.375000 +v -0.151582 2.583096 0.687500 +v 0.194873 2.726602 0.312499 +v -0.151582 2.583096 0.312500 +v -0.055911 2.352126 0.687500 +v -0.055911 2.352126 0.312500 +v -0.175500 2.640838 0.687500 +v 0.170955 2.784345 0.687499 +v -0.031993 2.294384 0.687500 +v 0.314461 2.437890 0.687500 +v 0.314461 2.437890 0.312500 +v 0.290544 2.495632 0.312500 +v 0.194873 2.726602 0.687500 +v -0.031993 2.294384 0.312500 +v -0.175500 2.640838 0.312500 +v 0.290544 2.495632 0.687500 +v 0.170955 2.784345 0.312499 +v -0.093840 2.607014 0.625000 +v 0.001831 2.376044 0.375000 +v 0.137130 2.702685 0.375000 +v -0.093840 2.607014 0.375000 +v 0.232801 2.471715 0.375000 +v 0.137130 2.702685 0.625000 +v 0.232801 2.471715 0.625000 +v 0.001831 2.376044 0.625000 +v 1.583097 2.151581 0.687500 +v 1.726603 1.805126 0.312500 +v 1.583097 2.151581 0.312500 +v 1.352127 2.055910 0.687500 +v 1.352127 2.055910 0.312500 +v 1.640839 2.175498 0.687500 +v 1.784346 1.829043 0.687500 +v 1.294385 2.031992 0.687500 +v 1.437891 1.685537 0.687500 +v 1.437890 1.685537 0.312500 +v 1.495633 1.709455 0.312500 +v 1.726603 1.805126 0.687500 +v 1.294384 2.031992 0.312500 +v 1.640839 2.175498 0.312499 +v 1.495633 1.709455 0.687500 +v 1.784345 1.829043 0.312500 +v 1.607014 2.093838 0.625000 +v 1.376045 1.998168 0.375000 +v 1.702685 1.862868 0.375000 +v 1.607014 2.093838 0.375000 +v 1.471715 1.767197 0.375000 +v 1.702685 1.862868 0.625000 +v 1.471715 1.767198 0.625000 +v 1.376045 1.998168 0.625000 +v -0.583096 0.848418 0.687500 +v -0.726603 1.194873 0.312500 +v -0.583096 0.848418 0.312500 +v -0.352126 0.944089 0.687500 +v -0.352126 0.944089 0.312500 +v -0.640839 0.824500 0.687500 +v -0.784345 1.170955 0.687500 +v -0.294384 0.968007 0.687500 +v -0.437890 1.314461 0.687500 +v -0.437890 1.314461 0.312500 +v -0.495633 1.290544 0.312500 +v -0.726603 1.194873 0.687500 +v -0.294384 0.968007 0.312500 +v -0.640839 0.824500 0.312500 +v -0.495633 1.290544 0.687500 +v -0.784345 1.170955 0.312500 +v -0.607014 0.906160 0.625000 +v -0.376044 1.001831 0.375000 +v -0.702685 1.137130 0.375000 +v -0.607014 0.906161 0.375000 +v -0.471715 1.232801 0.375000 +v -0.702685 1.137130 0.625000 +v -0.471715 1.232801 0.625000 +v -0.376044 1.001832 0.625000 +v -0.726603 1.805126 0.687500 +v -0.583096 2.151581 0.312500 +v -0.726602 1.805126 0.312500 +v -0.495633 1.709456 0.687500 +v -0.495633 1.709456 0.312500 +v -0.784345 1.829044 0.687500 +v -0.640839 2.175499 0.687500 +v -0.437890 1.685538 0.687500 +v -0.294384 2.031993 0.687500 +v -0.294384 2.031993 0.312500 +v -0.352126 2.055911 0.312500 +v -0.583096 2.151581 0.687500 +v -0.437890 1.685538 0.312500 +v -0.784345 1.829044 0.312500 +v -0.352126 2.055911 0.687500 +v -0.640839 2.175499 0.312500 +v -0.702685 1.862869 0.625000 +v -0.471715 1.767198 0.375000 +v -0.607014 2.093839 0.375000 +v -0.702685 1.862869 0.375000 +v -0.376044 1.998168 0.375000 +v -0.607014 2.093839 0.625000 +v -0.376044 1.998168 0.625000 +v -0.471715 1.767198 0.625000 +v 1.726602 1.194872 0.687500 +v 1.583095 0.848417 0.312500 +v 1.726602 1.194872 0.312500 +v 1.495632 1.290543 0.687500 +v 1.495632 1.290543 0.312500 +v 1.784345 1.170954 0.687500 +v 1.640838 0.824499 0.687500 +v 1.437890 1.314461 0.687500 +v 1.294383 0.968006 0.687500 +v 1.294383 0.968006 0.312500 +v 1.352126 0.944088 0.312500 +v 1.583096 0.848417 0.687500 +v 1.437890 1.314461 0.312500 +v 1.784345 1.170954 0.312500 +v 1.352126 0.944088 0.687500 +v 1.640838 0.824499 0.312500 +v 1.702685 1.137129 0.625000 +v 1.471715 1.232800 0.375000 +v 1.607013 0.906160 0.375000 +v 1.702684 1.137129 0.375000 +v 1.376044 1.001831 0.375000 +v 1.607013 0.906159 0.625000 +v 1.376044 1.001831 0.625000 +v 1.471715 1.232800 0.625000 +v 0.805127 2.726603 0.687500 +v 1.151582 2.583096 0.312499 +v 0.805127 2.726603 0.312499 +v 0.709456 2.495633 0.687500 +v 0.709456 2.495632 0.312500 +v 0.829045 2.784345 0.687499 +v 1.175500 2.640839 0.687499 +v 0.685538 2.437890 0.687500 +v 1.031993 2.294384 0.687500 +v 1.031993 2.294384 0.312500 +v 1.055911 2.352126 0.312500 +v 1.151582 2.583096 0.687499 +v 0.685538 2.437890 0.312500 +v 0.829045 2.784345 0.312499 +v 1.055911 2.352126 0.687500 +v 1.175500 2.640839 0.312499 +v 0.862869 2.702685 0.625000 +v 0.767199 2.471715 0.375000 +v 1.093839 2.607014 0.375000 +v 0.862869 2.702685 0.374999 +v 0.998168 2.376044 0.375000 +v 1.093839 2.607014 0.624999 +v 0.998168 2.376044 0.625000 +v 0.767199 2.471715 0.625000 +v 0.194873 0.273397 0.687500 +v -0.151582 0.416904 0.312500 +v 0.194873 0.273397 0.312500 +v 0.290544 0.504367 0.687500 +v 0.290544 0.504367 0.312500 +v 0.170956 0.215655 0.687500 +v -0.175499 0.359161 0.687500 +v 0.314462 0.562110 0.687500 +v -0.031993 0.705616 0.687500 +v -0.031993 0.705616 0.312500 +v -0.055911 0.647873 0.312500 +v -0.151582 0.416904 0.687500 +v 0.314462 0.562110 0.312500 +v 0.170956 0.215655 0.312500 +v -0.055911 0.647874 0.687500 +v -0.175499 0.359161 0.312500 +v 0.137131 0.297315 0.625000 +v 0.232802 0.528285 0.375000 +v -0.093839 0.392986 0.375000 +v 0.137131 0.297315 0.375000 +v 0.001832 0.623956 0.375000 +v -0.093839 0.392986 0.625000 +v 0.001832 0.623956 0.625000 +v 0.232802 0.528285 0.625000 +v -0.251301 0.483534 0.687500 +v -0.516466 0.748699 0.312500 +v -0.251301 0.483534 0.312500 +v -0.074524 0.660311 0.687500 +v -0.074524 0.660311 0.312500 +v -0.295495 0.439340 0.687500 +v -0.560660 0.704505 0.687500 +v -0.030330 0.704505 0.687500 +v -0.295495 0.969670 0.687500 +v -0.295495 0.969670 0.312500 +v -0.339689 0.925476 0.312500 +v -0.516466 0.748699 0.687500 +v -0.030330 0.704505 0.312500 +v -0.295495 0.439340 0.312500 +v -0.339689 0.925476 0.687500 +v -0.560660 0.704505 0.312500 +v -0.295495 0.527728 0.625000 +v -0.118718 0.704505 0.375000 +v -0.472272 0.704505 0.375000 +v -0.295495 0.527728 0.375000 +v -0.295495 0.881281 0.375000 +v -0.472272 0.704505 0.625000 +v -0.295495 0.881281 0.625000 +v -0.118718 0.704505 0.625000 +v 1.251301 2.516466 0.687500 +v 1.516466 2.251301 0.312500 +v 1.251301 2.516466 0.312499 +v 1.074524 2.339689 0.687500 +v 1.074524 2.339689 0.312500 +v 1.295495 2.560660 0.687499 +v 1.560660 2.295495 0.687499 +v 1.030330 2.295495 0.687500 +v 1.295495 2.030330 0.687500 +v 1.295495 2.030330 0.312500 +v 1.339689 2.074524 0.312500 +v 1.516466 2.251301 0.687500 +v 1.030330 2.295495 0.312500 +v 1.295495 2.560660 0.312499 +v 1.339689 2.074524 0.687500 +v 1.560660 2.295495 0.312499 +v 1.295495 2.472272 0.625000 +v 1.118718 2.295495 0.375000 +v 1.472272 2.295495 0.375000 +v 1.295495 2.472272 0.375000 +v 1.295495 2.118718 0.375000 +v 1.472272 2.295495 0.625000 +v 1.295495 2.118718 0.625000 +v 1.118719 2.295495 0.625000 +v 1.516465 0.748698 0.687500 +v 1.251300 0.483533 0.312500 +v 1.516465 0.748698 0.312500 +v 1.339689 0.925475 0.687500 +v 1.339689 0.925475 0.312500 +v 1.560660 0.704504 0.687500 +v 1.295494 0.439339 0.687500 +v 1.295495 0.969669 0.687500 +v 1.030329 0.704504 0.687500 +v 1.030329 0.704504 0.312500 +v 1.074524 0.660310 0.312500 +v 1.251300 0.483533 0.687500 +v 1.295495 0.969669 0.312500 +v 1.560660 0.704504 0.312500 +v 1.074524 0.660310 0.687500 +v 1.295494 0.439339 0.312500 +v 1.472271 0.704504 0.625000 v 1.295495 0.881281 0.375000 -v 1.118718 0.704505 0.375000 -v -0.251301 2.516466 0.312500 +v 1.295494 0.527727 0.375000 +v 1.472271 0.704504 0.375000 +v 1.118718 0.704504 0.375000 +v 1.295494 0.527727 0.625000 +v 1.118718 0.704504 0.625000 +v 1.295495 0.881281 0.625000 v -0.516466 2.251301 0.687500 -v -0.251301 2.516466 0.687500 -v -0.074524 2.339689 0.312500 -v -0.074524 2.339689 0.687500 -v -0.295495 2.560660 0.312500 -v -0.560660 2.295495 0.312500 -v -0.030330 2.295495 0.312500 -v -0.295495 2.030330 0.312500 -v -0.295495 2.030330 0.687500 +v -0.251301 2.516466 0.312500 +v -0.516466 2.251300 0.312500 v -0.339689 2.074524 0.687500 -v -0.516466 2.251301 0.312500 -v -0.030330 2.295495 0.687500 -v -0.295495 2.560660 0.687500 v -0.339689 2.074524 0.312500 v -0.560660 2.295495 0.687500 -v -0.295495 2.472272 0.375000 -v -0.118718 2.295495 0.625000 +v -0.295495 2.560660 0.687500 +v -0.295495 2.030330 0.687500 +v -0.030330 2.295495 0.687500 +v -0.030330 2.295495 0.312500 +v -0.074524 2.339689 0.312500 +v -0.251301 2.516466 0.687500 +v -0.295495 2.030330 0.312500 +v -0.560660 2.295495 0.312500 +v -0.074524 2.339689 0.687500 +v -0.295495 2.560660 0.312500 v -0.472272 2.295495 0.625000 -v -0.295495 2.472272 0.625000 -v -0.295495 2.118718 0.625000 -v -0.472272 2.295495 0.375000 v -0.295495 2.118718 0.375000 +v -0.295495 2.472271 0.375000 +v -0.472272 2.295495 0.375000 v -0.118719 2.295495 0.375000 -v -0.516465 0.748698 0.312500 -v -0.251300 0.483533 0.687500 -v -0.516465 0.748698 0.687500 -v -0.339689 0.925475 0.312500 -v -0.339689 0.925475 0.687500 -v -0.560660 0.704504 0.312500 -v -0.295494 0.439339 0.312500 -v -0.295495 0.969669 0.312500 -v -0.030330 0.704504 0.312500 -v -0.030330 0.704504 0.687500 -v -0.074524 0.660310 0.687500 -v -0.251300 0.483533 0.312500 -v -0.295495 0.969669 0.687500 -v -0.560660 0.704504 0.687500 -v -0.074524 0.660310 0.312500 -v -0.295494 0.439339 0.687500 -v -0.472271 0.704504 0.375000 -v -0.295495 0.881281 0.625000 -v -0.295494 0.527727 0.625000 -v -0.472271 0.704504 0.625000 -v -0.118718 0.704504 0.625000 -v -0.295494 0.527727 0.375000 -v -0.118718 0.704504 0.375000 -v -0.295495 0.881281 0.375000 -v 1.516466 2.251301 0.312500 -v 1.251301 2.516466 0.687500 -v 1.516466 2.251300 0.687500 -v 1.339689 2.074524 0.312500 -v 1.339689 2.074524 0.687500 -v 1.560660 2.295495 0.312500 -v 1.295495 2.560660 0.312500 -v 1.295495 2.030330 0.312500 -v 1.030330 2.295495 0.312500 -v 1.030330 2.295495 0.687500 -v 1.074524 2.339689 0.687500 -v 1.251301 2.516466 0.312500 -v 1.295495 2.030330 0.687500 -v 1.560660 2.295495 0.687500 -v 1.074524 2.339689 0.312500 -v 1.295495 2.560660 0.687500 -v 1.472272 2.295495 0.375000 -v 1.295495 2.118718 0.625000 -v 1.295495 2.472271 0.625000 -v 1.472272 2.295495 0.625000 -v 1.118719 2.295495 0.625000 -v 1.295495 2.472271 0.375000 -v 1.118719 2.295495 0.375000 -v 1.295495 2.118718 0.375000 -v 1.750000 1.312500 0.312500 -v 1.750000 1.687500 0.687500 -v 1.750000 1.312500 0.687500 -v 1.500000 1.312500 0.312500 -v 1.500000 1.312500 0.687500 -v 1.812500 1.312500 0.312500 -v 1.812500 1.687500 0.312500 -v 1.437500 1.312500 0.312500 -v 1.437500 1.687500 0.312500 -v 1.437500 1.687500 0.687500 -v 1.500000 1.687500 0.687500 -v 1.750000 1.687500 0.312500 -v 1.437500 1.312500 0.687500 -v 1.812500 1.312500 0.687500 -v 1.500000 1.687500 0.312500 -v 1.812500 1.687500 0.687500 -v 1.750000 1.375000 0.375000 -v 1.500000 1.375000 0.625000 -v 1.750000 1.625000 0.625000 -v 1.750000 1.375000 0.625000 -v 1.500000 1.625000 0.625000 -v 1.750000 1.625000 0.375000 -v 1.500000 1.625000 0.375000 -v 1.500000 1.375000 0.375000 -v -0.750000 1.687499 0.312500 -v -0.750000 1.312499 0.687500 -v -0.750000 1.687499 0.687500 -v -0.500000 1.687499 0.312500 -v -0.500000 1.687499 0.687500 -v -0.812500 1.687499 0.312500 -v -0.812500 1.312499 0.312500 -v -0.437500 1.687499 0.312500 -v -0.437500 1.312499 0.312500 +v -0.295495 2.472271 0.625000 +v -0.118719 2.295495 0.625000 +v -0.295495 2.118718 0.625000 +v -0.750000 1.312500 0.687500 +v -0.750000 1.687500 0.312500 +v -0.750000 1.312500 0.312500 +v -0.500000 1.312500 0.687500 +v -0.500000 1.312500 0.312500 +v -0.812500 1.312500 0.687500 +v -0.812500 1.687500 0.687500 v -0.437500 1.312500 0.687500 -v -0.500000 1.312499 0.687500 -v -0.750000 1.312499 0.312500 -v -0.437500 1.687499 0.687500 -v -0.812500 1.687499 0.687500 -v -0.500000 1.312499 0.312500 -v -0.812500 1.312499 0.687500 -v -0.750000 1.624999 0.375000 -v -0.500000 1.624999 0.625000 -v -0.750000 1.374999 0.625000 -v -0.750000 1.624999 0.625000 -v -0.500000 1.374999 0.625000 -v -0.750000 1.374999 0.375000 +v -0.437500 1.687500 0.687500 +v -0.437500 1.687500 0.312500 +v -0.500000 1.687500 0.312500 +v -0.750000 1.687500 0.687500 +v -0.437500 1.312500 0.312500 +v -0.812500 1.312500 0.312500 +v -0.500000 1.687500 0.687500 +v -0.812500 1.687500 0.312500 +v -0.750000 1.375000 0.625000 v -0.500000 1.375000 0.375000 -v -0.500000 1.624999 0.375000 -v 0.687500 2.750000 0.312501 -v 0.312500 2.750000 0.687501 -v 0.687500 2.750000 0.687501 -v 0.687500 2.500000 0.312500 -v 0.687500 2.500000 0.687500 -v 0.687500 2.812500 0.312501 -v 0.312500 2.812500 0.312501 -v 0.687500 2.437500 0.312500 -v 0.312500 2.437500 0.312500 -v 0.312500 2.437500 0.687500 +v -0.750000 1.625000 0.375000 +v -0.750000 1.375000 0.375000 +v -0.500000 1.625000 0.375000 +v -0.750000 1.625000 0.625000 +v -0.500000 1.625000 0.625000 +v -0.500000 1.375000 0.625000 +v 1.750000 1.687499 0.687500 +v 1.750000 1.312499 0.312500 +v 1.750000 1.687499 0.312500 +v 1.500000 1.687499 0.687500 +v 1.500000 1.687499 0.312500 +v 1.812500 1.687499 0.687500 +v 1.812500 1.312499 0.687500 +v 1.437500 1.687499 0.687500 +v 1.437500 1.312499 0.687500 +v 1.437500 1.312500 0.312500 +v 1.500000 1.312499 0.312500 +v 1.750000 1.312499 0.687500 +v 1.437500 1.687499 0.312500 +v 1.812500 1.687499 0.312500 +v 1.500000 1.312499 0.687500 +v 1.812500 1.312499 0.312500 +v 1.750000 1.624999 0.625000 +v 1.500000 1.624999 0.375000 +v 1.750000 1.374999 0.375000 +v 1.750000 1.624999 0.375000 +v 1.500000 1.374999 0.375000 +v 1.750000 1.374999 0.625000 +v 1.500000 1.375000 0.625000 +v 1.500000 1.624999 0.625000 +v 0.312500 2.750000 0.687500 +v 0.687500 2.750000 0.312499 +v 0.312500 2.750000 0.312499 v 0.312500 2.500000 0.687500 -v 0.312500 2.750000 0.312501 -v 0.687500 2.437500 0.687500 -v 0.687500 2.812500 0.687501 v 0.312500 2.500000 0.312500 -v 0.312500 2.812500 0.687501 -v 0.625000 2.750000 0.375001 -v 0.625000 2.500000 0.625000 +v 0.312500 2.812500 0.687499 +v 0.687500 2.812500 0.687499 +v 0.312500 2.437500 0.687500 +v 0.687500 2.437500 0.687500 +v 0.687500 2.437500 0.312500 +v 0.687500 2.500000 0.312500 +v 0.687500 2.750000 0.687499 +v 0.312500 2.437500 0.312500 +v 0.312500 2.812500 0.312499 +v 0.687500 2.500000 0.687500 +v 0.687500 2.812500 0.312499 v 0.375000 2.750000 0.625000 -v 0.625000 2.750000 0.625000 -v 0.375000 2.500000 0.625000 -v 0.375000 2.750000 0.375001 v 0.375000 2.500000 0.375000 +v 0.625000 2.750000 0.374999 +v 0.375000 2.750000 0.375000 v 0.625000 2.500000 0.375000 -v 0.250000 1.625000 1.000000 -v 0.250000 1.375000 1.000000 -v 0.250000 1.625000 1.625000 -v 0.250000 1.375000 1.625000 -v 0.000000 1.625000 1.000000 -v 0.000000 1.375000 1.000000 -v 0.000000 1.625000 1.625000 -v 0.000000 1.375000 1.625000 -v 0.750000 1.625000 1.000000 -v 0.750000 1.375000 1.000000 -v 0.750000 1.625000 1.625000 -v 0.750000 1.375000 1.625000 -v 1.000000 1.625000 1.000000 -v 1.000000 1.375000 1.000000 -v 1.000000 1.625000 1.625000 -v 1.000000 1.375000 1.625000 -v 0.250000 1.437500 1.156250 -v 0.250000 1.562500 1.156250 -v 0.250000 1.437500 1.031250 -v 0.250000 1.562500 1.031250 -v 0.750000 1.437500 1.156250 -v 0.750000 1.562500 1.156250 -v 0.750000 1.437500 1.031250 -v 0.750000 1.562500 1.031250 +v 0.625000 2.750000 0.624999 +v 0.625000 2.500000 0.625000 +v 0.375000 2.500000 0.625000 +v 0.750000 1.625000 0.000000 +v 0.750000 1.375000 0.000000 +v 0.750000 1.625000 -0.625000 +v 0.750000 1.375000 -0.625000 +v 1.000000 1.625000 -0.000000 +v 1.000000 1.375000 -0.000000 +v 1.000000 1.625000 -0.625000 +v 1.000000 1.375000 -0.625000 +v 0.250000 1.625000 0.000000 +v 0.250000 1.375000 0.000000 +v 0.250000 1.625000 -0.625000 +v 0.250000 1.375000 -0.625000 +v -0.000000 1.625000 0.000000 +v -0.000000 1.375000 0.000000 +v -0.000000 1.625000 -0.625000 +v -0.000000 1.375000 -0.625000 +v 0.750000 1.437500 -0.156250 +v 0.750000 1.562500 -0.156250 +v 0.750000 1.437500 -0.031250 +v 0.750000 1.562500 -0.031250 +v 0.250000 1.437500 -0.156250 +v 0.250000 1.562500 -0.156250 +v 0.250000 1.437500 -0.031250 +v 0.250000 1.562500 -0.031250 vt 0.375000 0.250000 vt 0.375000 0.312500 vt 0.750000 0.312500 @@ -2157,34 +2157,34 @@ vt 0.875000 0.656250 vt 0.875000 0.812500 vt 0.843750 0.812500 vt 0.843750 0.656250 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 vn 0.0000 -1.0000 0.0000 +vn 0.9864 0.1644 -0.0000 +vn -0.9864 -0.1644 0.0000 vn -0.9864 0.1644 0.0000 vn 0.9864 -0.1644 0.0000 -vn 0.9864 0.1644 0.0000 -vn -0.9864 -0.1644 0.0000 -vn 0.9701 0.2425 0.0000 -vn 0.0000 0.6441 0.7649 -vn 0.0000 0.6441 -0.7649 -vn -0.9242 0.3818 0.0000 vn -0.9701 0.2425 0.0000 +vn 0.0000 0.6441 -0.7649 +vn 0.0000 0.6441 0.7649 vn 0.9242 0.3818 0.0000 -vn -0.3827 -0.9239 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.7071 -0.7071 -0.0000 +vn 0.9701 0.2425 0.0000 +vn -0.9242 0.3818 0.0000 vn 0.3827 -0.9239 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 usemtl None s off f 4/1/1 3/2/1 1/3/1 2/4/1 diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj index 4e823ab..ca6414d 100644 --- a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj @@ -2,614 +2,614 @@ # www.blender.org mtllib universal_motor.mtl o Stator_mirrored -v -1.000000 0.500000 1.000000 -v -1.000000 0.000000 1.000000 -v 2.000000 0.500000 1.000000 -v 2.000000 0.000000 1.000000 -v 2.000000 0.500000 2.000000 -v -1.000000 0.500000 2.000000 -v -1.000000 0.000000 2.000000 -v 2.000000 0.000000 2.000000 +v 2.000000 0.500000 -0.000000 +v 2.000000 0.000000 -0.000000 v -1.000000 0.500000 0.000000 v -1.000000 0.000000 0.000000 -v 2.000000 0.500000 0.000000 -v 2.000000 0.000000 0.000000 -v 2.000000 0.500000 -1.000000 v -1.000000 0.500000 -1.000000 -v -1.000000 0.000000 -1.000000 +v 2.000000 0.500000 -1.000000 v 2.000000 0.000000 -1.000000 -v -1.000000 0.500000 0.000000 -v -1.000000 0.000000 0.000000 -v -0.500000 0.500000 0.000000 -v -0.500000 0.000000 0.000000 -v -0.500000 0.500000 1.000000 +v -1.000000 0.000000 -1.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 0.000000 1.000000 v -1.000000 0.500000 1.000000 v -1.000000 0.000000 1.000000 -v -0.500000 0.000000 1.000000 -v 1.500000 0.500000 0.000000 -v 1.500000 0.000000 0.000000 -v 2.000000 0.500000 -0.000000 -v 2.000000 0.000000 -0.000000 +v -1.000000 0.500000 2.000000 +v 2.000000 0.500000 2.000000 +v 2.000000 0.000000 2.000000 +v -1.000000 0.000000 2.000000 v 2.000000 0.500000 1.000000 +v 2.000000 0.000000 1.000000 v 1.500000 0.500000 1.000000 v 1.500000 0.000000 1.000000 -v 2.000000 0.000000 1.000000 -v 2.000000 0.500000 0.000000 -v 2.000000 1.000000 0.000000 -v 2.000000 0.500000 -1.000000 -v 2.000000 1.000000 -1.000000 -v 1.000000 0.500000 0.000000 -v 1.000000 1.000000 0.000000 -v 1.000000 0.500000 -1.000000 -v 1.000000 1.000000 -1.000000 -v 0.000000 0.500000 0.000000 -v 0.000000 2.000000 0.000000 -v 0.000000 0.500000 -1.000000 -v 0.000000 2.000000 -1.000000 +v 1.500000 0.500000 -0.000000 +v 2.000000 0.500000 -0.000000 +v 2.000000 0.000000 -0.000000 +v 1.500000 0.000000 -0.000000 +v -0.500000 0.500000 1.000000 +v -0.500000 0.000000 1.000000 +v -1.000000 0.500000 1.000000 +v -1.000000 0.000000 1.000000 v -1.000000 0.500000 0.000000 -v -1.000000 2.000000 0.000000 -v -1.000000 0.500000 -1.000000 -v -1.000000 2.000000 -1.000000 -v 0.750000 1.250000 1.625000 -v 0.750000 1.250000 1.375000 -v 0.250000 1.250000 1.625000 -v 0.250000 1.250000 1.375000 -v 0.750000 1.750000 1.625000 -v 0.750000 1.750000 1.375000 -v 0.250000 1.750000 1.375000 -v 0.250000 1.750000 1.625000 -v 0.875000 0.500000 1.625000 -v 0.750000 1.250000 1.625000 -v 0.875000 0.500000 1.375000 -v 0.750000 1.250000 1.375000 -v 0.750000 0.500000 1.625000 -v 0.625000 1.250000 1.625000 -v 0.750000 0.500000 1.375000 -v 0.625000 1.250000 1.375000 -v 0.125000 0.500000 1.375000 -v 0.250000 1.250000 1.375000 -v 0.125000 0.500000 1.625000 -v 0.250000 1.250000 1.625000 -v 0.250000 0.500000 1.375000 -v 0.375000 1.250000 1.375000 -v 0.250000 0.500000 1.625000 -v 0.375000 1.250000 1.625000 -v 0.750000 1.250000 -0.625000 -v 0.750000 1.250000 -0.375000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.000000 0.000000 +v -1.000000 0.000000 0.000000 +v -1.000000 0.500000 1.000000 +v -1.000000 1.000000 1.000000 +v -1.000000 0.500000 2.000000 +v -1.000000 1.000000 2.000000 +v 0.000000 0.500000 1.000000 +v 0.000000 1.000000 1.000000 +v 0.000000 0.500000 2.000000 +v 0.000000 1.000000 2.000000 +v 1.000000 0.500000 1.000000 +v 1.000000 2.000000 1.000000 +v 1.000000 0.500000 2.000000 +v 1.000000 2.000000 2.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 2.000000 1.000000 +v 2.000000 0.500000 2.000000 +v 2.000000 2.000000 2.000000 v 0.250000 1.250000 -0.625000 v 0.250000 1.250000 -0.375000 -v 0.750000 1.750000 -0.625000 -v 0.750000 1.750000 -0.375000 -v 0.250000 1.750000 -0.375000 -v 0.250000 1.750000 -0.625000 -v 0.875000 0.500000 -0.625000 v 0.750000 1.250000 -0.625000 -v 0.875000 0.500000 -0.375000 v 0.750000 1.250000 -0.375000 -v 0.750000 0.500000 -0.625000 -v 0.625000 1.250000 -0.625000 -v 0.750000 0.500000 -0.375000 -v 0.625000 1.250000 -0.375000 -v 0.125000 0.500000 -0.375000 -v 0.250000 1.250000 -0.375000 +v 0.250000 1.750000 -0.625000 +v 0.250000 1.750000 -0.375000 +v 0.750000 1.750000 -0.375000 +v 0.750000 1.750000 -0.625000 v 0.125000 0.500000 -0.625000 v 0.250000 1.250000 -0.625000 -v 0.250000 0.500000 -0.375000 -v 0.375000 1.250000 -0.375000 +v 0.125000 0.500000 -0.375000 +v 0.250000 1.250000 -0.375000 v 0.250000 0.500000 -0.625000 v 0.375000 1.250000 -0.625000 -v -0.875000 1.625000 0.625000 -v -0.875000 1.226562 0.250000 -v -0.875000 1.625000 0.375000 -v -1.000000 1.226562 0.750000 -v -0.937500 1.625000 0.625000 -v -1.000000 1.226562 0.250000 -v -0.937500 1.625000 0.375000 -v -0.875000 1.375000 0.625000 -v -0.875000 1.375000 0.375000 -v -1.000000 1.375000 0.375000 -v -1.000000 1.375000 0.625000 -v -0.875000 1.226562 0.750000 -v -0.665942 0.720558 0.750000 -v -1.000000 0.720558 0.750000 -v -0.665942 0.720558 0.250000 -v -1.000000 0.720558 0.250000 -v -0.665942 0.498832 0.250000 -v -1.000000 0.498832 0.250000 -v -1.000000 0.498832 0.750000 -v -0.665942 0.498832 0.750000 -v 1.875000 1.625000 0.625000 -v 1.875000 1.226562 0.250000 +v 0.250000 0.500000 -0.375000 +v 0.375000 1.250000 -0.375000 +v 0.875000 0.500000 -0.375000 +v 0.750000 1.250000 -0.375000 +v 0.875000 0.500000 -0.625000 +v 0.750000 1.250000 -0.625000 +v 0.750000 0.500000 -0.375000 +v 0.625000 1.250000 -0.375000 +v 0.750000 0.500000 -0.625000 +v 0.625000 1.250000 -0.625000 +v 0.250000 1.250000 1.625000 +v 0.250000 1.250000 1.375000 +v 0.750000 1.250000 1.625000 +v 0.750000 1.250000 1.375000 +v 0.250000 1.750000 1.625000 +v 0.250000 1.750000 1.375000 +v 0.750000 1.750000 1.375000 +v 0.750000 1.750000 1.625000 +v 0.125000 0.500000 1.625000 +v 0.250000 1.250000 1.625000 +v 0.125000 0.500000 1.375000 +v 0.250000 1.250000 1.375000 +v 0.250000 0.500000 1.625000 +v 0.375000 1.250000 1.625000 +v 0.250000 0.500000 1.375000 +v 0.375000 1.250000 1.375000 +v 0.875000 0.500000 1.375000 +v 0.750000 1.250000 1.375000 +v 0.875000 0.500000 1.625000 +v 0.750000 1.250000 1.625000 +v 0.750000 0.500000 1.375000 +v 0.625000 1.250000 1.375000 +v 0.750000 0.500000 1.625000 +v 0.625000 1.250000 1.625000 v 1.875000 1.625000 0.375000 -v 2.000000 1.226562 0.750000 -v 1.937500 1.625000 0.625000 +v 1.875000 1.226562 0.750000 +v 1.875000 1.625000 0.625000 v 2.000000 1.226562 0.250000 v 1.937500 1.625000 0.375000 -v 1.875000 1.375000 0.625000 +v 2.000000 1.226562 0.750000 +v 1.937500 1.625000 0.625000 v 1.875000 1.375000 0.375000 -v 2.000000 1.375000 0.375000 +v 1.875000 1.375000 0.625000 v 2.000000 1.375000 0.625000 -v 1.875000 1.226562 0.750000 -v 1.665942 0.720558 0.750000 -v 2.000000 0.720558 0.750000 +v 2.000000 1.375000 0.375000 +v 1.875000 1.226562 0.250000 v 1.665942 0.720558 0.250000 v 2.000000 0.720558 0.250000 -v 1.665942 0.498832 0.250000 -v 2.000000 0.498832 0.250000 -v 2.000000 0.498832 0.750000 +v 1.665942 0.720558 0.750000 +v 2.000000 0.720558 0.750000 v 1.665942 0.498832 0.750000 -v 0.238920 2.812536 0.251077 -v 0.238920 2.812536 0.748923 -v -0.243492 2.612714 0.251077 -v -0.243492 2.612714 0.748923 -v -0.612714 2.243492 0.251077 -v -0.612714 2.243492 0.748923 -v -0.812536 1.761080 0.251077 -v -0.812536 1.761080 0.748923 -v -0.812536 1.238920 0.251077 -v -0.812536 1.238920 0.748923 -v -0.612714 0.756508 0.251077 -v -0.612714 0.756508 0.748923 -v -0.243492 0.387286 0.251077 -v -0.243492 0.387286 0.748923 -v 0.238920 0.187464 0.251077 -v 0.238920 0.187464 0.748923 -v 0.761079 0.187464 0.251077 -v 0.761079 0.187464 0.748923 -v 1.243492 0.387286 0.251077 -v 1.243492 0.387286 0.748923 -v 1.612714 0.756508 0.251077 -v 1.612714 0.756508 0.748923 -v 1.812536 1.238920 0.251077 -v 1.812536 1.238920 0.748923 -v 1.812536 1.761080 0.251077 -v 1.812536 1.761080 0.748923 -v 1.612714 2.243492 0.251077 +v 2.000000 0.498832 0.750000 +v 2.000000 0.498832 0.250000 +v 1.665942 0.498832 0.250000 +v -0.875000 1.625000 0.375000 +v -0.875000 1.226562 0.750000 +v -0.875000 1.625000 0.625000 +v -1.000000 1.226562 0.250000 +v -0.937500 1.625000 0.375000 +v -1.000000 1.226562 0.750000 +v -0.937500 1.625000 0.625000 +v -0.875000 1.375000 0.375000 +v -0.875000 1.375000 0.625000 +v -1.000000 1.375000 0.625000 +v -1.000000 1.375000 0.375000 +v -0.875000 1.226562 0.250000 +v -0.665942 0.720558 0.250000 +v -1.000000 0.720558 0.250000 +v -0.665942 0.720558 0.750000 +v -1.000000 0.720558 0.750000 +v -0.665942 0.498832 0.750000 +v -1.000000 0.498832 0.750000 +v -1.000000 0.498832 0.250000 +v -0.665942 0.498832 0.250000 +v 0.761080 2.812536 0.748923 +v 0.761080 2.812536 0.251077 +v 1.243492 2.612714 0.748923 +v 1.243492 2.612714 0.251077 v 1.612714 2.243492 0.748923 -v 1.243491 2.612714 0.251077 -v 1.243491 2.612714 0.748923 -v 0.761079 2.812536 0.251077 -v 0.761079 2.812536 0.748923 -v -0.279065 2.665954 0.251077 -v 0.226429 2.875336 0.251077 -v 0.226429 2.875336 0.748923 -v -0.279065 2.665954 0.748923 -v -0.665954 2.279065 0.251077 -v -0.665954 2.279065 0.748923 -v -0.875336 1.773571 0.251077 -v -0.875336 1.773571 0.748923 -v -0.875336 1.226429 0.251077 -v -0.875336 1.226429 0.748923 -v -0.665954 0.720935 0.251077 -v -0.665954 0.720934 0.748923 -v -0.279065 0.334046 0.251077 -v -0.279065 0.334046 0.748923 -v 0.226429 0.124664 0.251077 -v 0.226429 0.124664 0.748923 -v 0.773571 0.124664 0.251077 -v 0.773571 0.124664 0.748923 -v 1.279065 0.334046 0.251077 -v 1.279065 0.334046 0.748923 -v 1.665954 0.720934 0.251077 -v 1.665954 0.720934 0.748923 -v 1.875336 1.226429 0.251077 -v 1.875336 1.226429 0.748923 -v 1.875336 1.773571 0.251077 -v 1.875336 1.773571 0.748923 -v 1.665954 2.279066 0.251077 -v 1.665954 2.279066 0.748923 -v 1.279065 2.665954 0.251077 +v 1.612714 2.243492 0.251077 +v 1.812536 1.761080 0.748923 +v 1.812536 1.761080 0.251077 +v 1.812536 1.238920 0.748923 +v 1.812536 1.238920 0.251077 +v 1.612714 0.756508 0.748923 +v 1.612714 0.756508 0.251077 +v 1.243492 0.387286 0.748923 +v 1.243492 0.387286 0.251077 +v 0.761080 0.187464 0.748923 +v 0.761080 0.187464 0.251077 +v 0.238921 0.187464 0.748923 +v 0.238921 0.187464 0.251077 +v -0.243492 0.387286 0.748923 +v -0.243492 0.387286 0.251077 +v -0.612714 0.756508 0.748923 +v -0.612714 0.756508 0.251077 +v -0.812536 1.238920 0.748923 +v -0.812536 1.238920 0.251077 +v -0.812536 1.761080 0.748923 +v -0.812536 1.761080 0.251077 +v -0.612714 2.243492 0.748923 +v -0.612714 2.243492 0.251077 +v -0.243491 2.612714 0.748923 +v -0.243491 2.612714 0.251077 +v 0.238921 2.812536 0.748923 +v 0.238921 2.812536 0.251077 v 1.279065 2.665954 0.748923 -v 0.773571 2.875336 0.251077 v 0.773571 2.875336 0.748923 -v 0.687500 0.250000 0.312500 +v 0.773571 2.875336 0.251077 +v 1.279065 2.665954 0.251077 +v 1.665954 2.279065 0.748923 +v 1.665954 2.279065 0.251077 +v 1.875336 1.773571 0.748923 +v 1.875336 1.773571 0.251077 +v 1.875336 1.226429 0.748923 +v 1.875336 1.226429 0.251077 +v 1.665954 0.720935 0.748923 +v 1.665954 0.720934 0.251077 +v 1.279065 0.334046 0.748923 +v 1.279065 0.334046 0.251077 +v 0.773571 0.124664 0.748923 +v 0.773571 0.124664 0.251077 +v 0.226429 0.124664 0.748923 +v 0.226429 0.124664 0.251077 +v -0.279065 0.334046 0.748923 +v -0.279065 0.334046 0.251077 +v -0.665954 0.720934 0.748923 +v -0.665954 0.720934 0.251077 +v -0.875336 1.226429 0.748923 +v -0.875336 1.226429 0.251077 +v -0.875336 1.773571 0.748923 +v -0.875336 1.773571 0.251077 +v -0.665954 2.279066 0.748923 +v -0.665954 2.279066 0.251077 +v -0.279065 2.665954 0.748923 +v -0.279065 2.665954 0.251077 +v 0.226429 2.875336 0.748923 +v 0.226429 2.875336 0.251077 v 0.312500 0.250000 0.687500 -v 0.687500 0.250000 0.687500 -v 0.687500 0.500000 0.312500 -v 0.687500 0.500000 0.687500 -v 0.687500 0.187500 0.312500 -v 0.312500 0.187500 0.312500 -v 0.687500 0.562500 0.312500 -v 0.312500 0.562500 0.312500 -v 0.312500 0.562500 0.687500 -v 0.312500 0.500000 0.687500 +v 0.687500 0.250000 0.312500 v 0.312500 0.250000 0.312500 -v 0.687500 0.562500 0.687500 -v 0.687500 0.187500 0.687500 +v 0.312500 0.500000 0.687500 v 0.312500 0.500000 0.312500 v 0.312500 0.187500 0.687500 -v 0.625000 0.250000 0.375000 -v 0.625000 0.500000 0.625000 +v 0.687500 0.187500 0.687500 +v 0.312500 0.562500 0.687500 +v 0.687500 0.562500 0.687500 +v 0.687500 0.562500 0.312500 +v 0.687500 0.500000 0.312500 +v 0.687500 0.250000 0.687500 +v 0.312500 0.562500 0.312500 +v 0.312500 0.187500 0.312500 +v 0.687500 0.500000 0.687500 +v 0.687500 0.187500 0.312500 v 0.375000 0.250000 0.625000 -v 0.625000 0.250000 0.625000 -v 0.375000 0.500000 0.625000 -v 0.375000 0.250000 0.375000 v 0.375000 0.500000 0.375000 +v 0.625000 0.250000 0.375000 +v 0.375000 0.250000 0.375000 v 0.625000 0.500000 0.375000 -v 1.151582 0.416903 0.312500 -v 0.805127 0.273397 0.687500 -v 1.151582 0.416904 0.687500 -v 1.055911 0.647874 0.312500 -v 1.055911 0.647874 0.687500 -v 1.175499 0.359161 0.312500 -v 0.829045 0.215655 0.312500 -v 1.031993 0.705616 0.312500 -v 0.685538 0.562110 0.312500 -v 0.685538 0.562110 0.687500 -v 0.709456 0.504367 0.687500 -v 0.805127 0.273397 0.312500 -v 1.031993 0.705616 0.687500 -v 1.175499 0.359161 0.687500 -v 0.709456 0.504367 0.312500 -v 0.829045 0.215655 0.687500 -v 1.093839 0.392986 0.375000 -v 0.998168 0.623956 0.625000 -v 0.862869 0.297315 0.625000 -v 1.093839 0.392986 0.625000 -v 0.767199 0.528285 0.625000 -v 0.862869 0.297315 0.375000 -v 0.767199 0.528285 0.375000 -v 0.998168 0.623956 0.375000 -v -0.151582 2.583096 0.312500 -v 0.194873 2.726602 0.687501 -v -0.151582 2.583096 0.687501 -v -0.055911 2.352126 0.312500 -v -0.055911 2.352126 0.687500 -v -0.175500 2.640838 0.312501 -v 0.170955 2.784345 0.312501 -v -0.031993 2.294384 0.312500 -v 0.314461 2.437890 0.312500 -v 0.314461 2.437890 0.687500 -v 0.290544 2.495632 0.687500 -v 0.194873 2.726602 0.312501 -v -0.031993 2.294384 0.687500 -v -0.175500 2.640838 0.687501 -v 0.290544 2.495632 0.312500 -v 0.170955 2.784345 0.687501 -v -0.093840 2.607014 0.375001 -v 0.001831 2.376044 0.625000 -v 0.137130 2.702685 0.625000 -v -0.093840 2.607014 0.625000 -v 0.232801 2.471715 0.625000 -v 0.137130 2.702685 0.375001 -v 0.232801 2.471715 0.375000 -v 0.001831 2.376044 0.375000 -v 1.583097 2.151581 0.312500 -v 1.726603 1.805126 0.687500 -v 1.583097 2.151581 0.687500 -v 1.352127 2.055910 0.312500 -v 1.352127 2.055910 0.687500 -v 1.640839 2.175498 0.312500 -v 1.784346 1.829043 0.312500 -v 1.294385 2.031992 0.312500 -v 1.437891 1.685537 0.312500 -v 1.437890 1.685537 0.687500 -v 1.495633 1.709455 0.687500 -v 1.726603 1.805126 0.312500 -v 1.294384 2.031992 0.687500 -v 1.640839 2.175498 0.687500 -v 1.495633 1.709455 0.312500 -v 1.784345 1.829043 0.687500 -v 1.607014 2.093838 0.375000 -v 1.376045 1.998168 0.625000 -v 1.702685 1.862868 0.625000 -v 1.607014 2.093838 0.625000 -v 1.471715 1.767197 0.625000 -v 1.702685 1.862868 0.375000 -v 1.471715 1.767198 0.375000 -v 1.376045 1.998168 0.375000 -v -0.583096 0.848418 0.312500 -v -0.726603 1.194873 0.687500 -v -0.583096 0.848418 0.687500 -v -0.352126 0.944089 0.312500 -v -0.352126 0.944089 0.687500 -v -0.640839 0.824500 0.312500 -v -0.784345 1.170955 0.312500 -v -0.294384 0.968007 0.312500 -v -0.437890 1.314461 0.312500 -v -0.437890 1.314461 0.687500 -v -0.495633 1.290544 0.687500 -v -0.726603 1.194873 0.312500 -v -0.294384 0.968007 0.687500 -v -0.640839 0.824500 0.687500 -v -0.495633 1.290544 0.312500 -v -0.784345 1.170955 0.687500 -v -0.607014 0.906160 0.375000 -v -0.376044 1.001831 0.625000 -v -0.702685 1.137130 0.625000 -v -0.607014 0.906161 0.625000 -v -0.471715 1.232801 0.625000 -v -0.702685 1.137130 0.375000 -v -0.471715 1.232801 0.375000 -v -0.376044 1.001832 0.375000 -v -0.726603 1.805126 0.312500 -v -0.583096 2.151581 0.687500 -v -0.726602 1.805126 0.687500 -v -0.495633 1.709456 0.312500 -v -0.495633 1.709456 0.687500 -v -0.784345 1.829044 0.312500 -v -0.640839 2.175499 0.312500 -v -0.437890 1.685538 0.312500 -v -0.294384 2.031993 0.312500 -v -0.294384 2.031993 0.687500 -v -0.352126 2.055911 0.687500 -v -0.583096 2.151581 0.312500 -v -0.437890 1.685538 0.687500 -v -0.784345 1.829044 0.687500 -v -0.352126 2.055911 0.312500 -v -0.640839 2.175499 0.687500 -v -0.702685 1.862869 0.375000 -v -0.471715 1.767198 0.625000 -v -0.607014 2.093839 0.625000 -v -0.702685 1.862869 0.625000 -v -0.376044 1.998168 0.625000 -v -0.607014 2.093839 0.375000 -v -0.376044 1.998168 0.375000 -v -0.471715 1.767198 0.375000 -v 1.726602 1.194872 0.312500 -v 1.583095 0.848417 0.687500 -v 1.726602 1.194872 0.687500 -v 1.495632 1.290543 0.312500 -v 1.495632 1.290543 0.687500 -v 1.784345 1.170954 0.312500 -v 1.640838 0.824499 0.312500 -v 1.437890 1.314461 0.312500 -v 1.294383 0.968006 0.312500 -v 1.294383 0.968006 0.687500 -v 1.352126 0.944088 0.687500 -v 1.583096 0.848417 0.312500 -v 1.437890 1.314461 0.687500 -v 1.784345 1.170954 0.687500 -v 1.352126 0.944088 0.312500 -v 1.640838 0.824499 0.687500 -v 1.702685 1.137129 0.375000 -v 1.471715 1.232800 0.625000 -v 1.607013 0.906160 0.625000 -v 1.702684 1.137129 0.625000 -v 1.376044 1.001831 0.625000 -v 1.607013 0.906159 0.375000 -v 1.376044 1.001831 0.375000 -v 1.471715 1.232800 0.375000 -v 0.805127 2.726603 0.312500 -v 1.151582 2.583096 0.687500 -v 0.805127 2.726603 0.687500 -v 0.709456 2.495633 0.312500 -v 0.709456 2.495632 0.687500 -v 0.829045 2.784345 0.312501 -v 1.175500 2.640839 0.312500 -v 0.685538 2.437890 0.312500 -v 1.031993 2.294384 0.312500 -v 1.031993 2.294384 0.687500 -v 1.055911 2.352126 0.687500 -v 1.151582 2.583096 0.312500 -v 0.685538 2.437890 0.687500 -v 0.829045 2.784345 0.687501 -v 1.055911 2.352126 0.312500 -v 1.175500 2.640839 0.687500 -v 0.862869 2.702685 0.375000 -v 0.767199 2.471715 0.625000 -v 1.093839 2.607014 0.625000 -v 0.862869 2.702685 0.625000 -v 0.998168 2.376044 0.625000 -v 1.093839 2.607014 0.375000 -v 0.998168 2.376044 0.375000 -v 0.767199 2.471715 0.375000 +v 0.625000 0.250000 0.625000 +v 0.625000 0.500000 0.625000 +v 0.375000 0.500000 0.625000 +v -0.151582 0.416903 0.687500 v 0.194873 0.273397 0.312500 -v -0.151582 0.416904 0.687500 -v 0.194873 0.273397 0.687500 -v 0.290544 0.504367 0.312500 -v 0.290544 0.504367 0.687500 -v 0.170956 0.215655 0.312500 -v -0.175499 0.359161 0.312500 -v 0.314462 0.562110 0.312500 -v -0.031993 0.705616 0.312500 -v -0.031993 0.705616 0.687500 -v -0.055911 0.647873 0.687500 v -0.151582 0.416904 0.312500 -v 0.314462 0.562110 0.687500 -v 0.170956 0.215655 0.687500 +v -0.055911 0.647874 0.687500 v -0.055911 0.647874 0.312500 v -0.175499 0.359161 0.687500 -v 0.137131 0.297315 0.375000 -v 0.232802 0.528285 0.625000 +v 0.170955 0.215655 0.687500 +v -0.031993 0.705616 0.687500 +v 0.314462 0.562110 0.687500 +v 0.314462 0.562110 0.312500 +v 0.290544 0.504367 0.312500 +v 0.194873 0.273397 0.687500 +v -0.031993 0.705616 0.312500 +v -0.175499 0.359161 0.312500 +v 0.290544 0.504367 0.687500 +v 0.170955 0.215655 0.312500 v -0.093839 0.392986 0.625000 +v 0.001832 0.623956 0.375000 +v 0.137131 0.297315 0.375000 +v -0.093839 0.392986 0.375000 +v 0.232801 0.528285 0.375000 v 0.137131 0.297315 0.625000 +v 0.232801 0.528285 0.625000 v 0.001832 0.623956 0.625000 -v -0.093839 0.392986 0.375000 -v 0.001832 0.623956 0.375000 -v 0.232802 0.528285 0.375000 -v -0.251301 0.483534 0.312500 -v -0.516466 0.748699 0.687500 -v -0.251301 0.483534 0.687500 -v -0.074524 0.660311 0.312500 -v -0.074524 0.660311 0.687500 -v -0.295495 0.439340 0.312500 -v -0.560660 0.704505 0.312500 -v -0.030330 0.704505 0.312500 -v -0.295495 0.969670 0.312500 -v -0.295495 0.969670 0.687500 -v -0.339689 0.925476 0.687500 -v -0.516466 0.748699 0.312500 -v -0.030330 0.704505 0.687500 -v -0.295495 0.439340 0.687500 -v -0.339689 0.925476 0.312500 -v -0.560660 0.704505 0.687500 -v -0.295495 0.527728 0.375000 -v -0.118718 0.704505 0.625000 -v -0.472272 0.704505 0.625000 -v -0.295495 0.527728 0.625000 -v -0.295495 0.881281 0.625000 -v -0.472272 0.704505 0.375000 -v -0.295495 0.881281 0.375000 -v -0.118718 0.704505 0.375000 -v 1.251301 2.516466 0.312500 -v 1.516466 2.251301 0.687500 -v 1.251301 2.516466 0.687500 -v 1.074524 2.339689 0.312500 -v 1.074524 2.339689 0.687500 -v 1.295495 2.560660 0.312500 -v 1.560660 2.295495 0.312500 -v 1.030330 2.295495 0.312500 -v 1.295495 2.030330 0.312500 -v 1.295495 2.030330 0.687500 -v 1.339689 2.074524 0.687500 -v 1.516466 2.251301 0.312500 -v 1.030330 2.295495 0.687500 -v 1.295495 2.560660 0.687500 -v 1.339689 2.074524 0.312500 -v 1.560660 2.295495 0.687500 -v 1.295495 2.472272 0.375000 -v 1.118718 2.295495 0.625000 -v 1.472272 2.295495 0.625000 -v 1.295495 2.472272 0.625000 -v 1.295495 2.118718 0.625000 -v 1.472272 2.295495 0.375000 -v 1.295495 2.118718 0.375000 -v 1.118719 2.295495 0.375000 -v 1.516465 0.748698 0.312500 -v 1.251300 0.483533 0.687500 -v 1.516465 0.748698 0.687500 -v 1.339689 0.925475 0.312500 -v 1.339689 0.925475 0.687500 -v 1.560660 0.704504 0.312500 -v 1.295494 0.439339 0.312500 -v 1.295495 0.969669 0.312500 -v 1.030329 0.704504 0.312500 -v 1.030329 0.704504 0.687500 -v 1.074524 0.660310 0.687500 -v 1.251300 0.483533 0.312500 -v 1.295495 0.969669 0.687500 -v 1.560660 0.704504 0.687500 -v 1.074524 0.660310 0.312500 -v 1.295494 0.439339 0.687500 -v 1.472271 0.704504 0.375000 -v 1.295495 0.881281 0.625000 -v 1.295494 0.527727 0.625000 -v 1.472271 0.704504 0.625000 -v 1.118718 0.704504 0.625000 -v 1.295494 0.527727 0.375000 -v 1.118718 0.704504 0.375000 +v 1.151582 2.583096 0.687499 +v 0.805127 2.726602 0.312499 +v 1.151582 2.583096 0.312499 +v 1.055911 2.352126 0.687500 +v 1.055911 2.352126 0.312500 +v 1.175500 2.640838 0.687499 +v 0.829045 2.784345 0.687499 +v 1.031993 2.294384 0.687500 +v 0.685539 2.437890 0.687500 +v 0.685539 2.437890 0.312500 +v 0.709456 2.495632 0.312500 +v 0.805127 2.726602 0.687499 +v 1.031993 2.294384 0.312500 +v 1.175500 2.640838 0.312499 +v 0.709456 2.495632 0.687500 +v 0.829045 2.784345 0.312499 +v 1.093840 2.607014 0.624999 +v 0.998169 2.376044 0.375000 +v 0.862870 2.702685 0.374999 +v 1.093840 2.607014 0.374999 +v 0.767199 2.471715 0.375000 +v 0.862870 2.702685 0.624999 +v 0.767199 2.471715 0.625000 +v 0.998169 2.376044 0.625000 +v -0.583097 2.151581 0.687500 +v -0.726603 1.805126 0.312500 +v -0.583097 2.151581 0.312500 +v -0.352127 2.055910 0.687500 +v -0.352127 2.055910 0.312500 +v -0.640839 2.175498 0.687500 +v -0.784346 1.829043 0.687500 +v -0.294385 2.031992 0.687500 +v -0.437891 1.685537 0.687500 +v -0.437890 1.685537 0.312500 +v -0.495633 1.709455 0.312500 +v -0.726603 1.805126 0.687500 +v -0.294384 2.031992 0.312500 +v -0.640839 2.175498 0.312500 +v -0.495633 1.709455 0.687500 +v -0.784345 1.829043 0.312500 +v -0.607014 2.093838 0.625000 +v -0.376045 1.998168 0.375000 +v -0.702685 1.862868 0.375000 +v -0.607014 2.093838 0.375000 +v -0.471715 1.767197 0.375000 +v -0.702685 1.862868 0.625000 +v -0.471715 1.767198 0.625000 +v -0.376045 1.998168 0.625000 +v 1.583096 0.848418 0.687500 +v 1.726603 1.194873 0.312500 +v 1.583096 0.848418 0.312500 +v 1.352126 0.944089 0.687500 +v 1.352126 0.944089 0.312500 +v 1.640839 0.824500 0.687500 +v 1.784345 1.170955 0.687500 +v 1.294384 0.968007 0.687500 +v 1.437890 1.314461 0.687500 +v 1.437890 1.314461 0.312500 +v 1.495633 1.290544 0.312500 +v 1.726603 1.194873 0.687500 +v 1.294384 0.968007 0.312500 +v 1.640839 0.824500 0.312500 +v 1.495633 1.290544 0.687500 +v 1.784345 1.170955 0.312500 +v 1.607014 0.906160 0.625000 +v 1.376044 1.001831 0.375000 +v 1.702685 1.137130 0.375000 +v 1.607014 0.906161 0.375000 +v 1.471715 1.232801 0.375000 +v 1.702685 1.137130 0.625000 +v 1.471715 1.232801 0.625000 +v 1.376044 1.001832 0.625000 +v 1.726603 1.805126 0.687500 +v 1.583096 2.151581 0.312500 +v 1.726602 1.805126 0.312500 +v 1.495633 1.709456 0.687500 +v 1.495633 1.709456 0.312500 +v 1.784345 1.829044 0.687500 +v 1.640839 2.175499 0.687500 +v 1.437890 1.685538 0.687500 +v 1.294384 2.031993 0.687500 +v 1.294384 2.031993 0.312500 +v 1.352126 2.055911 0.312500 +v 1.583096 2.151581 0.687500 +v 1.437890 1.685538 0.312500 +v 1.784345 1.829044 0.312500 +v 1.352126 2.055911 0.687500 +v 1.640839 2.175499 0.312500 +v 1.702685 1.862869 0.625000 +v 1.471715 1.767198 0.375000 +v 1.607014 2.093839 0.375000 +v 1.702685 1.862869 0.375000 +v 1.376044 1.998168 0.375000 +v 1.607014 2.093839 0.625000 +v 1.376044 1.998168 0.625000 +v 1.471715 1.767198 0.625000 +v -0.726602 1.194872 0.687500 +v -0.583095 0.848417 0.312500 +v -0.726602 1.194872 0.312500 +v -0.495632 1.290543 0.687500 +v -0.495632 1.290543 0.312500 +v -0.784345 1.170954 0.687500 +v -0.640838 0.824499 0.687500 +v -0.437890 1.314461 0.687500 +v -0.294383 0.968006 0.687500 +v -0.294383 0.968006 0.312500 +v -0.352126 0.944088 0.312500 +v -0.583096 0.848417 0.687500 +v -0.437890 1.314461 0.312500 +v -0.784345 1.170954 0.312500 +v -0.352126 0.944088 0.687500 +v -0.640838 0.824499 0.312500 +v -0.702685 1.137129 0.625000 +v -0.471715 1.232800 0.375000 +v -0.607013 0.906160 0.375000 +v -0.702684 1.137129 0.375000 +v -0.376044 1.001831 0.375000 +v -0.607013 0.906159 0.625000 +v -0.376044 1.001831 0.625000 +v -0.471715 1.232800 0.625000 +v 0.194873 2.726603 0.687500 +v -0.151582 2.583096 0.312500 +v 0.194873 2.726603 0.312500 +v 0.290544 2.495633 0.687500 +v 0.290544 2.495632 0.312500 +v 0.170955 2.784345 0.687500 +v -0.175500 2.640839 0.687500 +v 0.314462 2.437890 0.687500 +v -0.031993 2.294384 0.687500 +v -0.031993 2.294384 0.312500 +v -0.055911 2.352126 0.312500 +v -0.151582 2.583096 0.687500 +v 0.314462 2.437890 0.312500 +v 0.170955 2.784345 0.312499 +v -0.055911 2.352126 0.687500 +v -0.175500 2.640839 0.312500 +v 0.137131 2.702685 0.625000 +v 0.232801 2.471715 0.375000 +v -0.093839 2.607014 0.375000 +v 0.137131 2.702685 0.375000 +v 0.001832 2.376044 0.375000 +v -0.093839 2.607014 0.625000 +v 0.001832 2.376044 0.625000 +v 0.232801 2.471715 0.625000 +v 0.805127 0.273397 0.687500 +v 1.151582 0.416904 0.312500 +v 0.805127 0.273397 0.312500 +v 0.709456 0.504367 0.687500 +v 0.709456 0.504367 0.312500 +v 0.829044 0.215655 0.687500 +v 1.175499 0.359161 0.687500 +v 0.685538 0.562110 0.687500 +v 1.031993 0.705616 0.687500 +v 1.031993 0.705616 0.312500 +v 1.055911 0.647873 0.312500 +v 1.151582 0.416904 0.687500 +v 0.685538 0.562110 0.312500 +v 0.829044 0.215655 0.312500 +v 1.055911 0.647874 0.687500 +v 1.175499 0.359161 0.312500 +v 0.862869 0.297315 0.625000 +v 0.767198 0.528285 0.375000 +v 1.093839 0.392986 0.375000 +v 0.862869 0.297315 0.375000 +v 0.998168 0.623956 0.375000 +v 1.093839 0.392986 0.625000 +v 0.998168 0.623956 0.625000 +v 0.767198 0.528285 0.625000 +v 1.251301 0.483534 0.687500 +v 1.516466 0.748699 0.312500 +v 1.251301 0.483534 0.312500 +v 1.074524 0.660311 0.687500 +v 1.074524 0.660311 0.312500 +v 1.295495 0.439340 0.687500 +v 1.560660 0.704505 0.687500 +v 1.030330 0.704505 0.687500 +v 1.295495 0.969670 0.687500 +v 1.295495 0.969670 0.312500 +v 1.339689 0.925476 0.312500 +v 1.516466 0.748699 0.687500 +v 1.030330 0.704505 0.312500 +v 1.295495 0.439340 0.312500 +v 1.339689 0.925476 0.687500 +v 1.560660 0.704505 0.312500 +v 1.295495 0.527728 0.625000 +v 1.118718 0.704505 0.375000 +v 1.472272 0.704505 0.375000 +v 1.295495 0.527728 0.375000 v 1.295495 0.881281 0.375000 -v -0.516466 2.251301 0.312500 +v 1.472272 0.704505 0.625000 +v 1.295495 0.881281 0.625000 +v 1.118718 0.704505 0.625000 v -0.251301 2.516466 0.687500 -v -0.516466 2.251300 0.687500 -v -0.339689 2.074524 0.312500 -v -0.339689 2.074524 0.687500 -v -0.560660 2.295495 0.312500 -v -0.295495 2.560660 0.312500 -v -0.295495 2.030330 0.312500 -v -0.030330 2.295495 0.312500 -v -0.030330 2.295495 0.687500 -v -0.074524 2.339689 0.687500 +v -0.516466 2.251301 0.312500 v -0.251301 2.516466 0.312500 -v -0.295495 2.030330 0.687500 -v -0.560660 2.295495 0.687500 +v -0.074524 2.339689 0.687500 v -0.074524 2.339689 0.312500 v -0.295495 2.560660 0.687500 +v -0.560660 2.295495 0.687500 +v -0.030330 2.295495 0.687500 +v -0.295495 2.030330 0.687500 +v -0.295495 2.030330 0.312500 +v -0.339689 2.074524 0.312500 +v -0.516466 2.251301 0.687500 +v -0.030330 2.295495 0.312500 +v -0.295495 2.560660 0.312500 +v -0.339689 2.074524 0.687500 +v -0.560660 2.295495 0.312500 +v -0.295495 2.472272 0.625000 +v -0.118718 2.295495 0.375000 v -0.472272 2.295495 0.375000 -v -0.295495 2.118718 0.625000 -v -0.295495 2.472271 0.625000 +v -0.295495 2.472272 0.375000 +v -0.295495 2.118718 0.375000 v -0.472272 2.295495 0.625000 +v -0.295495 2.118718 0.625000 v -0.118719 2.295495 0.625000 -v -0.295495 2.472271 0.375000 -v -0.118719 2.295495 0.375000 -v -0.295495 2.118718 0.375000 -v -0.750000 1.312500 0.312500 -v -0.750000 1.687500 0.687500 -v -0.750000 1.312500 0.687500 -v -0.500000 1.312500 0.312500 -v -0.500000 1.312500 0.687500 -v -0.812500 1.312500 0.312500 -v -0.812500 1.687500 0.312500 -v -0.437500 1.312500 0.312500 -v -0.437500 1.687500 0.312500 -v -0.437500 1.687500 0.687500 -v -0.500000 1.687500 0.687500 -v -0.750000 1.687500 0.312500 -v -0.437500 1.312500 0.687500 -v -0.812500 1.312500 0.687500 -v -0.500000 1.687500 0.312500 -v -0.812500 1.687500 0.687500 -v -0.750000 1.375000 0.375000 -v -0.500000 1.375000 0.625000 -v -0.750000 1.625000 0.625000 -v -0.750000 1.375000 0.625000 -v -0.500000 1.625000 0.625000 -v -0.750000 1.625000 0.375000 -v -0.500000 1.625000 0.375000 -v -0.500000 1.375000 0.375000 -v 1.750000 1.687499 0.312500 -v 1.750000 1.312499 0.687500 -v 1.750000 1.687499 0.687500 -v 1.500000 1.687499 0.312500 -v 1.500000 1.687499 0.687500 -v 1.812500 1.687499 0.312500 -v 1.812500 1.312499 0.312500 -v 1.437500 1.687499 0.312500 -v 1.437500 1.312499 0.312500 +v -0.516465 0.748698 0.687500 +v -0.251300 0.483533 0.312500 +v -0.516465 0.748698 0.312500 +v -0.339689 0.925475 0.687500 +v -0.339689 0.925475 0.312500 +v -0.560660 0.704504 0.687500 +v -0.295494 0.439339 0.687500 +v -0.295495 0.969669 0.687500 +v -0.030330 0.704504 0.687500 +v -0.030330 0.704504 0.312500 +v -0.074524 0.660310 0.312500 +v -0.251300 0.483533 0.687500 +v -0.295495 0.969669 0.312500 +v -0.560660 0.704504 0.312500 +v -0.074524 0.660310 0.687500 +v -0.295494 0.439339 0.312500 +v -0.472271 0.704504 0.625000 +v -0.295495 0.881281 0.375000 +v -0.295494 0.527727 0.375000 +v -0.472271 0.704504 0.375000 +v -0.118718 0.704504 0.375000 +v -0.295494 0.527727 0.625000 +v -0.118718 0.704504 0.625000 +v -0.295495 0.881281 0.625000 +v 1.516466 2.251301 0.687500 +v 1.251301 2.516466 0.312500 +v 1.516466 2.251300 0.312500 +v 1.339689 2.074524 0.687500 +v 1.339689 2.074524 0.312500 +v 1.560660 2.295495 0.687500 +v 1.295495 2.560660 0.687500 +v 1.295495 2.030330 0.687500 +v 1.030330 2.295495 0.687500 +v 1.030330 2.295495 0.312500 +v 1.074524 2.339689 0.312500 +v 1.251301 2.516466 0.687500 +v 1.295495 2.030330 0.312500 +v 1.560660 2.295495 0.312500 +v 1.074524 2.339689 0.687500 +v 1.295495 2.560660 0.312500 +v 1.472272 2.295495 0.625000 +v 1.295495 2.118718 0.375000 +v 1.295495 2.472271 0.375000 +v 1.472272 2.295495 0.375000 +v 1.118719 2.295495 0.375000 +v 1.295495 2.472271 0.625000 +v 1.118719 2.295495 0.625000 +v 1.295495 2.118718 0.625000 +v 1.750000 1.312500 0.687500 +v 1.750000 1.687500 0.312500 +v 1.750000 1.312500 0.312500 +v 1.500000 1.312500 0.687500 +v 1.500000 1.312500 0.312500 +v 1.812500 1.312500 0.687500 +v 1.812500 1.687500 0.687500 v 1.437500 1.312500 0.687500 -v 1.500000 1.312499 0.687500 -v 1.750000 1.312499 0.312500 -v 1.437500 1.687499 0.687500 -v 1.812500 1.687499 0.687500 -v 1.500000 1.312499 0.312500 -v 1.812500 1.312499 0.687500 -v 1.750000 1.624999 0.375000 -v 1.500000 1.624999 0.625000 -v 1.750000 1.374999 0.625000 -v 1.750000 1.624999 0.625000 -v 1.500000 1.374999 0.625000 -v 1.750000 1.374999 0.375000 +v 1.437500 1.687500 0.687500 +v 1.437500 1.687500 0.312500 +v 1.500000 1.687500 0.312500 +v 1.750000 1.687500 0.687500 +v 1.437500 1.312500 0.312500 +v 1.812500 1.312500 0.312500 +v 1.500000 1.687500 0.687500 +v 1.812500 1.687500 0.312500 +v 1.750000 1.375000 0.625000 v 1.500000 1.375000 0.375000 -v 1.500000 1.624999 0.375000 -v 0.312500 2.750000 0.312501 -v 0.687500 2.750000 0.687501 -v 0.312500 2.750000 0.687501 -v 0.312500 2.500000 0.312500 -v 0.312500 2.500000 0.687500 -v 0.312500 2.812500 0.312501 -v 0.687500 2.812500 0.312501 -v 0.312500 2.437500 0.312500 -v 0.687500 2.437500 0.312500 -v 0.687500 2.437500 0.687500 +v 1.750000 1.625000 0.375000 +v 1.750000 1.375000 0.375000 +v 1.500000 1.625000 0.375000 +v 1.750000 1.625000 0.625000 +v 1.500000 1.625000 0.625000 +v 1.500000 1.375000 0.625000 +v -0.750000 1.687499 0.687500 +v -0.750000 1.312499 0.312500 +v -0.750000 1.687499 0.312500 +v -0.500000 1.687499 0.687500 +v -0.500000 1.687499 0.312500 +v -0.812500 1.687499 0.687500 +v -0.812500 1.312499 0.687500 +v -0.437500 1.687499 0.687500 +v -0.437500 1.312499 0.687500 +v -0.437500 1.312500 0.312500 +v -0.500000 1.312499 0.312500 +v -0.750000 1.312499 0.687500 +v -0.437500 1.687499 0.312500 +v -0.812500 1.687499 0.312500 +v -0.500000 1.312499 0.687500 +v -0.812500 1.312499 0.312500 +v -0.750000 1.624999 0.625000 +v -0.500000 1.624999 0.375000 +v -0.750000 1.374999 0.375000 +v -0.750000 1.624999 0.375000 +v -0.500000 1.374999 0.375000 +v -0.750000 1.374999 0.625000 +v -0.500000 1.375000 0.625000 +v -0.500000 1.624999 0.625000 +v 0.687500 2.750000 0.687499 +v 0.312500 2.750000 0.312499 +v 0.687500 2.750000 0.312499 v 0.687500 2.500000 0.687500 -v 0.687500 2.750000 0.312501 -v 0.312500 2.437500 0.687500 -v 0.312500 2.812500 0.687501 v 0.687500 2.500000 0.312500 -v 0.687500 2.812500 0.687501 -v 0.375000 2.750000 0.375001 -v 0.375000 2.500000 0.625000 -v 0.625000 2.750000 0.625000 -v 0.375000 2.750000 0.625000 -v 0.625000 2.500000 0.625000 -v 0.625000 2.750000 0.375001 +v 0.687500 2.812500 0.687499 +v 0.312500 2.812500 0.687499 +v 0.687500 2.437500 0.687500 +v 0.312500 2.437500 0.687500 +v 0.312500 2.437500 0.312500 +v 0.312500 2.500000 0.312500 +v 0.312500 2.750000 0.687500 +v 0.687500 2.437500 0.312500 +v 0.687500 2.812500 0.312499 +v 0.312500 2.500000 0.687500 +v 0.312500 2.812500 0.312499 +v 0.625000 2.750000 0.624999 v 0.625000 2.500000 0.375000 +v 0.375000 2.750000 0.375000 +v 0.625000 2.750000 0.374999 v 0.375000 2.500000 0.375000 -v 0.750000 1.625000 1.000000 -v 0.750000 1.375000 1.000000 -v 0.750000 1.625000 1.625000 -v 0.750000 1.375000 1.625000 -v 1.000000 1.625000 1.000000 -v 1.000000 1.375000 1.000000 -v 1.000000 1.625000 1.625000 -v 1.000000 1.375000 1.625000 -v 0.250000 1.625000 1.000000 -v 0.250000 1.375000 1.000000 -v 0.250000 1.625000 1.625000 -v 0.250000 1.375000 1.625000 -v 0.000000 1.625000 1.000000 -v 0.000000 1.375000 1.000000 -v 0.000000 1.625000 1.625000 -v 0.000000 1.375000 1.625000 -v 0.750000 1.437500 1.156250 -v 0.750000 1.562500 1.156250 -v 0.750000 1.437500 1.031250 -v 0.750000 1.562500 1.031250 -v 0.250000 1.437500 1.156250 -v 0.250000 1.562500 1.156250 -v 0.250000 1.437500 1.031250 -v 0.250000 1.562500 1.031250 +v 0.375000 2.750000 0.625000 +v 0.375000 2.500000 0.625000 +v 0.625000 2.500000 0.625000 +v 0.250000 1.625000 0.000000 +v 0.250000 1.375000 0.000000 +v 0.250000 1.625000 -0.625000 +v 0.250000 1.375000 -0.625000 +v -0.000000 1.625000 0.000000 +v -0.000000 1.375000 0.000000 +v -0.000000 1.625000 -0.625000 +v -0.000000 1.375000 -0.625000 +v 0.750000 1.625000 0.000000 +v 0.750000 1.375000 0.000000 +v 0.750000 1.625000 -0.625000 +v 0.750000 1.375000 -0.625000 +v 1.000000 1.625000 -0.000000 +v 1.000000 1.375000 -0.000000 +v 1.000000 1.625000 -0.625000 +v 1.000000 1.375000 -0.625000 +v 0.250000 1.437500 -0.156250 +v 0.250000 1.562500 -0.156250 +v 0.250000 1.437500 -0.031250 +v 0.250000 1.562500 -0.031250 +v 0.750000 1.437500 -0.156250 +v 0.750000 1.562500 -0.156250 +v 0.750000 1.437500 -0.031250 +v 0.750000 1.562500 -0.031250 vt 0.375000 0.250000 vt 0.750000 0.250000 vt 0.750000 0.312500 @@ -2157,34 +2157,34 @@ vt 0.875000 0.656250 vt 0.843750 0.656250 vt 0.843750 0.812500 vt 0.875000 0.812500 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn -0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 -0.0000 vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 vn 0.0000 -1.0000 0.0000 -vn 0.9864 0.1644 0.0000 -vn -0.9864 -0.1644 0.0000 vn -0.9864 0.1644 0.0000 vn 0.9864 -0.1644 -0.0000 -vn -0.9701 0.2425 0.0000 -vn 0.0000 0.6441 0.7649 -vn 0.0000 0.6441 -0.7649 -vn 0.9242 0.3818 0.0000 +vn 0.9864 0.1644 -0.0000 +vn -0.9864 -0.1644 0.0000 vn 0.9701 0.2425 0.0000 +vn 0.0000 0.6441 -0.7649 +vn 0.0000 0.6441 0.7649 vn -0.9242 0.3818 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.3827 0.9239 0.0000 +vn -0.9701 0.2425 0.0000 +vn 0.9242 0.3818 0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.7071 0.7071 -0.0000 vn -0.3827 0.9239 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.7071 -0.7071 -0.0000 -vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 -0.0000 usemtl None s off f 4/1/1 2/2/1 1/3/1 3/4/1 diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj index 7e19693..33032bf 100644 --- a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_rotor.obj @@ -2,574 +2,574 @@ # www.blender.org mtllib universal_motor.mtl o Rotor_Rotor.Shaft -v -0.125000 -0.125000 -1.500000 -v -0.125000 0.125000 -1.500000 -v 0.125000 0.125000 -1.500000 -v -0.125000 -0.125000 1.500000 -v -0.125000 0.125000 1.500000 v 0.125000 -0.125000 1.500000 v 0.125000 0.125000 1.500000 +v -0.125000 0.125000 1.500000 v 0.125000 -0.125000 -1.500000 -v 0.073934 0.178492 -0.075000 -v 0.073934 0.178492 0.075000 -v 0.178492 0.073934 -0.075000 -v 0.178492 0.073934 0.075000 -v 0.178492 -0.073934 -0.075000 -v 0.178492 -0.073934 0.075000 -v 0.073934 -0.178493 -0.075000 -v 0.073934 -0.178493 0.075000 -v -0.073934 -0.178492 -0.075000 -v -0.073934 -0.178492 0.075000 -v -0.178493 -0.073934 -0.075000 -v -0.178493 -0.073934 0.075000 -v -0.178492 0.073934 -0.075000 +v 0.125000 0.125000 -1.500000 +v -0.125000 -0.125000 -1.500000 +v -0.125000 0.125000 -1.500000 +v -0.125000 -0.125000 1.500000 +v -0.073934 0.178492 0.075000 +v -0.073934 0.178492 -0.075000 v -0.178492 0.073934 0.075000 -v -0.073934 0.178493 -0.075000 -v -0.073934 0.178493 0.075000 -v 0.062500 -0.562500 0.062500 -v -0.062500 -0.562500 0.062500 -v 0.062500 -0.562500 -0.062500 +v -0.178492 0.073934 -0.075000 +v -0.178492 -0.073934 0.075000 +v -0.178492 -0.073934 -0.075000 +v -0.073934 -0.178493 0.075000 +v -0.073934 -0.178493 -0.075000 +v 0.073934 -0.178492 0.075000 +v 0.073934 -0.178492 -0.075000 +v 0.178493 -0.073934 0.075000 +v 0.178493 -0.073934 -0.075000 +v 0.178492 0.073934 0.075000 +v 0.178492 0.073934 -0.075000 +v 0.073934 0.178493 0.075000 +v 0.073934 0.178493 -0.075000 v -0.062500 -0.562500 -0.062500 -v 0.062500 0.563750 0.062500 -v -0.062500 0.563750 0.062500 -v 0.062500 0.563750 -0.062500 +v 0.062500 -0.562500 -0.062500 +v -0.062500 -0.562500 0.062500 +v 0.062500 -0.562500 0.062500 v -0.062500 0.563750 -0.062500 -v 0.563125 0.063125 0.062500 -v 0.563125 -0.061875 0.062500 -v 0.563125 0.063125 -0.062500 -v 0.563125 -0.061875 -0.062500 -v -0.563125 0.063125 0.062500 -v -0.563125 -0.061875 0.062500 +v 0.062500 0.563750 -0.062500 +v -0.062500 0.563750 0.062500 +v 0.062500 0.563750 0.062500 v -0.563125 0.063125 -0.062500 v -0.563125 -0.061875 -0.062500 -v -0.353996 -0.441759 0.062500 -v -0.442384 -0.353370 0.062500 -v -0.353996 -0.441759 -0.062500 -v -0.442384 -0.353370 -0.062500 -v 0.442384 0.354620 0.062500 -v 0.353995 0.443008 0.062500 -v 0.442384 0.354620 -0.062500 -v 0.353995 0.443009 -0.062500 -v 0.442384 -0.353370 0.062500 -v 0.353995 -0.441759 0.062500 +v -0.563125 0.063125 0.062500 +v -0.563125 -0.061875 0.062500 +v 0.563125 0.063125 -0.062500 +v 0.563125 -0.061875 -0.062500 +v 0.563125 0.063125 0.062500 +v 0.563125 -0.061875 0.062500 +v 0.353996 -0.441759 -0.062500 v 0.442384 -0.353370 -0.062500 -v 0.353995 -0.441759 -0.062500 -v -0.353995 0.443009 0.062500 -v -0.442384 0.354620 0.062500 -v -0.353995 0.443009 -0.062500 +v 0.353996 -0.441759 0.062500 +v 0.442384 -0.353370 0.062500 v -0.442384 0.354620 -0.062500 -v -0.180264 -0.843750 -0.187500 -v 0.180265 -0.843750 0.187500 -v -0.180264 -0.843750 0.187500 -v -0.118104 -0.593750 -0.187500 -v -0.118104 -0.593750 0.187500 -v -0.180264 -0.906250 -0.187500 -v 0.180265 -0.906250 -0.187500 -v -0.118104 -0.531250 -0.187500 -v 0.118104 -0.531250 -0.187500 -v 0.118104 -0.531250 0.187500 -v 0.118104 -0.593750 0.187500 +v -0.353995 0.443008 -0.062500 +v -0.442384 0.354620 0.062500 +v -0.353995 0.443009 0.062500 +v -0.442384 -0.353370 -0.062500 +v -0.353995 -0.441759 -0.062500 +v -0.442384 -0.353370 0.062500 +v -0.353995 -0.441759 0.062500 +v 0.353995 0.443009 -0.062500 +v 0.442384 0.354620 -0.062500 +v 0.353995 0.443009 0.062500 +v 0.442384 0.354620 0.062500 +v 0.180264 -0.843750 0.187500 +v -0.180265 -0.843750 -0.187500 v 0.180264 -0.843750 -0.187500 -v -0.118104 -0.531250 0.187500 -v -0.180264 -0.906250 0.187500 +v 0.118104 -0.593750 0.187500 v 0.118104 -0.593750 -0.187500 -v 0.180265 -0.906250 0.187500 -v -0.125000 -0.843750 -0.125000 -v -0.125000 -0.593750 0.125000 +v 0.180264 -0.906250 0.187500 +v -0.180265 -0.906250 0.187500 +v 0.118104 -0.531250 0.187500 +v -0.118104 -0.531250 0.187500 +v -0.118104 -0.531250 -0.187500 +v -0.118104 -0.593750 -0.187500 +v -0.180264 -0.843750 0.187500 +v 0.118104 -0.531250 -0.187500 +v 0.180264 -0.906250 -0.187500 +v -0.118104 -0.593750 0.187500 +v -0.180265 -0.906250 -0.187500 v 0.125000 -0.843750 0.125000 -v -0.125000 -0.843750 0.125000 -v 0.125000 -0.593750 0.125000 -v 0.125000 -0.843750 -0.125000 v 0.125000 -0.593750 -0.125000 +v -0.125000 -0.843750 -0.125000 +v 0.125000 -0.843750 -0.125000 v -0.125000 -0.593750 -0.125000 -v -0.489432 -0.710539 -0.187500 -v -0.156346 -0.848508 0.187500 -v -0.489431 -0.710539 0.187500 -v -0.336332 -0.503357 -0.187500 -v -0.336332 -0.503357 0.187500 -v -0.513349 -0.768282 -0.187500 -v -0.180264 -0.906250 -0.187500 -v -0.312415 -0.445615 -0.187500 -v -0.094187 -0.536008 -0.187500 -v -0.094187 -0.536008 0.187500 -v -0.118104 -0.593750 0.187500 -v -0.156347 -0.848508 -0.187500 -v -0.312415 -0.445615 0.187500 -v -0.513349 -0.768282 0.187500 -v -0.118104 -0.593750 -0.187500 -v -0.180264 -0.906250 0.187500 -v -0.438374 -0.731688 -0.125000 -v -0.342703 -0.500718 0.125000 -v -0.207404 -0.827359 0.125000 -v -0.438374 -0.731688 0.125000 -v -0.111733 -0.596389 0.125000 -v -0.207404 -0.827359 -0.125000 -v -0.111733 -0.596389 -0.125000 -v -0.342703 -0.500718 -0.125000 -v 0.489432 0.710539 -0.187500 -v 0.156347 0.848507 0.187500 -v 0.489432 0.710539 0.187500 -v 0.336332 0.503357 -0.187500 -v 0.336332 0.503357 0.187500 -v 0.513350 0.768282 -0.187500 -v 0.180264 0.906250 -0.187500 -v 0.312415 0.445615 -0.187500 -v 0.094187 0.536008 -0.187500 -v 0.094187 0.536007 0.187500 -v 0.118104 0.593750 0.187500 -v 0.156347 0.848508 -0.187500 -v 0.312415 0.445614 0.187500 -v 0.513349 0.768281 0.187500 -v 0.118104 0.593750 -0.187500 -v 0.180264 0.906250 0.187500 -v 0.438374 0.731688 -0.125000 -v 0.342703 0.500718 0.125000 -v 0.207404 0.827359 0.125000 -v 0.438374 0.731688 0.125000 -v 0.111734 0.596389 0.125000 -v 0.207404 0.827359 -0.125000 -v 0.111734 0.596389 -0.125000 -v 0.342703 0.500718 -0.125000 -v -0.710539 0.489432 -0.187500 -v -0.848507 0.156347 0.187500 -v -0.710539 0.489432 0.187500 -v -0.503357 0.336333 -0.187500 -v -0.503357 0.336333 0.187500 -v -0.768282 0.513350 -0.187500 -v -0.906250 0.180264 -0.187500 -v -0.445615 0.312415 -0.187500 -v -0.536007 0.094187 -0.187500 -v -0.536007 0.094187 0.187500 -v -0.593750 0.118104 0.187500 -v -0.848507 0.156347 -0.187500 -v -0.445614 0.312415 0.187500 -v -0.768282 0.513349 0.187500 -v -0.593750 0.118104 -0.187500 -v -0.906250 0.180264 0.187500 -v -0.731688 0.438374 -0.125000 -v -0.500718 0.342703 0.125000 -v -0.827359 0.207404 0.125000 -v -0.731688 0.438374 0.125000 -v -0.596389 0.111734 0.125000 -v -0.827359 0.207404 -0.125000 -v -0.596389 0.111734 -0.125000 -v -0.500718 0.342704 -0.125000 -v 0.710539 -0.489432 -0.187500 -v 0.848508 -0.156347 0.187500 -v 0.710539 -0.489432 0.187500 -v 0.503357 -0.336332 -0.187500 -v 0.503357 -0.336332 0.187500 -v 0.768282 -0.513349 -0.187500 -v 0.906250 -0.180264 -0.187500 -v 0.445615 -0.312415 -0.187500 -v 0.536008 -0.094187 -0.187500 -v 0.536008 -0.094187 0.187500 -v 0.593750 -0.118104 0.187500 -v 0.848508 -0.156347 -0.187500 -v 0.445614 -0.312415 0.187500 -v 0.768282 -0.513349 0.187500 -v 0.593750 -0.118104 -0.187500 -v 0.906250 -0.180264 0.187500 -v 0.731688 -0.438374 -0.125000 -v 0.500718 -0.342703 0.125000 -v 0.827359 -0.207404 0.125000 -v 0.731688 -0.438374 0.125000 -v 0.596389 -0.111733 0.125000 -v 0.827359 -0.207404 -0.125000 -v 0.596389 -0.111733 -0.125000 -v 0.500718 -0.342703 -0.125000 -v 0.848508 0.156347 -0.187500 +v -0.125000 -0.843750 0.125000 +v -0.125000 -0.593750 0.125000 +v 0.125000 -0.593750 0.125000 +v 0.489432 -0.710539 0.187500 +v 0.156346 -0.848508 -0.187500 +v 0.489431 -0.710539 -0.187500 +v 0.336332 -0.503357 0.187500 +v 0.336332 -0.503357 -0.187500 +v 0.513349 -0.768282 0.187500 +v 0.180264 -0.906250 0.187500 +v 0.312415 -0.445615 0.187500 +v 0.094187 -0.536008 0.187500 +v 0.094187 -0.536008 -0.187500 +v 0.118104 -0.593750 -0.187500 +v 0.156347 -0.848508 0.187500 +v 0.312415 -0.445615 -0.187500 +v 0.513349 -0.768282 -0.187500 +v 0.118104 -0.593750 0.187500 +v 0.180264 -0.906250 -0.187500 +v 0.438374 -0.731688 0.125000 +v 0.342703 -0.500718 -0.125000 +v 0.207404 -0.827359 -0.125000 +v 0.438374 -0.731688 -0.125000 +v 0.111733 -0.596389 -0.125000 +v 0.207404 -0.827359 0.125000 +v 0.111733 -0.596389 0.125000 +v 0.342703 -0.500718 0.125000 +v -0.489432 0.710539 0.187500 +v -0.156347 0.848507 -0.187500 +v -0.489432 0.710539 -0.187500 +v -0.336332 0.503357 0.187500 +v -0.336332 0.503357 -0.187500 +v -0.513350 0.768282 0.187500 +v -0.180264 0.906250 0.187500 +v -0.312415 0.445615 0.187500 +v -0.094187 0.536008 0.187500 +v -0.094187 0.536007 -0.187500 +v -0.118104 0.593750 -0.187500 +v -0.156347 0.848508 0.187500 +v -0.312415 0.445614 -0.187500 +v -0.513349 0.768281 -0.187500 +v -0.118104 0.593750 0.187500 +v -0.180264 0.906250 -0.187500 +v -0.438374 0.731688 0.125000 +v -0.342703 0.500718 -0.125000 +v -0.207405 0.827359 -0.125000 +v -0.438374 0.731688 -0.125000 +v -0.111734 0.596389 -0.125000 +v -0.207404 0.827359 0.125000 +v -0.111734 0.596389 0.125000 +v -0.342703 0.500718 0.125000 v 0.710539 0.489432 0.187500 -v 0.848508 0.156347 0.187500 -v 0.593750 0.118104 -0.187500 -v 0.593750 0.118104 0.187500 -v 0.906250 0.180264 -0.187500 -v 0.768282 0.513350 -0.187500 -v 0.536008 0.094187 -0.187500 -v 0.445615 0.312415 -0.187500 -v 0.445615 0.312415 0.187500 -v 0.503357 0.336332 0.187500 +v 0.848507 0.156347 -0.187500 v 0.710539 0.489432 -0.187500 -v 0.536008 0.094187 0.187500 -v 0.906250 0.180265 0.187500 +v 0.503357 0.336333 0.187500 v 0.503357 0.336333 -0.187500 v 0.768282 0.513350 0.187500 -v 0.827359 0.207404 -0.125000 -v 0.596389 0.111733 0.125000 +v 0.906250 0.180264 0.187500 +v 0.445615 0.312415 0.187500 +v 0.536007 0.094187 0.187500 +v 0.536007 0.094187 -0.187500 +v 0.593750 0.118104 -0.187500 +v 0.848507 0.156347 0.187500 +v 0.445614 0.312415 -0.187500 +v 0.768282 0.513349 -0.187500 +v 0.593750 0.118104 0.187500 +v 0.906250 0.180264 -0.187500 v 0.731688 0.438374 0.125000 -v 0.827359 0.207404 0.125000 -v 0.500718 0.342703 0.125000 -v 0.731688 0.438374 -0.125000 v 0.500718 0.342703 -0.125000 -v 0.596389 0.111733 -0.125000 -v -0.848508 -0.156347 -0.187500 +v 0.827359 0.207404 -0.125000 +v 0.731688 0.438374 -0.125000 +v 0.596389 0.111734 -0.125000 +v 0.827359 0.207404 0.125000 +v 0.596389 0.111734 0.125000 +v 0.500718 0.342704 0.125000 v -0.710539 -0.489432 0.187500 -v -0.848508 -0.156347 0.187500 -v -0.593750 -0.118104 -0.187500 -v -0.593750 -0.118104 0.187500 -v -0.906250 -0.180265 -0.187500 -v -0.768281 -0.513349 -0.187500 -v -0.536008 -0.094186 -0.187500 -v -0.445615 -0.312414 -0.187500 -v -0.445614 -0.312414 0.187500 -v -0.503357 -0.336332 0.187500 +v -0.848508 -0.156347 -0.187500 v -0.710539 -0.489432 -0.187500 -v -0.536008 -0.094186 0.187500 -v -0.906250 -0.180265 0.187500 +v -0.503357 -0.336332 0.187500 v -0.503357 -0.336332 -0.187500 -v -0.768281 -0.513349 0.187500 -v -0.827359 -0.207404 -0.125000 -v -0.596389 -0.111733 0.125000 +v -0.768282 -0.513349 0.187500 +v -0.906250 -0.180264 0.187500 +v -0.445615 -0.312415 0.187500 +v -0.536008 -0.094187 0.187500 +v -0.536008 -0.094187 -0.187500 +v -0.593750 -0.118104 -0.187500 +v -0.848508 -0.156347 0.187500 +v -0.445614 -0.312415 -0.187500 +v -0.768282 -0.513349 -0.187500 +v -0.593750 -0.118104 0.187500 +v -0.906250 -0.180264 -0.187500 v -0.731688 -0.438374 0.125000 -v -0.827359 -0.207404 0.125000 -v -0.500718 -0.342703 0.125000 -v -0.731688 -0.438374 -0.125000 v -0.500718 -0.342703 -0.125000 +v -0.827359 -0.207404 -0.125000 +v -0.731688 -0.438374 -0.125000 v -0.596389 -0.111733 -0.125000 -v -0.156347 0.848508 -0.187500 -v -0.489432 0.710539 0.187500 -v -0.156347 0.848507 0.187500 -v -0.118104 0.593750 -0.187500 -v -0.118104 0.593750 0.187500 -v -0.180264 0.906250 -0.187500 -v -0.513349 0.768282 -0.187500 -v -0.094186 0.536008 -0.187500 -v -0.312414 0.445615 -0.187500 -v -0.312414 0.445615 0.187500 -v -0.336332 0.503357 0.187500 -v -0.489432 0.710539 -0.187500 -v -0.094186 0.536008 0.187500 -v -0.180264 0.906250 0.187500 -v -0.336332 0.503357 -0.187500 -v -0.513349 0.768282 0.187500 -v -0.207404 0.827359 -0.125000 -v -0.111733 0.596389 0.125000 -v -0.438374 0.731688 0.125000 -v -0.207404 0.827359 0.125000 -v -0.342703 0.500718 0.125000 -v -0.438374 0.731688 -0.125000 -v -0.342703 0.500718 -0.125000 -v -0.111733 0.596389 -0.125000 -v 0.156347 -0.848507 -0.187500 -v 0.489432 -0.710539 0.187500 -v 0.156347 -0.848507 0.187500 -v 0.118104 -0.593750 -0.187500 -v 0.118104 -0.593750 0.187500 -v 0.180264 -0.906250 -0.187500 -v 0.513350 -0.768282 -0.187500 -v 0.094187 -0.536008 -0.187500 -v 0.312415 -0.445615 -0.187500 -v 0.312415 -0.445615 0.187500 -v 0.336332 -0.503357 0.187500 -v 0.489432 -0.710539 -0.187500 -v 0.094187 -0.536008 0.187500 -v 0.180265 -0.906250 0.187500 -v 0.336332 -0.503357 -0.187500 -v 0.513350 -0.768282 0.187500 -v 0.207404 -0.827359 -0.125000 -v 0.111733 -0.596389 0.125000 -v 0.438374 -0.731688 0.125000 -v 0.207404 -0.827359 0.125000 -v 0.342703 -0.500718 0.125000 -v 0.438374 -0.731688 -0.125000 -v 0.342703 -0.500718 -0.125000 -v 0.111733 -0.596389 -0.125000 -v 0.469155 -0.724087 -0.187500 -v 0.724088 -0.469155 0.187500 -v 0.469155 -0.724087 0.187500 -v 0.336332 -0.503357 -0.187500 -v 0.336332 -0.503357 0.187500 -v 0.513350 -0.768282 -0.187500 -v 0.768282 -0.513349 -0.187500 -v 0.292138 -0.459163 -0.187500 -v 0.459163 -0.292138 -0.187500 -v 0.459163 -0.292138 0.187500 -v 0.503357 -0.336332 0.187500 -v 0.724088 -0.469155 -0.187500 -v 0.292138 -0.459163 0.187500 -v 0.513350 -0.768282 0.187500 -v 0.503357 -0.336332 -0.187500 -v 0.768282 -0.513349 0.187500 -v 0.508233 -0.685010 -0.125000 -v 0.331456 -0.508233 0.125000 -v 0.685010 -0.508233 0.125000 -v 0.508233 -0.685010 0.125000 -v 0.508233 -0.331456 0.125000 -v 0.685010 -0.508233 -0.125000 -v 0.508233 -0.331456 -0.125000 -v 0.331456 -0.508233 -0.125000 -v -0.469155 0.724087 -0.187500 -v -0.724087 0.469155 0.187500 -v -0.469155 0.724087 0.187500 -v -0.336332 0.503357 -0.187500 -v -0.336332 0.503357 0.187500 -v -0.513349 0.768282 -0.187500 -v -0.768282 0.513350 -0.187500 -v -0.292138 0.459163 -0.187500 -v -0.459163 0.292138 -0.187500 -v -0.459163 0.292138 0.187500 -v -0.503357 0.336333 0.187500 -v -0.724087 0.469155 -0.187500 -v -0.292138 0.459163 0.187500 -v -0.513349 0.768281 0.187500 -v -0.503357 0.336333 -0.187500 +v -0.827359 -0.207404 0.125000 +v -0.596389 -0.111733 0.125000 +v -0.500718 -0.342703 0.125000 +v -0.848508 0.156347 0.187500 +v -0.710539 0.489432 -0.187500 +v -0.848508 0.156347 -0.187500 +v -0.593750 0.118104 0.187500 +v -0.593750 0.118104 -0.187500 +v -0.906250 0.180264 0.187500 v -0.768282 0.513350 0.187500 -v -0.508233 0.685010 -0.125000 -v -0.331456 0.508233 0.125000 -v -0.685009 0.508233 0.125000 -v -0.508233 0.685010 0.125000 -v -0.508233 0.331456 0.125000 -v -0.685009 0.508233 -0.125000 -v -0.508233 0.331457 -0.125000 -v -0.331456 0.508233 -0.125000 -v -0.724087 -0.469155 -0.187500 -v -0.469155 -0.724087 0.187500 -v -0.724087 -0.469155 0.187500 -v -0.503357 -0.336332 -0.187500 -v -0.503357 -0.336332 0.187500 -v -0.768282 -0.513350 -0.187500 -v -0.513349 -0.768282 -0.187500 -v -0.459163 -0.292138 -0.187500 -v -0.292138 -0.459163 -0.187500 -v -0.292138 -0.459162 0.187500 +v -0.536008 0.094187 0.187500 +v -0.445615 0.312415 0.187500 +v -0.445615 0.312415 -0.187500 +v -0.503357 0.336332 -0.187500 +v -0.710539 0.489432 0.187500 +v -0.536008 0.094187 -0.187500 +v -0.906250 0.180265 -0.187500 +v -0.503357 0.336333 0.187500 +v -0.768282 0.513350 -0.187500 +v -0.827359 0.207404 0.125000 +v -0.596389 0.111733 -0.125000 +v -0.731688 0.438374 -0.125000 +v -0.827359 0.207404 -0.125000 +v -0.500718 0.342703 -0.125000 +v -0.731688 0.438374 0.125000 +v -0.500718 0.342703 0.125000 +v -0.596389 0.111733 0.125000 +v 0.848508 -0.156347 0.187500 +v 0.710539 -0.489432 -0.187500 +v 0.848508 -0.156347 -0.187500 +v 0.593750 -0.118104 0.187500 +v 0.593750 -0.118104 -0.187500 +v 0.906250 -0.180265 0.187500 +v 0.768281 -0.513349 0.187500 +v 0.536008 -0.094186 0.187500 +v 0.445615 -0.312414 0.187500 +v 0.445614 -0.312414 -0.187500 +v 0.503357 -0.336332 -0.187500 +v 0.710539 -0.489432 0.187500 +v 0.536008 -0.094186 -0.187500 +v 0.906250 -0.180265 -0.187500 +v 0.503357 -0.336332 0.187500 +v 0.768281 -0.513349 -0.187500 +v 0.827359 -0.207404 0.125000 +v 0.596389 -0.111733 -0.125000 +v 0.731688 -0.438374 -0.125000 +v 0.827359 -0.207404 -0.125000 +v 0.500718 -0.342703 -0.125000 +v 0.731688 -0.438374 0.125000 +v 0.500718 -0.342703 0.125000 +v 0.596389 -0.111733 0.125000 +v 0.156347 0.848508 0.187500 +v 0.489432 0.710539 -0.187500 +v 0.156347 0.848507 -0.187500 +v 0.118104 0.593750 0.187500 +v 0.118104 0.593750 -0.187500 +v 0.180264 0.906250 0.187500 +v 0.513349 0.768282 0.187500 +v 0.094186 0.536008 0.187500 +v 0.312414 0.445615 0.187500 +v 0.312414 0.445615 -0.187500 +v 0.336332 0.503357 -0.187500 +v 0.489432 0.710539 0.187500 +v 0.094186 0.536008 -0.187500 +v 0.180264 0.906250 -0.187500 +v 0.336332 0.503357 0.187500 +v 0.513349 0.768282 -0.187500 +v 0.207404 0.827359 0.125000 +v 0.111733 0.596389 -0.125000 +v 0.438374 0.731688 -0.125000 +v 0.207404 0.827359 -0.125000 +v 0.342703 0.500718 -0.125000 +v 0.438374 0.731688 0.125000 +v 0.342703 0.500718 0.125000 +v 0.111733 0.596389 0.125000 +v -0.156347 -0.848507 0.187500 +v -0.489432 -0.710539 -0.187500 +v -0.156347 -0.848507 -0.187500 +v -0.118104 -0.593750 0.187500 +v -0.118104 -0.593750 -0.187500 +v -0.180264 -0.906250 0.187500 +v -0.513350 -0.768282 0.187500 +v -0.094187 -0.536008 0.187500 +v -0.312415 -0.445615 0.187500 +v -0.312415 -0.445615 -0.187500 +v -0.336332 -0.503357 -0.187500 +v -0.489432 -0.710539 0.187500 +v -0.094187 -0.536008 -0.187500 +v -0.180265 -0.906250 -0.187500 v -0.336332 -0.503357 0.187500 +v -0.513350 -0.768282 -0.187500 +v -0.207404 -0.827359 0.125000 +v -0.111733 -0.596389 -0.125000 +v -0.438374 -0.731688 -0.125000 +v -0.207404 -0.827359 -0.125000 +v -0.342703 -0.500718 -0.125000 +v -0.438374 -0.731688 0.125000 +v -0.342703 -0.500718 0.125000 +v -0.111733 -0.596389 0.125000 +v -0.469155 -0.724087 0.187500 +v -0.724088 -0.469155 -0.187500 v -0.469155 -0.724087 -0.187500 -v -0.459163 -0.292138 0.187500 -v -0.768282 -0.513350 0.187500 +v -0.336332 -0.503357 0.187500 v -0.336332 -0.503357 -0.187500 -v -0.513349 -0.768282 0.187500 -v -0.685010 -0.508233 -0.125000 -v -0.508233 -0.331456 0.125000 +v -0.513350 -0.768282 0.187500 +v -0.768282 -0.513349 0.187500 +v -0.292138 -0.459163 0.187500 +v -0.459163 -0.292138 0.187500 +v -0.459163 -0.292138 -0.187500 +v -0.503357 -0.336332 -0.187500 +v -0.724088 -0.469155 0.187500 +v -0.292138 -0.459163 -0.187500 +v -0.513350 -0.768282 -0.187500 +v -0.503357 -0.336332 0.187500 +v -0.768282 -0.513349 -0.187500 v -0.508233 -0.685010 0.125000 -v -0.685010 -0.508233 0.125000 -v -0.331456 -0.508233 0.125000 -v -0.508233 -0.685010 -0.125000 v -0.331456 -0.508233 -0.125000 +v -0.685010 -0.508233 -0.125000 +v -0.508233 -0.685010 -0.125000 v -0.508233 -0.331456 -0.125000 -v 0.724087 0.469155 -0.187500 +v -0.685010 -0.508233 0.125000 +v -0.508233 -0.331456 0.125000 +v -0.331456 -0.508233 0.125000 v 0.469155 0.724087 0.187500 -v 0.724087 0.469155 0.187500 -v 0.503357 0.336333 -0.187500 -v 0.503357 0.336332 0.187500 -v 0.768282 0.513350 -0.187500 -v 0.513350 0.768282 -0.187500 -v 0.459163 0.292138 -0.187500 -v 0.292138 0.459163 -0.187500 -v 0.292138 0.459163 0.187500 +v 0.724087 0.469155 -0.187500 +v 0.469155 0.724087 -0.187500 v 0.336332 0.503357 0.187500 -v 0.469155 0.724088 -0.187500 -v 0.459163 0.292138 0.187500 -v 0.768282 0.513350 0.187500 v 0.336332 0.503357 -0.187500 v 0.513349 0.768282 0.187500 -v 0.685010 0.508233 -0.125000 -v 0.508233 0.331456 0.125000 +v 0.768282 0.513350 0.187500 +v 0.292138 0.459163 0.187500 +v 0.459163 0.292138 0.187500 +v 0.459163 0.292138 -0.187500 +v 0.503357 0.336333 -0.187500 +v 0.724087 0.469155 0.187500 +v 0.292138 0.459163 -0.187500 +v 0.513349 0.768281 -0.187500 +v 0.503357 0.336333 0.187500 +v 0.768282 0.513350 -0.187500 v 0.508233 0.685010 0.125000 -v 0.685010 0.508233 0.125000 -v 0.331456 0.508233 0.125000 -v 0.508233 0.685010 -0.125000 v 0.331456 0.508233 -0.125000 +v 0.685009 0.508233 -0.125000 +v 0.508233 0.685010 -0.125000 v 0.508233 0.331456 -0.125000 -v 0.843750 -0.180264 -0.187500 -v 0.843750 0.180264 0.187500 -v 0.843750 -0.180264 0.187500 -v 0.593750 -0.118104 -0.187500 -v 0.593750 -0.118104 0.187500 -v 0.906250 -0.180264 -0.187500 -v 0.906250 0.180264 -0.187500 -v 0.531250 -0.118104 -0.187500 -v 0.531250 0.118104 -0.187500 -v 0.531250 0.118104 0.187500 -v 0.593750 0.118104 0.187500 -v 0.843750 0.180264 -0.187500 -v 0.531250 -0.118104 0.187500 -v 0.906250 -0.180264 0.187500 -v 0.593750 0.118104 -0.187500 -v 0.906250 0.180264 0.187500 -v 0.843750 -0.125000 -0.125000 -v 0.593750 -0.125000 0.125000 -v 0.843750 0.125000 0.125000 -v 0.843750 -0.125000 0.125000 -v 0.593750 0.125000 0.125000 -v 0.843750 0.125000 -0.125000 -v 0.593750 0.125000 -0.125000 -v 0.593750 -0.125000 -0.125000 -v -0.843750 0.180264 -0.187500 +v 0.685009 0.508233 0.125000 +v 0.508233 0.331457 0.125000 +v 0.331456 0.508233 0.125000 +v 0.724087 -0.469155 0.187500 +v 0.469155 -0.724087 -0.187500 +v 0.724087 -0.469155 -0.187500 +v 0.503357 -0.336332 0.187500 +v 0.503357 -0.336332 -0.187500 +v 0.768282 -0.513350 0.187500 +v 0.513349 -0.768282 0.187500 +v 0.459163 -0.292138 0.187500 +v 0.292138 -0.459163 0.187500 +v 0.292138 -0.459162 -0.187500 +v 0.336332 -0.503357 -0.187500 +v 0.469155 -0.724087 0.187500 +v 0.459163 -0.292138 -0.187500 +v 0.768282 -0.513350 -0.187500 +v 0.336332 -0.503357 0.187500 +v 0.513349 -0.768282 -0.187500 +v 0.685010 -0.508233 0.125000 +v 0.508233 -0.331456 -0.125000 +v 0.508233 -0.685010 -0.125000 +v 0.685010 -0.508233 -0.125000 +v 0.331456 -0.508233 -0.125000 +v 0.508233 -0.685010 0.125000 +v 0.331456 -0.508233 0.125000 +v 0.508233 -0.331456 0.125000 +v -0.724087 0.469155 0.187500 +v -0.469155 0.724087 -0.187500 +v -0.724087 0.469155 -0.187500 +v -0.503357 0.336333 0.187500 +v -0.503357 0.336332 -0.187500 +v -0.768282 0.513350 0.187500 +v -0.513350 0.768282 0.187500 +v -0.459163 0.292138 0.187500 +v -0.292138 0.459163 0.187500 +v -0.292138 0.459163 -0.187500 +v -0.336332 0.503357 -0.187500 +v -0.469155 0.724088 0.187500 +v -0.459163 0.292138 -0.187500 +v -0.768282 0.513350 -0.187500 +v -0.336332 0.503357 0.187500 +v -0.513349 0.768282 -0.187500 +v -0.685010 0.508233 0.125000 +v -0.508233 0.331456 -0.125000 +v -0.508233 0.685010 -0.125000 +v -0.685010 0.508233 -0.125000 +v -0.331456 0.508233 -0.125000 +v -0.508233 0.685010 0.125000 +v -0.331456 0.508233 0.125000 +v -0.508233 0.331456 0.125000 v -0.843750 -0.180264 0.187500 -v -0.843750 0.180264 0.187500 -v -0.593750 0.118104 -0.187500 -v -0.593750 0.118104 0.187500 -v -0.906250 0.180264 -0.187500 -v -0.906250 -0.180264 -0.187500 -v -0.531250 0.118104 -0.187500 -v -0.531250 -0.118104 -0.187500 -v -0.531250 -0.118104 0.187500 -v -0.593750 -0.118104 0.187500 +v -0.843750 0.180264 -0.187500 v -0.843750 -0.180264 -0.187500 -v -0.531250 0.118104 0.187500 -v -0.906250 0.180264 0.187500 +v -0.593750 -0.118104 0.187500 v -0.593750 -0.118104 -0.187500 v -0.906250 -0.180264 0.187500 -v -0.843750 0.125000 -0.125000 -v -0.593750 0.125000 0.125000 +v -0.906250 0.180264 0.187500 +v -0.531250 -0.118104 0.187500 +v -0.531250 0.118104 0.187500 +v -0.531250 0.118104 -0.187500 +v -0.593750 0.118104 -0.187500 +v -0.843750 0.180264 0.187500 +v -0.531250 -0.118104 -0.187500 +v -0.906250 -0.180264 -0.187500 +v -0.593750 0.118104 0.187500 +v -0.906250 0.180264 -0.187500 v -0.843750 -0.125000 0.125000 -v -0.843750 0.125000 0.125000 -v -0.593750 -0.125000 0.125000 -v -0.843750 -0.125000 -0.125000 v -0.593750 -0.125000 -0.125000 +v -0.843750 0.125000 -0.125000 +v -0.843750 -0.125000 -0.125000 v -0.593750 0.125000 -0.125000 -v 0.180264 0.843750 -0.187500 +v -0.843750 0.125000 0.125000 +v -0.593750 0.125000 0.125000 +v -0.593750 -0.125000 0.125000 +v 0.843750 0.180264 0.187500 +v 0.843750 -0.180264 -0.187500 +v 0.843750 0.180264 -0.187500 +v 0.593750 0.118104 0.187500 +v 0.593750 0.118104 -0.187500 +v 0.906250 0.180264 0.187500 +v 0.906250 -0.180264 0.187500 +v 0.531250 0.118104 0.187500 +v 0.531250 -0.118104 0.187500 +v 0.531250 -0.118104 -0.187500 +v 0.593750 -0.118104 -0.187500 +v 0.843750 -0.180264 0.187500 +v 0.531250 0.118104 -0.187500 +v 0.906250 0.180264 -0.187500 +v 0.593750 -0.118104 0.187500 +v 0.906250 -0.180264 -0.187500 +v 0.843750 0.125000 0.125000 +v 0.593750 0.125000 -0.125000 +v 0.843750 -0.125000 -0.125000 +v 0.843750 0.125000 -0.125000 +v 0.593750 -0.125000 -0.125000 +v 0.843750 -0.125000 0.125000 +v 0.593750 -0.125000 0.125000 +v 0.593750 0.125000 0.125000 v -0.180264 0.843750 0.187500 -v 0.180264 0.843750 0.187500 -v 0.118104 0.593750 -0.187500 -v 0.118104 0.593750 0.187500 -v 0.180264 0.906250 -0.187500 -v -0.180264 0.906250 -0.187500 -v 0.118104 0.531250 -0.187500 -v -0.118104 0.531250 -0.187500 -v -0.118104 0.531250 0.187500 -v -0.118104 0.593750 0.187500 +v 0.180264 0.843750 -0.187500 v -0.180264 0.843750 -0.187500 -v 0.118104 0.531250 0.187500 -v 0.180264 0.906250 0.187500 +v -0.118104 0.593750 0.187500 v -0.118104 0.593750 -0.187500 v -0.180264 0.906250 0.187500 -v 0.125000 0.843750 -0.125000 -v 0.125000 0.593750 0.125000 +v 0.180264 0.906250 0.187500 +v -0.118104 0.531250 0.187500 +v 0.118104 0.531250 0.187500 +v 0.118104 0.531250 -0.187500 +v 0.118104 0.593750 -0.187500 +v 0.180264 0.843750 0.187500 +v -0.118104 0.531250 -0.187500 +v -0.180264 0.906250 -0.187500 +v 0.118104 0.593750 0.187500 +v 0.180264 0.906250 -0.187500 v -0.125000 0.843750 0.125000 -v 0.125000 0.843750 0.125000 -v -0.125000 0.593750 0.125000 -v -0.125000 0.843750 -0.125000 v -0.125000 0.593750 -0.125000 +v 0.125000 0.843750 -0.125000 +v -0.125000 0.843750 -0.125000 v 0.125000 0.593750 -0.125000 -v 0.035458 0.178260 0.500000 -v -0.035458 0.178260 0.500000 -v -0.100976 0.151121 0.500000 -v -0.151121 0.100976 0.500000 -v -0.178260 0.035458 0.500000 -v -0.178260 -0.035458 0.500000 -v -0.151121 -0.100976 0.500000 -v -0.100976 -0.151121 0.500000 -v -0.035458 -0.178260 0.500000 -v 0.035458 -0.178260 0.500000 -v 0.100976 -0.151121 0.500000 -v 0.151121 -0.100976 0.500000 -v 0.178260 -0.035458 0.500000 -v 0.178260 0.035458 0.500000 -v 0.151121 0.100976 0.500000 -v 0.100976 0.151121 0.500000 -v 0.035458 0.178260 0.687500 -v -0.035458 0.178260 0.687500 -v -0.100976 0.151121 0.687500 -v -0.151121 0.100976 0.687500 -v -0.178260 0.035458 0.687500 -v -0.178260 -0.035458 0.687500 -v -0.151121 -0.100976 0.687500 -v -0.100976 -0.151121 0.687500 -v -0.035458 -0.178260 0.687500 -v 0.035458 -0.178260 0.687500 -v 0.100976 -0.151121 0.687500 -v 0.151121 -0.100976 0.687500 -v 0.178260 -0.035458 0.687500 -v 0.178260 0.035458 0.687500 -v 0.151121 0.100976 0.687500 -v 0.100976 0.151121 0.687500 -v 0.021070 0.105925 0.750000 -v -0.021070 0.105925 0.750000 -v -0.060002 0.089799 0.750000 -v -0.089799 0.060002 0.750000 -v -0.105925 0.021070 0.750000 -v -0.105925 -0.021070 0.750000 -v -0.089799 -0.060002 0.750000 -v -0.060002 -0.089799 0.750000 -v -0.021070 -0.105925 0.750000 -v 0.021070 -0.105925 0.750000 -v 0.060002 -0.089799 0.750000 -v 0.089799 -0.060002 0.750000 -v 0.105925 -0.021070 0.750000 -v 0.105925 0.021070 0.750000 -v 0.089799 0.060002 0.750000 -v 0.060002 0.089799 0.750000 -v 0.021070 0.105925 0.437500 -v -0.021070 0.105925 0.437500 -v -0.060002 0.089799 0.437500 -v -0.089799 0.060002 0.437500 -v -0.105925 0.021070 0.437500 -v -0.105925 -0.021070 0.437500 -v -0.089799 -0.060002 0.437500 -v -0.060002 -0.089799 0.437500 -v -0.021070 -0.105925 0.437500 -v 0.021070 -0.105925 0.437500 -v 0.060002 -0.089799 0.437500 -v 0.089799 -0.060002 0.437500 -v 0.105925 -0.021070 0.437500 -v 0.105925 0.021070 0.437500 -v 0.089799 0.060002 0.437500 -v 0.060002 0.089799 0.437500 -v -0.012500 0.143750 0.504991 -v -0.012500 0.168750 0.504991 -v -0.012500 0.143750 0.084845 -v -0.012500 0.168750 0.084845 -v 0.012500 0.143750 0.504991 -v 0.012500 0.168750 0.504991 -v 0.012500 0.143750 0.084845 -v 0.012500 0.168750 0.084845 -v -0.012500 0.532838 0.109845 -v -0.012500 0.532838 0.084845 -v -0.012500 0.168750 0.109845 -v -0.012500 0.168750 0.084845 -v 0.012500 0.532838 0.109845 -v 0.012500 0.532838 0.084845 -v 0.012500 0.168750 0.109845 -v 0.012500 0.168750 0.084845 -v -0.143750 -0.012500 0.504991 -v -0.168750 -0.012500 0.504991 -v -0.143750 -0.012500 0.084845 -v -0.168750 -0.012500 0.084845 -v -0.143750 0.012500 0.504991 -v -0.168750 0.012500 0.504991 -v -0.143750 0.012500 0.084845 -v -0.168750 0.012500 0.084845 -v -0.532838 -0.012500 0.109845 -v -0.532838 -0.012500 0.084845 -v -0.168750 -0.012500 0.109845 -v -0.168750 -0.012500 0.084845 -v -0.532838 0.012500 0.109845 -v -0.532838 0.012500 0.084845 -v -0.168750 0.012500 0.109845 -v -0.168750 0.012500 0.084845 -v 0.143750 0.012500 0.504991 -v 0.168750 0.012500 0.504991 -v 0.143750 0.012500 0.084845 -v 0.168750 0.012500 0.084845 -v 0.143750 -0.012500 0.504991 -v 0.168750 -0.012500 0.504991 -v 0.143750 -0.012500 0.084845 -v 0.168750 -0.012500 0.084845 -v 0.532838 0.012500 0.109845 -v 0.532838 0.012500 0.084845 -v 0.168750 0.012500 0.109845 -v 0.168750 0.012500 0.084845 -v 0.532838 -0.012500 0.109845 -v 0.532838 -0.012500 0.084845 -v 0.168750 -0.012500 0.109845 -v 0.168750 -0.012500 0.084845 -v 0.012500 -0.143750 0.504991 -v 0.012500 -0.168750 0.504991 -v 0.012500 -0.143750 0.084845 -v 0.012500 -0.168750 0.084845 -v -0.012500 -0.143750 0.504991 -v -0.012500 -0.168750 0.504991 -v -0.012500 -0.143750 0.084845 -v -0.012500 -0.168750 0.084845 -v 0.012500 -0.532838 0.109845 -v 0.012500 -0.532838 0.084845 -v 0.012500 -0.168750 0.109845 -v 0.012500 -0.168750 0.084845 -v -0.012500 -0.532838 0.109845 -v -0.012500 -0.532838 0.084845 -v -0.012500 -0.168750 0.109845 -v -0.012500 -0.168750 0.084845 +v 0.125000 0.843750 0.125000 +v 0.125000 0.593750 0.125000 +v -0.125000 0.593750 0.125000 +v -0.035458 0.178260 -0.500000 +v 0.035458 0.178260 -0.500000 +v 0.100976 0.151121 -0.500000 +v 0.151121 0.100976 -0.500000 +v 0.178260 0.035458 -0.500000 +v 0.178260 -0.035458 -0.500000 +v 0.151121 -0.100976 -0.500000 +v 0.100976 -0.151121 -0.500000 +v 0.035458 -0.178260 -0.500000 +v -0.035458 -0.178260 -0.500000 +v -0.100976 -0.151121 -0.500000 +v -0.151121 -0.100976 -0.500000 +v -0.178260 -0.035458 -0.500000 +v -0.178260 0.035458 -0.500000 +v -0.151121 0.100976 -0.500000 +v -0.100976 0.151121 -0.500000 +v -0.035458 0.178260 -0.687500 +v 0.035458 0.178260 -0.687500 +v 0.100976 0.151121 -0.687500 +v 0.151121 0.100976 -0.687500 +v 0.178260 0.035458 -0.687500 +v 0.178260 -0.035458 -0.687500 +v 0.151121 -0.100976 -0.687500 +v 0.100976 -0.151121 -0.687500 +v 0.035458 -0.178260 -0.687500 +v -0.035458 -0.178260 -0.687500 +v -0.100976 -0.151121 -0.687500 +v -0.151121 -0.100976 -0.687500 +v -0.178260 -0.035458 -0.687500 +v -0.178260 0.035458 -0.687500 +v -0.151121 0.100976 -0.687500 +v -0.100976 0.151121 -0.687500 +v -0.021070 0.105925 -0.750000 +v 0.021070 0.105925 -0.750000 +v 0.060002 0.089799 -0.750000 +v 0.089799 0.060002 -0.750000 +v 0.105925 0.021070 -0.750000 +v 0.105925 -0.021070 -0.750000 +v 0.089799 -0.060002 -0.750000 +v 0.060002 -0.089799 -0.750000 +v 0.021070 -0.105925 -0.750000 +v -0.021070 -0.105925 -0.750000 +v -0.060002 -0.089799 -0.750000 +v -0.089799 -0.060002 -0.750000 +v -0.105925 -0.021070 -0.750000 +v -0.105925 0.021070 -0.750000 +v -0.089799 0.060002 -0.750000 +v -0.060002 0.089799 -0.750000 +v -0.021070 0.105925 -0.437500 +v 0.021070 0.105925 -0.437500 +v 0.060002 0.089799 -0.437500 +v 0.089799 0.060002 -0.437500 +v 0.105925 0.021070 -0.437500 +v 0.105925 -0.021070 -0.437500 +v 0.089799 -0.060002 -0.437500 +v 0.060002 -0.089799 -0.437500 +v 0.021070 -0.105925 -0.437500 +v -0.021070 -0.105925 -0.437500 +v -0.060002 -0.089799 -0.437500 +v -0.089799 -0.060002 -0.437500 +v -0.105925 -0.021070 -0.437500 +v -0.105925 0.021070 -0.437500 +v -0.089799 0.060002 -0.437500 +v -0.060002 0.089799 -0.437500 +v 0.012500 0.143750 -0.504991 +v 0.012500 0.168750 -0.504991 +v 0.012500 0.143750 -0.084845 +v 0.012500 0.168750 -0.084845 +v -0.012500 0.143750 -0.504991 +v -0.012500 0.168750 -0.504991 +v -0.012500 0.143750 -0.084845 +v -0.012500 0.168750 -0.084845 +v 0.012500 0.532838 -0.109845 +v 0.012500 0.532838 -0.084845 +v 0.012500 0.168750 -0.109845 +v 0.012500 0.168750 -0.084845 +v -0.012500 0.532838 -0.109845 +v -0.012500 0.532838 -0.084845 +v -0.012500 0.168750 -0.109845 +v -0.012500 0.168750 -0.084845 +v 0.143750 -0.012500 -0.504991 +v 0.168750 -0.012500 -0.504991 +v 0.143750 -0.012500 -0.084845 +v 0.168750 -0.012500 -0.084845 +v 0.143750 0.012500 -0.504991 +v 0.168750 0.012500 -0.504991 +v 0.143750 0.012500 -0.084845 +v 0.168750 0.012500 -0.084845 +v 0.532838 -0.012500 -0.109845 +v 0.532838 -0.012500 -0.084845 +v 0.168750 -0.012500 -0.109845 +v 0.168750 -0.012500 -0.084845 +v 0.532838 0.012500 -0.109845 +v 0.532838 0.012500 -0.084845 +v 0.168750 0.012500 -0.109845 +v 0.168750 0.012500 -0.084845 +v -0.143750 0.012500 -0.504991 +v -0.168750 0.012500 -0.504991 +v -0.143750 0.012500 -0.084845 +v -0.168750 0.012500 -0.084845 +v -0.143750 -0.012500 -0.504991 +v -0.168750 -0.012500 -0.504991 +v -0.143750 -0.012500 -0.084845 +v -0.168750 -0.012500 -0.084845 +v -0.532838 0.012500 -0.109845 +v -0.532838 0.012500 -0.084845 +v -0.168750 0.012500 -0.109845 +v -0.168750 0.012500 -0.084845 +v -0.532838 -0.012500 -0.109845 +v -0.532838 -0.012500 -0.084845 +v -0.168750 -0.012500 -0.109845 +v -0.168750 -0.012500 -0.084845 +v -0.012500 -0.143750 -0.504991 +v -0.012500 -0.168750 -0.504991 +v -0.012500 -0.143750 -0.084845 +v -0.012500 -0.168750 -0.084845 +v 0.012500 -0.143750 -0.504991 +v 0.012500 -0.168750 -0.504991 +v 0.012500 -0.143750 -0.084845 +v 0.012500 -0.168750 -0.084845 +v -0.012500 -0.532838 -0.109845 +v -0.012500 -0.532838 -0.084845 +v -0.012500 -0.168750 -0.109845 +v -0.012500 -0.168750 -0.084845 +v 0.012500 -0.532838 -0.109845 +v 0.012500 -0.532838 -0.084845 +v 0.012500 -0.168750 -0.109845 +v 0.012500 -0.168750 -0.084845 vt 0.843750 0.750000 vt 0.812500 0.750000 vt 0.812500 0.375000 @@ -1762,56 +1762,56 @@ vt 0.851562 0.710938 vt 0.851562 0.812500 vt 0.843750 0.710938 vt 0.843750 0.812500 -vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn 0.7071 0.7071 0.0000 -vn 0.7071 -0.7071 0.0000 -vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 1.0000 vn -0.7071 0.7071 0.0000 -vn -0.3827 -0.9239 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.9239 -0.3827 0.0000 -vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 vn 0.3827 -0.9239 0.0000 -vn -0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 vn -0.3827 0.9239 0.0000 -vn 0.2502 0.6040 0.7567 -vn 0.0000 -0.6538 0.7567 -vn -0.2502 0.6040 0.7567 -vn 0.2502 -0.6040 0.7567 -vn -0.4623 0.4623 0.7567 -vn 0.4623 -0.4623 0.7567 -vn -0.6040 0.2502 0.7567 -vn 0.6040 -0.2502 0.7567 -vn -0.6538 0.0000 0.7567 -vn 0.6538 0.0000 0.7567 -vn -0.6040 -0.2502 0.7567 -vn 0.6040 0.2502 0.7567 -vn -0.4623 -0.4623 0.7567 -vn 0.4623 0.4623 0.7567 -vn -0.2502 -0.6040 0.7567 -vn 0.0000 0.6538 0.7567 -vn 0.2502 -0.6040 -0.7567 -vn -0.4623 0.4623 -0.7567 -vn 0.4623 -0.4623 -0.7567 -vn -0.6040 0.2502 -0.7567 -vn 0.6040 -0.2502 -0.7567 -vn -0.6538 0.0000 -0.7567 -vn 0.6538 0.0000 -0.7567 -vn -0.6040 -0.2502 -0.7567 -vn 0.6040 0.2502 -0.7567 -vn -0.4623 -0.4623 -0.7567 -vn 0.4623 0.4623 -0.7567 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.2502 0.6040 -0.7567 +vn 0.0000 -0.6538 -0.7567 +vn 0.2502 0.6040 -0.7567 vn -0.2502 -0.6040 -0.7567 +vn 0.4623 0.4623 -0.7567 +vn -0.4623 -0.4623 -0.7567 +vn 0.6040 0.2502 -0.7567 +vn -0.6040 -0.2502 -0.7567 +vn 0.6538 0.0000 -0.7567 +vn -0.6538 0.0000 -0.7567 +vn 0.6040 -0.2502 -0.7567 +vn -0.6040 0.2502 -0.7567 +vn 0.4623 -0.4623 -0.7567 +vn -0.4623 0.4623 -0.7567 +vn 0.2502 -0.6040 -0.7567 vn 0.0000 0.6538 -0.7567 -vn 0.2502 0.6040 -0.7567 -vn 0.0000 -0.6538 -0.7567 -vn -0.2502 0.6040 -0.7567 +vn -0.2502 -0.6040 0.7567 +vn 0.4623 0.4623 0.7567 +vn -0.4623 -0.4623 0.7567 +vn 0.6040 0.2502 0.7567 +vn -0.6040 -0.2502 0.7567 +vn 0.6538 0.0000 0.7567 +vn -0.6538 0.0000 0.7567 +vn 0.6040 -0.2502 0.7567 +vn -0.6040 0.2502 0.7567 +vn 0.4623 -0.4623 0.7567 +vn -0.4623 0.4623 0.7567 +vn 0.2502 -0.6040 0.7567 +vn 0.0000 0.6538 0.7567 +vn -0.2502 0.6040 0.7567 +vn 0.0000 -0.6538 0.7567 +vn 0.2502 0.6040 0.7567 usemtl None s off f 2/1/1 1/2/1 4/3/1 5/4/1 From 40bdcb25c7edf3d9466ceff78cb1de1be449e18d Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Wed, 6 Dec 2023 01:36:46 +0100 Subject: [PATCH 04/13] Using Creates formular for Rotation speed. This is still just simulated, and does not generate electricity nor kinetic energy --- .../client/render/UniversalMotorRenderer.java | 17 ++++++-- .../common/blocks/UniversalMotorBlock.java | 17 ++++---- .../tileentity/UniversalMotorTileEntity.java | 40 ++++++++++++++----- 3 files changed, 53 insertions(+), 21 deletions(-) diff --git a/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java b/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java index e5f11ba..6b3b7f7 100644 --- a/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java +++ b/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java @@ -10,6 +10,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Quaternion; import com.mojang.math.Vector3f; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; @@ -17,7 +19,6 @@ import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.Direction.Axis; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.ModelRegistryEvent; @@ -61,15 +62,23 @@ public void render(UniversalMotorTileEntity te, float partialTicks, @Nonnull Pos private void renderRotor(PoseStack matrix, MultiBufferSource buffer, UniversalMotorTileEntity te, float partialTicks, int light, int overlay){ matrix.pushPose(); { - float rot = te.rotation + te.rotationSpeed * partialTicks; + float angle = ((AnimationTickHolder.getRenderTime(te.getLevel()) * -KineticBlockEntity.convertToAngular(te.getSpeed())) % 360); + + int dir = switch(te.getFacing()){ + case EAST -> -90; + case SOUTH -> 180; + case WEST -> 90; + default -> 0; + }; matrix.translate(0.5, 1.5, 0.5); - matrix.mulPose(new Quaternion(te.getFacing().getAxis() == Axis.X ? X_AXIS : Z_AXIS, rot, true)); + matrix.mulPose(new Quaternion(Vector3f.YP, dir, true)); + matrix.mulPose(new Quaternion(Vector3f.ZP, angle, true)); List quads = f.apply(UM_ROTOR_RL).getQuads(null, null, null, EmptyModelData.INSTANCE); Pose last = matrix.last(); VertexConsumer solid = buffer.getBuffer(RenderType.solid()); for(BakedQuad quad:quads){ - solid.putBulkData(last, quad, 1.0F, 1.0F, 1.0F, light, overlay); + solid.putBulkData(last, quad, 0.80F, 0.80F, 0.80F, light, overlay); } } matrix.popPose(); diff --git a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java index 94cf155..58a5b1d 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java @@ -24,25 +24,26 @@ public UniversalMotorBlock(){ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit){ if(world.isClientSide && player.getItemInHand(hand).isEmpty()){ BlockEntity te = world.getBlockEntity(pos); - if(te instanceof UniversalMotorTileEntity motor && motor.posInMultiblock.equals(new BlockPos(0, 0, 0))){ + if(te instanceof UniversalMotorTileEntity motor && motor.posInMultiblock.equals(new BlockPos(2, 0, 2))){ motor = motor.master(); if(!player.isCrouching()){ - if((++motor.rotationSpeed) > UniversalMotorTileEntity.rotationTopSpeed) - motor.rotationSpeed = UniversalMotorTileEntity.rotationTopSpeed; + // Casting getSpeed() to int to hopefuly avoid rounding errors with add/sub + motor.setSpeed(((int) motor.getSpeed()) + 1); }else{ - if((--motor.rotationSpeed) < -UniversalMotorTileEntity.rotationTopSpeed) - motor.rotationSpeed = -UniversalMotorTileEntity.rotationTopSpeed; + motor.setSpeed(((int) motor.getSpeed()) - 1); } - player.displayClientMessage(new TextComponent(Integer.toString(motor.rotationSpeed)), true); + + player.displayClientMessage(new TextComponent(Integer.toString((int) motor.getSpeed())), true); + return InteractionResult.SUCCESS; } } - return InteractionResult.SUCCESS; + return InteractionResult.PASS; } @Override public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState){ - // TODO Somehow switch to UniversalMotorSlaveTileEntity twice for input/output shaft + // TODO Somehow switch to UniversalMotorSlaveTileEntity twice for input/output shaft? return super.newBlockEntity(pPos, pState); } } diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index 897dd6b..a157d0a 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -5,9 +5,11 @@ import blusunrize.immersiveengineering.api.crafting.MultiblockRecipe; import blusunrize.immersiveengineering.common.blocks.generic.PoweredMultiblockBlockEntity; import blusunrize.immersiveengineering.common.blocks.multiblocks.process.MultiblockProcess; +import blusunrize.immersiveengineering.common.util.orientation.RelativeBlockFace; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -25,25 +27,46 @@ * @author TwistedGate */ public class UniversalMotorTileEntity extends PoweredMultiblockBlockEntity implements OECommonTickableTile{ + public static final int maxSpeed = 256; + + public static final BlockPos AXLE_IO_A = new BlockPos(1, 1, 2); + public static final BlockPos AXLE_IO_B = new BlockPos(1, 1, 0); + + public static final Set REDSTONE_POS = Set.of(new BlockPos(0, 1, 2)); + public static final Set ENERGY_POS = Set.of(new MultiblockFace(0, 1, 2, RelativeBlockFace.UP)); public UniversalMotorTileEntity(BlockEntityType type, BlockPos pos, BlockState state){ super(UniversalMotorMultiblock.INSTANCE, 1024, true, type, pos, state); } - public static final int rotationTopSpeed = 256; + private float speed = 2; - public int rotationSpeed = 2; - public int rotation = 0; + public void setSpeed(float speed){ + this.speed = Mth.clamp(speed, -maxSpeed, maxSpeed); + } + + public float getSpeed(){ + return this.speed; + } @Override public void tickClient(){ - this.rotation = (this.rotation + rotationSpeed) % 360; } @Override public void tickServer(){ } + @Override + public Set getEnergyPos(){ + return ENERGY_POS; + } + + @Override + public Set getRedstonePos(){ + return REDSTONE_POS; + } + @Override public NonNullList getInventory(){ return null; @@ -68,11 +91,6 @@ protected MultiblockRecipe getRecipeForId(Level level, ResourceLocation id){ return null; } - @Override - public Set getEnergyPos(){ - return null; - } - @Override public IFluidTank[] getInternalTanks(){ return null; @@ -129,4 +147,8 @@ public float getMinProcessDistance(MultiblockProcess process){ public boolean isInWorldProcessingMachine(){ return false; } + + public static enum Mode{ + MOTOR, GENERATOR; + } } From 1b745e87545f02d0596831a8eda4873f0e047762 Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Thu, 7 Dec 2023 02:45:44 +0100 Subject: [PATCH 05/13] Kinetic Multiblock! Experimental and Highly unstable! --- .../overengineered/common/OETileTypes.java | 5 - .../common/blocks/CreateTestBlock.java | 53 ---- .../common/blocks/OEMetalMultiblock.java | 16 +- .../common/blocks/UniversalMotorBlock.java | 10 +- .../UniversalMotorSlaveTileEntity.java | 68 ---- .../tileentity/UniversalMotorTileEntity.java | 277 +++++++++++++---- .../multiblock/OETemplateMultiblock.java | 40 +++ .../multiblock/UniversalMotorMultiblock.java | 5 - .../CustomHorizontalAxisKineticBlock.java | 255 +++++++++++++++ .../tileentity/CustomKineticBlockEntity.java | 294 ++++++++++++++++++ .../KineticMultiblockPartTileEntity.java | 273 ++++++++++++++++ .../overengineered/utils/AABBUtils.java | 33 ++ 12 files changed, 1121 insertions(+), 208 deletions(-) delete mode 100644 src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java delete mode 100644 src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java create mode 100644 src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java create mode 100644 src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java create mode 100644 src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java create mode 100644 src/main/java/twistedgate/overengineered/utils/AABBUtils.java diff --git a/src/main/java/twistedgate/overengineered/common/OETileTypes.java b/src/main/java/twistedgate/overengineered/common/OETileTypes.java index 5834b95..2430d86 100644 --- a/src/main/java/twistedgate/overengineered/common/OETileTypes.java +++ b/src/main/java/twistedgate/overengineered/common/OETileTypes.java @@ -1,15 +1,10 @@ package twistedgate.overengineered.common; import blusunrize.immersiveengineering.common.blocks.MultiblockBEType; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraftforge.registries.RegistryObject; -import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorSlaveTileEntity; import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorTileEntity; public class OETileTypes{ - public static final RegistryObject> CREATE_TEST = null;//OERegisters.registerTE("create_test", UniversalMotorSlaveTileEntity::new, OEContent.Blocks.CREATE_TEST); - public static final MultiblockBEType UNIVERSAL_MOTOR = OERegisters.registerMultiblockTE("universal_motor", UniversalMotorTileEntity::new, OEContent.Multiblock.UNIVERSAL_MOTOR); public static void forceClassLoad(){ diff --git a/src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java deleted file mode 100644 index 4ec3c34..0000000 --- a/src/main/java/twistedgate/overengineered/common/blocks/CreateTestBlock.java +++ /dev/null @@ -1,53 +0,0 @@ -package twistedgate.overengineered.common.blocks; - -import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; -import com.simibubi.create.foundation.block.IBE; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; -import twistedgate.overengineered.common.OETileTypes; -import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorSlaveTileEntity; - -public class CreateTestBlock extends DirectionalKineticBlock implements IBE{ - - public CreateTestBlock(){ - this(BlockBehaviour.Properties.of(Material.STONE)); - } - - public CreateTestBlock(BlockBehaviour.Properties prop){ - super(prop); - } - - @Override - public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face){ - return face == state.getValue(FACING); - } - - @Override - public Axis getRotationAxis(BlockState state){ - return state.getValue(FACING).getAxis(); - } - - @Override - public Class getBlockEntityClass(){ - return UniversalMotorSlaveTileEntity.class; - } - - @Override - public BlockEntityType getBlockEntityType(){ - return OETileTypes.CREATE_TEST.get(); - } - - /* - @Override - public BlockEntityTicker getTicker(Level pLevel, BlockState pState, BlockEntityType pBlockEntityType){ - return createTickerHelper(pLevel.isClientSide, pBlockEntityType, OETileTypes.CREATE_TEST); - } - */ -} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java index b4ed5e1..44dc55b 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java @@ -1,24 +1,32 @@ package twistedgate.overengineered.common.blocks; +import blusunrize.immersiveengineering.api.IEProperties; import blusunrize.immersiveengineering.common.blocks.MultiblockBEType; -import blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartBlockEntity; -import blusunrize.immersiveengineering.common.blocks.metal.MetalMultiblockBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition.Builder; import twistedgate.overengineered.common.blocks.ticking.OECommonTickableTile; +import twistedgate.overengineered.experimental.common.blocks.CustomHorizontalAxisKineticBlock; +import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; -public abstract class OEMetalMultiblock & OECommonTickableTile> extends MetalMultiblockBlock{ +public abstract class OEMetalMultiblock & OECommonTickableTile> extends CustomHorizontalAxisKineticBlock{ private final MultiblockBEType multiblockBEType; public OEMetalMultiblock(MultiblockBEType entityType, Block.Properties props){ - super(entityType, props.requiresCorrectToolForDrops().isViewBlocking((state, blockReader, pos) -> false).noOcclusion()); + super(props.requiresCorrectToolForDrops().isViewBlocking((state, blockReader, pos) -> false).noOcclusion(), entityType); this.multiblockBEType = entityType; } + @Override + protected void createBlockStateDefinition(Builder builder){ + super.createBlockStateDefinition(builder); + builder.add(IEProperties.MIRRORED); + } + @Override public BlockEntityTicker getTicker(Level world, BlockState state, BlockEntityType type){ return OEBlockBase.createTickerHelper(world.isClientSide, type, this.multiblockBEType.master()); diff --git a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java index 58a5b1d..63fbc5c 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java @@ -29,9 +29,9 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player if(!player.isCrouching()){ // Casting getSpeed() to int to hopefuly avoid rounding errors with add/sub - motor.setSpeed(((int) motor.getSpeed()) + 1); + motor.setSpeed(((int) motor.getSpeed()) + 5); }else{ - motor.setSpeed(((int) motor.getSpeed()) - 1); + motor.setSpeed(((int) motor.getSpeed()) - 5); } player.displayClientMessage(new TextComponent(Integer.toString((int) motor.getSpeed())), true); @@ -40,10 +40,4 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player } return InteractionResult.PASS; } - - @Override - public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState){ - // TODO Somehow switch to UniversalMotorSlaveTileEntity twice for input/output shaft? - return super.newBlockEntity(pPos, pState); - } } diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java deleted file mode 100644 index 1ce6e77..0000000 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorSlaveTileEntity.java +++ /dev/null @@ -1,68 +0,0 @@ -package twistedgate.overengineered.common.blocks.tileentity; - -import java.util.List; - -import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; -import com.simibubi.create.content.kinetics.motor.KineticScrollValueBehaviour; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; -import twistedgate.overengineered.common.OETileTypes; - -/** - * Used where the Rotor Axis would make contact with a Create Shaft.
- *
- * Communicates with {@link UniversalMotorTileEntity} and vice versa. - * - * @author TwistedGate - */ -public class UniversalMotorSlaveTileEntity extends GeneratingKineticBlockEntity{ - - protected ScrollValueBehaviour generatedSpeed; - - public UniversalMotorSlaveTileEntity(BlockPos pos, BlockState state){ - super(OETileTypes.CREATE_TEST.get(), pos, state); - } - - @Override - public void addBehaviours(List behaviours){ - super.addBehaviours(behaviours); - - this.generatedSpeed = new KineticScrollValueBehaviour(new TextComponent("Change Speed"), this, new ValueBox()) - .between(-32, 32) - .withCallback(b -> updateGeneratedRotation()); - this.generatedSpeed.value = 16; - behaviours.add(this.generatedSpeed); - } - - @Override - public void initialize(){ - super.initialize(); - if(!hasSource() || getGeneratedSpeed() > getTheoreticalSpeed()) - updateGeneratedRotation(); - } - - @Override - public void tick(){ - super.tick(); - } - - @Override - public float getGeneratedSpeed(){ - return convertToDirection(this.generatedSpeed.getValue(), Direction.EAST); - } - - private class ValueBox extends ValueBoxTransform.Sided{ - @Override - protected Vec3 getSouthLocation(){ - return VecHelper.voxelSpace(8, 8, 12.5); - } - } -} diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index a157d0a..0403a25 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -1,154 +1,301 @@ package twistedgate.overengineered.common.blocks.tileentity; +import java.util.ArrayList; +import java.util.List; import java.util.Set; -import blusunrize.immersiveengineering.api.crafting.MultiblockRecipe; -import blusunrize.immersiveengineering.common.blocks.generic.PoweredMultiblockBlockEntity; -import blusunrize.immersiveengineering.common.blocks.multiblocks.process.MultiblockProcess; -import blusunrize.immersiveengineering.common.util.orientation.RelativeBlockFace; +import com.mojang.datafixers.util.Pair; + +import blusunrize.immersiveengineering.api.energy.AveragingEnergyStorage; +import blusunrize.immersiveengineering.api.utils.shapes.CachedShapesWithTransform; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces; +import blusunrize.immersiveengineering.common.util.MultiblockCapability; import net.minecraft.core.BlockPos; -import net.minecraft.core.NonNullList; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.energy.CapabilityEnergy; +import net.minecraftforge.energy.IEnergyStorage; import twistedgate.overengineered.common.blocks.ticking.OECommonTickableTile; import twistedgate.overengineered.common.multiblock.UniversalMotorMultiblock; +import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; +import twistedgate.overengineered.utils.AABBUtils; /** + * Warning: Highly Experimental and not finished in any way.
+ *
* Primary Generator Multiblock TileEntity.
*
* Communicates with {@link UniversalMotorSlaveTileEntity} and vice versa. * * @author TwistedGate */ -public class UniversalMotorTileEntity extends PoweredMultiblockBlockEntity implements OECommonTickableTile{ +public class UniversalMotorTileEntity extends KineticMultiblockPartTileEntity implements OECommonTickableTile, IEBlockInterfaces.IBlockBounds{ public static final int maxSpeed = 256; public static final BlockPos AXLE_IO_A = new BlockPos(1, 1, 2); public static final BlockPos AXLE_IO_B = new BlockPos(1, 1, 0); public static final Set REDSTONE_POS = Set.of(new BlockPos(0, 1, 2)); - public static final Set ENERGY_POS = Set.of(new MultiblockFace(0, 1, 2, RelativeBlockFace.UP)); + public static final BlockPos ENERGY_POS = new BlockPos(0, 1, 2); + public static final BlockPos STATOR_ENERGY_POS = new BlockPos(2, 0, 2); + + protected Mode mode = Mode.MOTOR; + + /** Serves as both Input (Motor Mode) and Output (Generator Mode) */ + protected final AveragingEnergyStorage energyMain; + protected final MultiblockCapability energyMainCap; + + /** Only used when in Generator Mode */ + protected final AveragingEnergyStorage energyStator; + protected final MultiblockCapability energyStatorCap; public UniversalMotorTileEntity(BlockEntityType type, BlockPos pos, BlockState state){ - super(UniversalMotorMultiblock.INSTANCE, 1024, true, type, pos, state); + super(UniversalMotorMultiblock.INSTANCE, type, true, pos, state); + + this.energyMain = new AveragingEnergyStorage(2048); + this.energyMainCap = MultiblockCapability.make( + this, be -> be.energyMainCap, KineticMultiblockPartTileEntity::master, + + registerEnergyIO(this.energyMain, this::isMotor, this::isGenerator) + ); + + this.energyStator = new AveragingEnergyStorage(1024); + this.energyStatorCap = MultiblockCapability.make( + this, be -> be.energyStatorCap, KineticMultiblockPartTileEntity::master, registerEnergyInput(this.energyStator) + ); } - private float speed = 2; - - public void setSpeed(float speed){ - this.speed = Mth.clamp(speed, -maxSpeed, maxSpeed); + @Override + public LazyOptional getCapability(Capability cap, Direction side){ + if(cap == CapabilityEnergy.ENERGY && (side == null || isEnergyPos(ENERGY_POS, side))){ + return this.energyMainCap.getAndCast(); + } + if(cap == CapabilityEnergy.ENERGY && (side == null || isEnergyPos(STATOR_ENERGY_POS, side))){ + return this.energyStatorCap.getAndCast(); + } + return super.getCapability(cap, side); } - public float getSpeed(){ - return this.speed; + public boolean isEnergyPos(BlockPos pos, Direction side){ + return this.posInMultiblock.equals(pos) && side == Direction.UP; } @Override - public void tickClient(){ + public void readCustom(CompoundTag tag, boolean clientPacket){ + super.readCustom(tag, clientPacket); + + CompoundTag energy = tag.getCompound("energy"); + this.energyMain.deserializeNBT(energy.get("main")); + this.energyStator.deserializeNBT(energy.get("stator")); + + this.mode = Mode.values()[tag.getInt("mode")]; } @Override - public void tickServer(){ + public void writeCustom(CompoundTag tag, boolean clientPacket){ + super.writeCustom(tag, clientPacket); + + CompoundTag energy = new CompoundTag(); + energy.put("main", this.energyMain.serializeNBT()); + energy.put("stator", this.energyStator.serializeNBT()); + tag.put("energy", energy); + + tag.putInt("mode", this.mode.id()); } @Override - public Set getEnergyPos(){ - return ENERGY_POS; + public void setSpeed(float speed){ + this.speed = Mth.clamp(speed, -maxSpeed, maxSpeed); } - @Override - public Set getRedstonePos(){ - return REDSTONE_POS; + public void changeMode(Mode newMode){ + if(newMode == null || newMode == this.mode) + return; + + this.mode = newMode; + + // Dump energy on mode switch + this.energyMain.setStoredEnergy(0); + + setChanged(); } - @Override - public NonNullList getInventory(){ - return null; + public Mode getMode(){ + return this.mode; } - @Override - public boolean isStackValid(int slot, ItemStack stack){ - return false; + private boolean isGenerator(){ + return this.mode == Mode.GENERATOR; } - @Override - public int getSlotLimit(int slot){ - return 0; + private boolean isMotor(){ + return this.mode == Mode.MOTOR; } @Override - public void doGraphicalUpdates(){ + public void tickClient(){ } + private int generatedSpeed = 0; + @Override - protected MultiblockRecipe getRecipeForId(Level level, ResourceLocation id){ - return null; + public void tickServer(){ + + changeMode(isRSDisabled() ? Mode.GENERATOR : Mode.MOTOR); + + switch(this.mode){ + case GENERATOR -> asGenerator(); + case MOTOR -> asMotor(); + } } - @Override - public IFluidTank[] getInternalTanks(){ - return null; + private void asGenerator(){ + if(this.generatedSpeed != 0){ + this.generatedSpeed = 0; + updateGeneratedRotation(); + } + + int amount = this.energyStator.extractEnergy(this.energyStator.getMaxEnergyStored(), false); + setChanged(); } - @Override - public MultiblockRecipe findRecipeForInsertion(ItemStack inserting){ - return null; + private void asMotor(){ + int amount = this.energyMain.extractEnergy(this.energyMain.getMaxEnergyStored(), false); + + float f = maxSpeed * (amount / (float) this.energyMain.getMaxEnergyStored()); + if(this.generatedSpeed != (int) f){ + this.generatedSpeed = (int) f; + + UniversalMotorTileEntity axleA = getAxleTileEntity(AXLE_IO_A); + UniversalMotorTileEntity axleB = getAxleTileEntity(AXLE_IO_B); + + axleA.updateGeneratedRotation(); + axleB.updateGeneratedRotation(); + } + + setChanged(); } @Override - public int[] getOutputSlots(){ - return null; + public float getGeneratedSpeed(){ + float generated = 0.0F; + if(isAxleA() || isAxleB()){ + UniversalMotorTileEntity master = master(); + + if(master != null && master.mode == Mode.MOTOR){ + generated = convertToDirection(master.generatedSpeed, master.getFacing()); + } + } + return generated; } @Override - public int[] getOutputTanks(){ - return null; + public void onSpeedChanged(float previousSpeed){ + super.onSpeedChanged(previousSpeed); } @Override - public boolean additionalCanProcessCheck(MultiblockProcess process){ - return false; + public void updateGeneratedRotation(){ + super.updateGeneratedRotation(); } + private static float stressSupplier = 0.0625F; + @Override - public void doProcessOutput(ItemStack output){ + public float calculateStressApplied(){ + float stress = 0.0F; + if(isAxleA() || isAxleB()){ + UniversalMotorTileEntity master = master(); + if(master != null){ + stress = switch(master.mode){ + case GENERATOR -> stressSupplier; + case MOTOR -> 0.0F; + }; + } + } + + this.lastStressApplied = stress; + return stress; } @Override - public void doProcessFluidOutput(FluidStack output){ + public float calculateAddedStressCapacity(){ + float stress = 0.0F; + if(isAxleA() || isAxleB()){ + UniversalMotorTileEntity master = master(); + if(master != null){ + stress = switch(master.mode){ + case MOTOR -> stressSupplier; + case GENERATOR -> 0.0F; + }; + } + } + + this.lastCapacityProvided = stress; + return stress; } @Override - public void onProcessFinish(MultiblockProcess process){ + public Set getRedstonePos(){ + return REDSTONE_POS; } - @Override - public int getMaxProcessPerTick(){ - return 0; + public UniversalMotorTileEntity getAxleTileEntity(BlockPos axlePos){ + if(this.posInMultiblock.equals(axlePos)) + return this; + + return getEntityForPos(axlePos); } - @Override - public int getProcessQueueMaxLength(){ - return 0; + public boolean isAxleA(){ + return this.posInMultiblock.equals(AXLE_IO_A); } - @Override - public float getMinProcessDistance(MultiblockProcess process){ - return 0; + public boolean isAxleB(){ + return this.posInMultiblock.equals(AXLE_IO_B); } + private static final CachedShapesWithTransform> SHAPES = CachedShapesWithTransform.createForMultiblock(UniversalMotorTileEntity::getShape); + @Override - public boolean isInWorldProcessingMachine(){ - return false; + public VoxelShape getBlockBounds(CollisionContext ctx){ + return SHAPES.get(this.posInMultiblock, Pair.of(getFacing(), getIsMirrored())); + } + + public static List getShape(BlockPos posInMultiblock){ + int x = posInMultiblock.getX(); + int y = posInMultiblock.getY(); + int z = posInMultiblock.getZ(); + + List main = new ArrayList<>(); + + // TODO + + // Use default cube shape if nessesary + if(main.isEmpty()){ + main.add(AABBUtils.FULL); + } + return main; } + // Static stuff (classes, methods and so on) + public static enum Mode{ - MOTOR, GENERATOR; + /** Electrical -> Mechanical */ + MOTOR, + /** Mechanical -> Electrical */ + GENERATOR; + + public int id(){ + return this.ordinal(); + } } } diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java index 4400dc4..4395c9b 100644 --- a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java @@ -2,11 +2,22 @@ import java.util.function.Supplier; +import blusunrize.immersiveengineering.api.IEProperties; +import blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartBlockEntity; import blusunrize.immersiveengineering.common.blocks.multiblocks.IETemplateMultiblock; import blusunrize.immersiveengineering.common.register.IEBlocks; +import blusunrize.immersiveengineering.common.util.IELogger; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; +import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; public abstract class OETemplateMultiblock extends IETemplateMultiblock{ private final Supplier baseState; @@ -15,6 +26,35 @@ public OETemplateMultiblock(ResourceLocation loc, BlockPos masterFromOrigin, Blo this.baseState = baseState; } + @Override + protected void replaceStructureBlock(StructureBlockInfo info, Level world, BlockPos actualPos, boolean mirrored, Direction clickDirection, Vec3i offsetFromMaster){ + BlockState state = baseState.get().defaultBlockState(); + if(!offsetFromMaster.equals(Vec3i.ZERO)) + state = state.setValue(IEProperties.MULTIBLOCKSLAVE, true); + world.setBlockAndUpdate(actualPos, state); + BlockEntity curr = world.getBlockEntity(actualPos); + if(curr instanceof KineticMultiblockPartTileEntity tile){ + tile.formed = true; + tile.offsetToMaster = new BlockPos(offsetFromMaster); + tile.posInMultiblock = info.pos; + if(state.hasProperty(IEProperties.MIRRORED)) + tile.setMirrored(mirrored); + tile.setFacing(transformDirection(clickDirection.getOpposite())); + tile.setChanged(); + world.blockEvent(actualPos, world.getBlockState(actualPos).getBlock(), 255, 0); + }else + OverEngineered.log.error("Expected MB TE at {} during placement", actualPos); + } + + @Override + protected void prepareBlockForDisassembly(Level world, BlockPos pos){ + BlockEntity be = world.getBlockEntity(pos); + if(be instanceof KineticMultiblockPartTileEntity multiblockBE) + multiblockBE.formed = false; + else if(be != null) + OverEngineered.log.error("Expected multiblock TE at {}, got {}", pos, be); + } + public Block getBaseBlock(){ return this.baseState.get(); } diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java index 0067f8a..3293d66 100644 --- a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java @@ -33,9 +33,4 @@ public void initializeClient(Consumer consumer){ public Component getDisplayName(){ return new TextComponent("Universal Motor"); } - - @Override - protected void replaceStructureBlock(StructureBlockInfo info, Level world, BlockPos actualPos, boolean mirrored, Direction clickDirection, Vec3i offsetFromMaster){ - super.replaceStructureBlock(info, world, actualPos, mirrored, clickDirection, offsetFromMaster); - } } diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java new file mode 100644 index 0000000..50de28c --- /dev/null +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java @@ -0,0 +1,255 @@ +package twistedgate.overengineered.experimental.common.blocks; + +import java.util.List; +import java.util.function.BiFunction; + +import javax.annotation.Nullable; + +import com.google.common.collect.ImmutableList; +import com.simibubi.create.content.kinetics.base.HorizontalAxisKineticBlock; + +import blusunrize.immersiveengineering.api.IEProperties; +import blusunrize.immersiveengineering.api.IETags; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.ICollisionBounds; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IHasDummyBlocks; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.ISelectionBounds; +import blusunrize.immersiveengineering.common.blocks.IEEntityBlock; +import blusunrize.immersiveengineering.common.blocks.IEMultiblockBlock; +import blusunrize.immersiveengineering.common.blocks.MultiblockBEType; +import blusunrize.immersiveengineering.common.util.Utils; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.NonNullList; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition.Builder; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import twistedgate.overengineered.experimental.common.blocks.tileentity.CustomKineticBlockEntity; +import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; + +/** + * This has a lot of things copied-pasted from {@link IEMultiblockBlock} and {@link IEEntityBlock}, but only the important bits. + * + * @author TwistedGate + */ +public abstract class CustomHorizontalAxisKineticBlock> extends HorizontalAxisKineticBlock implements EntityBlock{ + protected int lightOpacity; + private final BiFunction makeEntity; + protected final boolean notNormalBlock; + private final boolean hasCustomCollisions; + public CustomHorizontalAxisKineticBlock(Properties props, MultiblockBEType entityType){ + super(props); + this.makeEntity = entityType; + this.notNormalBlock = !defaultBlockState().canOcclude(); + + this.registerDefaultState(getInitDefaultState()); + + T tmp = this.makeEntity.apply(BlockPos.ZERO, getInitDefaultState()); + this.hasCustomCollisions = tmp instanceof IEBlockInterfaces.ICollisionBounds; + } + + @Override + protected void createBlockStateDefinition(Builder builder){ + super.createBlockStateDefinition(builder); + builder.add(IEProperties.FACING_HORIZONTAL, IEProperties.MULTIBLOCKSLAVE); + } + + public CustomHorizontalAxisKineticBlock setLightOpacity(int opacity){ + this.lightOpacity = opacity; + return this; + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos){ + if(this.notNormalBlock) + return 0; + else if(state.isSolidRender(worldIn, pos)) + return this.lightOpacity; + else + return state.propagatesSkylightDown(worldIn, pos) ? 0 : 1; + } + + @SuppressWarnings("deprecation") + @Override + public float getShadeBrightness(BlockState state, BlockGetter world, BlockPos pos){ + return this.notNormalBlock ? 1 : super.getShadeBrightness(state, world, pos); + } + + @Override + public boolean propagatesSkylightDown(BlockState state, BlockGetter reader, BlockPos pos){ + return this.notNormalBlock || super.propagatesSkylightDown(state, reader, pos); + } + + @Override + @SuppressWarnings("deprecation") + public boolean triggerEvent(BlockState state, Level worldIn, BlockPos pos, int eventID, int eventParam){ + if(worldIn.isClientSide && eventID == 255){ + worldIn.sendBlockUpdated(pos, state, state, 3); + return true; + } + return super.triggerEvent(state, worldIn, pos, eventID, eventParam); + } + + @Override + @SuppressWarnings("deprecation") + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit){ + ItemStack activeStack = player.getItemInHand(hand); + if(activeStack.is(IETags.hammers)) + return hammerUseSide(hit.getDirection(), player, hand, world, pos, hit); + if(activeStack.is(IETags.screwdrivers)) + return screwdriverUseSide(hit.getDirection(), player, hand, world, pos, hit); + return super.use(state, world, pos, player, hand, hit); + } + + public InteractionResult hammerUseSide(Direction side, Player player, InteractionHand hand, Level w, BlockPos pos, BlockHitResult hit){ + return InteractionResult.PASS; + } + + public InteractionResult screwdriverUseSide(Direction side, Player player, InteractionHand hand, Level w, BlockPos pos, BlockHitResult hit){ + return InteractionResult.PASS; + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter worldIn, BlockPos pos, PathComputationType type){ + return false; + } + + protected boolean canRotate(){ + // Basic heuristic: Multiblocks should not be rotated depending on state + return !getStateDefinition().getProperties().contains(IEProperties.MULTIBLOCKSLAVE); + } + + private static final List DEFAULT_OFF = ImmutableList.of(IEProperties.MULTIBLOCKSLAVE, IEProperties.ACTIVE, IEProperties.MIRRORED); + + protected BlockState getInitDefaultState(){ + BlockState ret = this.stateDefinition.any(); + if(ret.hasProperty(IEProperties.FACING_ALL)) + ret = ret.setValue(IEProperties.FACING_ALL, getDefaultFacing()); + else if(ret.hasProperty(IEProperties.FACING_HORIZONTAL)) + ret = ret.setValue(IEProperties.FACING_HORIZONTAL, getDefaultFacing()); + for(BooleanProperty defaultOff:DEFAULT_OFF) + if(ret.hasProperty(defaultOff)) + ret = ret.setValue(defaultOff, false); + return ret; + } + + protected Direction getDefaultFacing(){ + return Direction.NORTH; + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving){ + if(state.getBlock() != newState.getBlock()){ + BlockEntity blockEntity = world.getBlockEntity(pos); + if(blockEntity instanceof CustomKineticBlockEntity baseTE) + baseTE.setOverrideState(state); + if(blockEntity instanceof KineticMultiblockPartTileEntity multiblockTE){ + // Remove the BE here before disassembling: The block is already gone, so setting the block state here + // to a block providing a BE will produce strange results otherwise + super.onRemove(state, world, pos, newState, isMoving); + multiblockTE.disassemble(); + return; + } + } + + { + BlockEntity te = world.getBlockEntity(pos); + if(state.getBlock() != newState.getBlock()){ + if(te instanceof CustomKineticBlockEntity custom) + custom.setOverrideState(state); + if(te instanceof IHasDummyBlocks hasDummyBlocks) + hasDummyBlocks.breakDummies(pos, state); + } + } + + super.onRemove(state, world, pos, newState, isMoving); + } + + @Override + public void neighborChanged(BlockState pState, Level pLevel, BlockPos pPos, Block pBlock, BlockPos pFromPos, boolean pIsMoving){ + if(!pLevel.isClientSide){ + BlockEntity te = pLevel.getBlockEntity(pPos); + if(te instanceof CustomKineticBlockEntity custom){ + custom.onNeighborBlockChange(pFromPos); + } + } + } + + @Override + public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player){ + BlockEntity te = world.getBlockEntity(pos); + if(te instanceof KineticMultiblockPartTileEntity mb) + return Utils.getPickBlock(mb.getOriginalBlock(), target, player); + return ItemStack.EMPTY; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) + { + if(state.getBlock()==this) + { + BlockEntity te = world.getBlockEntity(pos); + if(te instanceof ISelectionBounds) + return ((ISelectionBounds)te).getSelectionShape(context); + } + return super.getShape(state, world, pos, context); + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) + { + if(this.hasCustomCollisions) + { + BlockEntity te = world.getBlockEntity(pos); + if(te instanceof ICollisionBounds collisionBounds) + return collisionBounds.getCollisionShape(context); + else + // Temporary hack: The vanilla Entity#isInWall passes nonsense positions to this method (always the head + // center rather than the actual block). This stops our blocks from suffocating people when this happens + return Shapes.empty(); + } + return super.getCollisionShape(state, world, pos, context); + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getInteractionShape(BlockState state, BlockGetter world, BlockPos pos) + { + if(world.getBlockState(pos).getBlock()==this) + { + BlockEntity te = world.getBlockEntity(pos); + if(te instanceof ISelectionBounds) + return ((ISelectionBounds)te).getSelectionShape(null); + } + return super.getInteractionShape(state, world, pos); + } + + @Override + public void fillItemCategory(CreativeModeTab group, NonNullList items){ + // Don't add multiblocks to the creative tab/JEI + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState){ + return this.makeEntity.apply(pPos, pState); + } +} diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java new file mode 100644 index 0000000..7caabb8 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java @@ -0,0 +1,294 @@ +package twistedgate.overengineered.experimental.common.blocks.tileentity; + +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.List; +import java.util.Objects; +import java.util.function.Supplier; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +import com.google.common.base.Preconditions; +import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; + +import blusunrize.immersiveengineering.api.energy.WrappingEnergyStorage; +import blusunrize.immersiveengineering.api.utils.DirectionUtils; +import blusunrize.immersiveengineering.api.utils.SafeChunkUtils; +import blusunrize.immersiveengineering.common.blocks.IEBaseBlockEntity; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.BlockstateProvider; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IGeneralMultiblock; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IRedstoneOutput; +import blusunrize.immersiveengineering.common.util.ResettableCapability; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.RedStoneWireBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.energy.IEnergyStorage; + +/** + * Multiblock capable {@link KineticBlockEntity}
+ *
+ * A lot of this is copy-pasted from {@link IEBaseBlockEntity} + * + * @author TwistedGate + */ +public abstract class CustomKineticBlockEntity extends GeneratingKineticBlockEntity implements BlockstateProvider{ + + public CustomKineticBlockEntity(BlockEntityType typeIn, BlockPos pos, BlockState state){ + super(typeIn, pos, state); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket){ + readCustom(compound, clientPacket); + super.read(compound, clientPacket); + } + + @Override + protected void write(CompoundTag compound, boolean clientPacket){ + writeCustom(compound, clientPacket); + super.write(compound, clientPacket); + } + + public abstract void readCustom(CompoundTag tag, boolean clientPacket); + public abstract void writeCustom(CompoundTag tag, boolean clientPacket); + + // ------------------------------------------------------------ + // Everything copied from IEBaseBlockEntity is below this point + // ------------------------------------------------------------ + + /** + * Set by and for those instances of IGeneralMultiblock that need to drop their inventory + */ + protected IGeneralMultiblock tempMasterBE; + @Nullable + private BlockState overrideBlockState = null; + private final EnumMap redstoneBySide = new EnumMap<>(Direction.class); + // ^ These would normaly be above the Constructor, but i've put them down here instead. + + @Override + public void setState(BlockState state){ + if(getLevelNonnull().getBlockState(this.worldPosition) == getState()) + getLevelNonnull().setBlockAndUpdate(this.worldPosition, state); + } + + @Override + public BlockState getState(){ + return getBlockState(); + } + + public void setOverrideState(@Nullable BlockState state){ + this.overrideBlockState = state; + } + + @Override + public BlockState getBlockState(){ + if(this.overrideBlockState != null) + return this.overrideBlockState; + else + return super.getBlockState(); + } + + /** + * Most calls to {@link BlockEntity#setChanged} should be replaced by this. The vanilla mD also updates comparator states and re-caches the block + * state, while in most cases we just want to say "this needs to be saved to disk" + */ + @SuppressWarnings("deprecation") + protected void markChunkDirty(){ + if(this.level != null && this.level.hasChunkAt(this.worldPosition)) + this.level.getChunkAt(this.worldPosition).setUnsaved(true); + } + + public void markContainingBlockForUpdate(@Nullable BlockState newState){ + if(this.level != null) + markBlockForUpdate(getBlockPos(), newState); + } + + public void markBlockForUpdate(BlockPos pos, @Nullable BlockState newState){ + BlockState state = this.level.getBlockState(pos); + if(newState == null) + newState = state; + this.level.sendBlockUpdated(pos, state, newState, 3); + this.level.updateNeighborsAt(pos, newState.getBlock()); + } + + @Nonnull + public Level getLevelNonnull(){ + return Objects.requireNonNull(super.getLevel()); + } + + protected boolean isRSPowered(){ + for(Direction d:DirectionUtils.VALUES) + if(getRSInput(d) > 0) + return true; + return false; + } + + protected int getRSInput(Direction from){ + if(this.level.isClientSide || !this.redstoneBySide.containsKey(from)) + updateRSForSide(from); + return this.redstoneBySide.get(from); + } + + private void updateRSForSide(Direction side){ + int rsStrength = getLevelNonnull().getSignal(this.worldPosition.relative(side), side); + if(rsStrength == 0 && this instanceof IRedstoneOutput redOut && redOut.canConnectRedstone(side)){ + BlockState state = SafeChunkUtils.getBlockState(this.level, this.worldPosition.relative(side)); + if(state.getBlock() == Blocks.REDSTONE_WIRE && state.getValue(RedStoneWireBlock.POWER) > rsStrength) + rsStrength = state.getValue(RedStoneWireBlock.POWER); + } + this.redstoneBySide.put(side, rsStrength); + } + + public void onNeighborBlockChange(BlockPos otherPos){ + BlockPos delta = otherPos.subtract(worldPosition); + Direction side = Direction.getNearest(delta.getX(), delta.getY(), delta.getZ()); + Preconditions.checkNotNull(side); + updateRSForSide(side); + } + + @Override + public void setLevel(Level world){ + super.setLevel(world); + this.redstoneBySide.clear(); + } + + // Based on the super version, but works around a Forge patch to World#markChunkDirty causing duplicate comparator + // updates and only performs comparator updates if this TE actually has comparator behavior + @Override + public void setChanged(){ + if(this.level != null){ + markChunkDirty(); + BlockState state = getBlockState(); + if(state.hasAnalogOutputSignal()) + this.level.updateNeighbourForOutputSignal(this.worldPosition, state.getBlock()); + } + } + + @Override + public boolean triggerEvent(int id, int type){ + if(id == 0 || id == 255){ + markContainingBlockForUpdate(null); + return true; + }else if(id == 254){ + BlockState state = this.level.getBlockState(this.worldPosition); + this.level.sendBlockUpdated(this.worldPosition, state, state, 3); + return true; + } + return super.triggerEvent(id, type); + } + + private final List> caps = new ArrayList<>(); + private final List onCapInvalidate = new ArrayList<>(); + + protected ResettableCapability registerCapability(T val){ + ResettableCapability cap = new ResettableCapability<>(val); + this.caps.add(cap); + return cap; + } + + public void addCapInvalidateHook(Runnable hook){ + this.onCapInvalidate.add(hook); + } + + protected ResettableCapability registerEnergyIO(IEnergyStorage directStorage, Supplier allowInsert, Supplier allowExtract){ + return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, allowInsert, allowExtract, this::setChanged)); + } + + protected ResettableCapability registerEnergyInput(IEnergyStorage directStorage){ + return registerCapability(new WrappingEnergyStorage(directStorage, true, false, this::setChanged)); + } + + protected ResettableCapability registerEnergyOutput(IEnergyStorage directStorage){ + return registerCapability(new WrappingEnergyStorage(directStorage, false, true, this::setChanged)); + } + + @Override + public void invalidateCaps(){ + super.invalidateCaps(); + resetAllCaps(); + this.caps.clear(); + this.onCapInvalidate.forEach(Runnable::run); + this.onCapInvalidate.clear(); + } + + protected void resetAllCaps(){ + this.caps.forEach(ResettableCapability::reset); + } + + private boolean isUnloaded = false; + + @Override + public void onLoad(){ + super.onLoad(); + this.isUnloaded = false; + } + + @Override + public void onChunkUnloaded(){ + super.onChunkUnloaded(); + this.isUnloaded = true; + } + + @Override + public final void remove(){ + if(!this.isUnloaded) + setRemovedOE(); + super.remove(); + } + + public void setRemovedOE(){ + } + + public static record ModeSupportedWrappingEnergyStorage(IEnergyStorage storage, Supplier allowInsert, Supplier allowExtract, Runnable afterTransfer) implements IEnergyStorage{ + + @Override + public int receiveEnergy(int maxReceive, boolean simulate){ + if(!allowInsert.get()) + return 0; + + return postTransfer(storage.receiveEnergy(maxReceive, simulate), simulate); + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate){ + if(!allowExtract.get()) + return 0; + + return postTransfer(storage.extractEnergy(maxExtract, simulate), simulate); + } + + @Override + public int getEnergyStored(){ + return storage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(){ + return storage.getMaxEnergyStored(); + } + + @Override + public boolean canExtract(){ + return allowExtract.get(); + } + + @Override + public boolean canReceive(){ + return allowInsert.get(); + } + + private int postTransfer(int transferred, boolean simulate){ + if(!simulate && transferred > 0) + afterTransfer.run(); + return transferred; + } + } +} diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java new file mode 100644 index 0000000..92882e7 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java @@ -0,0 +1,273 @@ +package twistedgate.overengineered.experimental.common.blocks.tileentity; + +import java.util.Collection; +import java.util.Set; +import java.util.stream.Stream; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +import org.apache.commons.lang3.mutable.MutableInt; + +import com.mojang.datafixers.util.Pair; + +import blusunrize.immersiveengineering.api.IEProperties; +import blusunrize.immersiveengineering.api.Lib; +import blusunrize.immersiveengineering.api.client.IModelOffsetProvider; +import blusunrize.immersiveengineering.api.multiblocks.TemplateMultiblock; +import blusunrize.immersiveengineering.api.utils.SafeChunkUtils; +import blusunrize.immersiveengineering.api.utils.shapes.CachedShapesWithTransform; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IComparatorOverride; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IGeneralMultiblock; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IMirrorAble; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IReadOnPlacement; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IScrewdriverInteraction; +import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IStateBasedDirectional; +import blusunrize.immersiveengineering.common.blocks.PlacementLimitation; +import blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartBlockEntity; +import blusunrize.immersiveengineering.common.blocks.multiblocks.IETemplateMultiblock; +import blusunrize.immersiveengineering.common.util.ChatUtils; +import blusunrize.immersiveengineering.common.util.compat.computers.generic.ComputerControlState; +import blusunrize.immersiveengineering.common.util.compat.computers.generic.ComputerControllable; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.common.util.Lazy; + +/** + * This a lot of things copy-pasted from {@link MultiblockPartBlockEntity}, im pretty sure just the important bits. + * + * @author TwistedGate + */ +public abstract class KineticMultiblockPartTileEntity> extends CustomKineticBlockEntity implements IStateBasedDirectional, IGeneralMultiblock, IScrewdriverInteraction, IMirrorAble, IModelOffsetProvider, ComputerControllable{ + + public boolean formed = false; + /** Position of this block according to the BlockInfo's returned by IMultiblock#getStructure */ + public BlockPos posInMultiblock = BlockPos.ZERO; + /** Offset from the master to this block (world coordinate system) */ + public BlockPos offsetToMaster = BlockPos.ZERO; + protected final IETemplateMultiblock multiblockInstance; + /** + * stores the world time at which this block can only be disassembled by breaking the block associated with this TE. This prevents half/duplicate + * disassembly when working with the drill or TCon hammers + */ + public long onlyLocalDissassembly = -1; + protected final Lazy structureDimensions; + protected final boolean hasRedstoneControl; + protected boolean redstoneControlInverted = false; + public final ComputerControlState computerControl = new ComputerControlState(); + + public KineticMultiblockPartTileEntity(IETemplateMultiblock multiblockInstance, BlockEntityType typeIn, boolean hasRSControl, BlockPos pos, BlockState state){ + super(typeIn, pos, state); + this.multiblockInstance = multiblockInstance; + this.structureDimensions = Lazy.of(() -> multiblockInstance.getSize(level)); + this.hasRedstoneControl = hasRSControl; + } + + @Override + public Direction getFacing(){ + return IStateBasedDirectional.super.getFacing(); + } + + @Override + public Property getFacingProperty(){ + return IEProperties.FACING_HORIZONTAL; + } + + @Override + public PlacementLimitation getFacingLimitation(){ + return PlacementLimitation.HORIZONTAL; + } + + @Override + public boolean canHammerRotate(Direction side, Vec3 hit, LivingEntity entity){ + return false; + } + + @Override + public void readCustom(CompoundTag tag, boolean clientPacket){ + this.formed = tag.getBoolean("formed"); + this.posInMultiblock = NbtUtils.readBlockPos(tag.getCompound("posInMultiblock")); + this.offsetToMaster = NbtUtils.readBlockPos(tag.getCompound("offset")); + this.redstoneControlInverted = tag.getBoolean("redstoneControlInverted"); + } + + @Override + public void writeCustom(CompoundTag tag, boolean clientPacket){ + tag.putBoolean("formed", this.formed); + tag.put("posInMultiblock", NbtUtils.writeBlockPos(new BlockPos(this.posInMultiblock))); + tag.put("offset", NbtUtils.writeBlockPos(new BlockPos(this.offsetToMaster))); + tag.putBoolean("redstoneControlInverted", this.redstoneControlInverted); + } + + @SuppressWarnings("unchecked") + @Override + public T master(){ + if(this.offsetToMaster.equals(Vec3i.ZERO)) + return (T) this; + // Used to provide tile-dependant drops after disassembly + if(this.tempMasterBE != null) + return (T) this.tempMasterBE; + return getEntityForPos(this.multiblockInstance.getMasterFromOriginOffset()); + } + + public void updateMasterBlock(BlockState state, boolean blockUpdate){ + T master = master(); + if(master != null){ + master.markChunkDirty(); + if(blockUpdate) + master.markContainingBlockForUpdate(state); + } + } + + @Override + public boolean isDummy(){ + return !this.offsetToMaster.equals(Vec3i.ZERO); + } + + public BlockState getOriginalBlock(){ + for(StructureBlockInfo block:this.multiblockInstance.getStructure(this.level)) + if(block.pos.equals(this.posInMultiblock)) + return block.state; + return Blocks.AIR.defaultBlockState(); + } + + public void disassemble(){ + if(this.formed && !this.level.isClientSide){ + this.tempMasterBE = master(); + BlockPos startPos = getOrigin(); + this.multiblockInstance.disassemble(this.level, startPos, getIsMirrored(), this.multiblockInstance.untransformDirection(getFacing())); + this.level.removeBlock(this.worldPosition, false); + } + } + + public BlockPos getOrigin(){ + return TemplateMultiblock.withSettingsAndOffset(this.worldPosition, BlockPos.ZERO.subtract(this.posInMultiblock), getIsMirrored(), this.multiblockInstance.untransformDirection(getFacing())); + } + + public BlockPos getBlockPosForPos(BlockPos targetPos){ + BlockPos origin = getOrigin(); + return TemplateMultiblock.withSettingsAndOffset(origin, targetPos, getIsMirrored(), this.multiblockInstance.untransformDirection(getFacing())); + } + + public void replaceStructureBlock(BlockPos pos, BlockState state, ItemStack stack, int h, int l, int w){ + if(state.getBlock() == this.getBlockState().getBlock()) + getLevelNonnull().removeBlock(pos, false); + + getLevelNonnull().setBlockAndUpdate(pos, state); + BlockEntity tile = getLevelNonnull().getBlockEntity(pos); + if(tile instanceof IReadOnPlacement readPlacement) + readPlacement.readOnPlacement(null, stack); + } + + // ================================= + // REDSTONE CONTROL + // ================================= + public Set getRedstonePos(){ + throw new UnsupportedOperationException("Tried to get RS position for a multiblock without RS control!"); + } + + public boolean isRedstonePos(){ + if(!this.hasRedstoneControl || getRedstonePos() == null) + return false; + for(BlockPos i:getRedstonePos()) + if(this.posInMultiblock.equals(i)) + return true; + return false; + } + + @Override + public InteractionResult screwdriverUseSide(Direction side, Player player, InteractionHand hand, Vec3 hitVec){ + if(this.isRedstonePos() && this.hasRedstoneControl){ + if(!this.level.isClientSide){ + KineticMultiblockPartTileEntity master = master(); + if(master != null){ + master.redstoneControlInverted = !master.redstoneControlInverted; + ChatUtils.sendServerNoSpamMessages(player, new TranslatableComponent(Lib.CHAT_INFO + "rsControl." + (master.redstoneControlInverted ? "invertedOn" : "invertedOff"))); + this.updateMasterBlock(null, true); + } + } + return InteractionResult.SUCCESS; + } + return InteractionResult.PASS; + } + + public boolean isRSDisabled(){ + Set rsPositions = getRedstonePos(); + if(rsPositions == null || rsPositions.isEmpty()) + return false; + KineticMultiblockPartTileEntity master = master(); + if(master == null) + master = this; + if(master.computerControl.isAttached()) + return !master.computerControl.isEnabled(); + for(BlockPos rsPos:rsPositions){ + T tile = this.getEntityForPos(rsPos); + if(tile != null){ + boolean b = tile.isRSPowered(); + if(this.redstoneControlInverted != b) + return true; + } + } + return false; + } + + @SuppressWarnings("unchecked") + @Nullable + public T getEntityForPos(BlockPos targetPosInMB){ + BlockPos target = getBlockPosForPos(targetPosInMB); + BlockEntity tile = SafeChunkUtils.getSafeBE(getLevelNonnull(), target); + if(this.getClass().isInstance(tile)) + return (T) tile; + return null; + } + + @Nonnull + @Override + public BlockPos getModelOffset(BlockState state, @Nullable Vec3i size){ + BlockPos mirroredPosInMB = this.posInMultiblock; + if(size == null) + size = this.multiblockInstance.getSize(this.level); + if(getIsMirrored()) + mirroredPosInMB = new BlockPos(size.getX() - mirroredPosInMB.getX() - 1, mirroredPosInMB.getY(), mirroredPosInMB.getZ()); + return this.multiblockInstance.multiblockToModelPos(mirroredPosInMB); + } + + public VoxelShape getShape(CachedShapesWithTransform> cache){ + return cache.get(this.posInMultiblock, Pair.of(getFacing(), getIsMirrored())); + } + + @Override + public Stream getAllComputerControlStates(){ + return Stream.of(this.computerControl); + } + + public static & IComparatorOverride> void updateComparators(T tile, Collection offsets, MutableInt cachedValue, int newValue){ + if(newValue == cachedValue.intValue()) + return; + cachedValue.setValue(newValue); + final Level world = tile.getLevelNonnull(); + for(BlockPos offset:offsets){ + final BlockPos worldPos = tile.getBlockPosForPos(offset); + final BlockState stateAt = world.getBlockState(worldPos); + world.updateNeighbourForOutputSignal(worldPos, stateAt.getBlock()); + } + } +} diff --git a/src/main/java/twistedgate/overengineered/utils/AABBUtils.java b/src/main/java/twistedgate/overengineered/utils/AABBUtils.java new file mode 100644 index 0000000..e56fe27 --- /dev/null +++ b/src/main/java/twistedgate/overengineered/utils/AABBUtils.java @@ -0,0 +1,33 @@ +package twistedgate.overengineered.utils; + +import java.util.List; + +import net.minecraft.world.phys.AABB; + +public class AABBUtils{ + + public static final AABB FULL = new AABB(0.0, 0.0, 0.0, 1.0, 1.0, 1.0); + + /** Creates a 16p-Texture aligned {@link AABB} and adds it to the provided List */ + public static void box16(List list, double x0, double y0, double z0, double x1, double y1, double z1){ + list.add(box16(x0, y0, z0, x1, y1, z1)); + } + + /** Creates a 16p-Texture aligned {@link AABB} */ + public static AABB box16(double x0, double y0, double z0, double x1, double y1, double z1){ + return new AABB(x0 / 16D, y0 / 16D, z0 / 16D, x1 / 16D, y1 / 16D, z1 / 16D); + } + + /** Creates a {@link AABB} and adds it to the provided List */ + public static void box(List list, double x0, double y0, double z0, double x1, double y1, double z1){ + list.add(box(x0, y0, z0, x1, y1, z1)); + } + + /** Creates a {@link AABB} */ + public static AABB box(double x0, double y0, double z0, double x1, double y1, double z1){ + return new AABB(x0, y0, z0, x1, y1, z1); + } + + private AABBUtils(){ + } +} From 08fddf671f535007d69982e896d132360d662cfd Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Thu, 7 Dec 2023 18:06:21 +0100 Subject: [PATCH 06/13] Bounding boxes --- .../tileentity/UniversalMotorTileEntity.java | 67 +++++++++++++++++-- .../multiblock/OETemplateMultiblock.java | 2 - .../multiblock/UniversalMotorMultiblock.java | 4 -- .../CustomHorizontalAxisKineticBlock.java | 22 ++++-- 4 files changed, 77 insertions(+), 18 deletions(-) diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index 0403a25..c40927f 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -164,6 +164,7 @@ private void asGenerator(){ } int amount = this.energyStator.extractEnergy(this.energyStator.getMaxEnergyStored(), false); + setChanged(); } @@ -263,7 +264,7 @@ public boolean isAxleB(){ return this.posInMultiblock.equals(AXLE_IO_B); } - private static final CachedShapesWithTransform> SHAPES = CachedShapesWithTransform.createForMultiblock(UniversalMotorTileEntity::getShape); + private static CachedShapesWithTransform> SHAPES = CachedShapesWithTransform.createForMultiblock(UniversalMotorTileEntity::getShape); @Override public VoxelShape getBlockBounds(CollisionContext ctx){ @@ -271,13 +272,69 @@ public VoxelShape getBlockBounds(CollisionContext ctx){ } public static List getShape(BlockPos posInMultiblock){ - int x = posInMultiblock.getX(); - int y = posInMultiblock.getY(); - int z = posInMultiblock.getZ(); + final int x = posInMultiblock.getX(); + final int y = posInMultiblock.getY(); + final int z = posInMultiblock.getZ(); List main = new ArrayList<>(); - // TODO + if(y == 0){ + // Baseplate + if(!((x == 0 && z == 2) || (x == 2 && z == 2))){ + AABBUtils.box16(main, 0, 0, 0, 16, 8, 16); + } + } + + if(y == 1){ + // Axle + if(x == 1 && z >= 0 && z <= 2){ + AABBUtils.box16(main, 5, 5, 0, 11, 11, 16); + } + + if(x == 1){ + // Bearings + if(z == 0 || z == 2){ + AABBUtils.box16(main, 4, 4, 6, 12, 12, 10); + } + + // Carbon Brush holder + if(z == 0){ + AABBUtils.box16(main, 0, 6, 6, 4, 10, 16); + AABBUtils.box16(main, 12, 6, 6, 16, 10, 16); + } + } + } + + // Supports + if(y == 0 || y == 1){ + if(y == 0){ + if(x == 1 && (z == 0 || z == 2)){ + AABBUtils.box16(main, 2, 8, 6, 6, 16, 10); + AABBUtils.box16(main, 10, 8, 6, 14, 16, 10); + } + } + if(y == 1){ + if(x == 1 && (z == 0 || z == 2)){ + AABBUtils.box16(main, 3, 0, 6, 6, 4, 10); + AABBUtils.box16(main, 10, 0, 6, 13, 4, 10); + } + } + } + + // Stator + if(z == 1){ + if(!((x == 0 && y == 2) || (x == 2 && y == 2))){ + if(x == 1 && y == 2){ + AABBUtils.box16(main, 0, 0, 4, 16, 14, 12); + }else{ + AABBUtils.box16(main, 0, 0, 4, 16, 16, 12); + } + }else{ + AABBUtils.box16(main, 0, 0, 4, 16, 8, 12); + if(x == 0 && y == 2) AABBUtils.box16(main, 8, 8, 4, 16, 14, 12); + if(x == 2 && y == 2) AABBUtils.box16(main, 0, 8, 4, 8, 14, 12); + } + } // Use default cube shape if nessesary if(main.isEmpty()){ diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java index 4395c9b..51ddaa9 100644 --- a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java @@ -3,10 +3,8 @@ import java.util.function.Supplier; import blusunrize.immersiveengineering.api.IEProperties; -import blusunrize.immersiveengineering.common.blocks.generic.MultiblockPartBlockEntity; import blusunrize.immersiveengineering.common.blocks.multiblocks.IETemplateMultiblock; import blusunrize.immersiveengineering.common.register.IEBlocks; -import blusunrize.immersiveengineering.common.util.IELogger; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java index 3293d66..8e62011 100644 --- a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java @@ -4,12 +4,8 @@ import blusunrize.immersiveengineering.api.multiblocks.ClientMultiblocks.MultiblockManualData; import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Vec3i; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import twistedgate.overengineered.common.OEContent; import twistedgate.overengineered.utils.ResourceUtils; diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java index 50de28c..9de537c 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java @@ -40,6 +40,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.common.util.LazyOptional; import twistedgate.overengineered.experimental.common.blocks.tileentity.CustomKineticBlockEntity; import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; @@ -52,16 +53,12 @@ public abstract class CustomHorizontalAxisKineticBlock makeEntity; protected final boolean notNormalBlock; - private final boolean hasCustomCollisions; public CustomHorizontalAxisKineticBlock(Properties props, MultiblockBEType entityType){ super(props); this.makeEntity = entityType; this.notNormalBlock = !defaultBlockState().canOcclude(); this.registerDefaultState(getInitDefaultState()); - - T tmp = this.makeEntity.apply(BlockPos.ZERO, getInitDefaultState()); - this.hasCustomCollisions = tmp instanceof IEBlockInterfaces.ICollisionBounds; } @Override @@ -206,17 +203,28 @@ public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, Co if(state.getBlock()==this) { BlockEntity te = world.getBlockEntity(pos); - if(te instanceof ISelectionBounds) - return ((ISelectionBounds)te).getSelectionShape(context); + if(te instanceof ISelectionBounds bounds) + return bounds.getSelectionShape(context); } return super.getShape(state, world, pos, context); } + + private LazyOptional lazyCol; + private final boolean hasCustomCollisions(){ + if(this.lazyCol == null){ + this.lazyCol = LazyOptional.of(() -> { + T tmp = this.makeEntity.apply(BlockPos.ZERO, getInitDefaultState()); + return tmp instanceof IEBlockInterfaces.ICollisionBounds; + }); + } + return this.lazyCol.orElse(false); + } @Override @SuppressWarnings("deprecation") public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { - if(this.hasCustomCollisions) + if(hasCustomCollisions()) { BlockEntity te = world.getBlockEntity(pos); if(te instanceof ICollisionBounds collisionBounds) From 7f9a7069aec1f10414e7881504170add9ad7e42a Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Fri, 8 Dec 2023 01:56:55 +0100 Subject: [PATCH 07/13] Relatively big changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Master moved to center of the multiblock - Resolved texture issue on stator - Getting Rotation from Power - Removal of debugging stuff in the Block - Offsetting the rotation by 22.5° on the Rotor to match the angles of create-shafts --- src/generated/resources/.cache/cache | 4 +- .../universal_motor_mirrored_split.json | 36 +- .../multiblock/universal_motor_split.json | 36 +- .../client/render/UniversalMotorRenderer.java | 10 +- .../common/blocks/UniversalMotorBlock.java | 30 - .../tileentity/UniversalMotorTileEntity.java | 124 +- .../multiblock/UniversalMotorMultiblock.java | 2 +- .../CustomHorizontalAxisKineticBlock.java | 13 +- .../tileentity/CustomKineticBlockEntity.java | 10 +- .../models/multiblock/obj/universal_motor.obj | 2126 ++++++++-------- .../obj/universal_motor_mirrored.obj | 2142 ++++++++--------- 11 files changed, 2219 insertions(+), 2314 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 778f3dd..0f8e735 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -1,4 +1,4 @@ 25653b34e3c52483fcd8c27e9869a5840be0f105 assets/overengineered/blockstates/universal_motor.json ad9c892823ca17a89e7a83e00e81977bbed3186f assets/overengineered/models/item/universal_motor.json -10bfdf382971c0a8f405cbe0ab288ba2c7d0d74e assets/overengineered/models/multiblock/universal_motor_mirrored_split.json -0bfe8bd381684e3a6eacb4549769f65914d7f201 assets/overengineered/models/multiblock/universal_motor_split.json +a7cc436670b3e3b5998a4565da4ad57254c0426b assets/overengineered/models/multiblock/universal_motor_mirrored_split.json +bd210bf65b62269477bac798b659190efaa3e705 assets/overengineered/models/multiblock/universal_motor_split.json diff --git a/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json index 91680dc..27cada2 100644 --- a/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json +++ b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_mirrored_split.json @@ -16,92 +16,92 @@ "split_parts": [ [ 1, - 0, + -1, -1 ], [ 1, - 0, + -1, 0 ], [ 1, - 0, + -1, 1 ], [ 0, - 0, + -1, -1 ], [ 0, - 0, + -1, 0 ], [ 0, - 0, + -1, 1 ], [ -1, - 0, + -1, -1 ], [ -1, - 0, + -1, 0 ], [ -1, - 0, + -1, 1 ], [ 1, - 1, + 0, 0 ], [ 1, - 1, + 0, 1 ], [ 0, - 1, + 0, 0 ], [ -1, - 1, + 0, 0 ], [ 1, - 2, + 1, 0 ], [ 0, - 2, + 1, 0 ], [ -1, - 2, + 1, 0 ], [ 0, - 1, + 0, -1 ], [ 0, - 1, + 0, 1 ] ] diff --git a/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json index b302b28..c157be7 100644 --- a/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json +++ b/src/generated/resources/assets/overengineered/models/multiblock/universal_motor_split.json @@ -16,92 +16,92 @@ "split_parts": [ [ -1, - 0, + -1, -1 ], [ -1, - 0, + -1, 0 ], [ -1, - 0, + -1, 1 ], [ 0, - 0, + -1, -1 ], [ 0, - 0, + -1, 0 ], [ 0, - 0, + -1, 1 ], [ 1, - 0, + -1, -1 ], [ 1, - 0, + -1, 0 ], [ 1, - 0, + -1, 1 ], [ -1, - 1, + 0, 0 ], [ -1, - 1, + 0, 1 ], [ 0, - 1, + 0, 0 ], [ 1, - 1, + 0, 0 ], [ -1, - 2, + 1, 0 ], [ 0, - 2, + 1, 0 ], [ 1, - 2, + 1, 0 ], [ 0, - 1, + 0, -1 ], [ 0, - 1, + 0, 1 ] ] diff --git a/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java b/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java index 6b3b7f7..55c027f 100644 --- a/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java +++ b/src/main/java/twistedgate/overengineered/client/render/UniversalMotorRenderer.java @@ -50,7 +50,7 @@ public boolean shouldRenderOffScreen(@Nonnull UniversalMotorTileEntity te){ @SuppressWarnings("deprecation") @Override public void render(UniversalMotorTileEntity te, float partialTicks, @Nonnull PoseStack matrix, @Nonnull MultiBufferSource bufferIn, int combinedLightIn, int combinedOverlayIn){ - if(!te.formed || te.isDummy() || !te.getLevelNonnull().hasChunkAt(te.getBlockPos())){ + if(te == null || !te.formed || te.isDummy() || !te.getLevelNonnull().hasChunkAt(te.getBlockPos())){ return; } @@ -59,19 +59,19 @@ public void render(UniversalMotorTileEntity te, float partialTicks, @Nonnull Pos static final Vector3f X_AXIS = new Vector3f(1.0F, 0.0F, 0.0F); static final Vector3f Z_AXIS = new Vector3f(0.0F, 0.0F, 1.0F); - private void renderRotor(PoseStack matrix, MultiBufferSource buffer, UniversalMotorTileEntity te, float partialTicks, int light, int overlay){ + private void renderRotor(PoseStack matrix, MultiBufferSource buffer, UniversalMotorTileEntity master, float partialTicks, int light, int overlay){ matrix.pushPose(); { - float angle = ((AnimationTickHolder.getRenderTime(te.getLevel()) * -KineticBlockEntity.convertToAngular(te.getSpeed())) % 360); + float angle = ((AnimationTickHolder.getRenderTime(master.getLevel()) * KineticBlockEntity.convertToAngular(master.getSpeed()) + 22.5F) % 360); - int dir = switch(te.getFacing()){ + int dir = switch(master.getFacing()){ case EAST -> -90; case SOUTH -> 180; case WEST -> 90; default -> 0; }; - matrix.translate(0.5, 1.5, 0.5); + matrix.translate(0.5, 0.5, 0.5); matrix.mulPose(new Quaternion(Vector3f.YP, dir, true)); matrix.mulPose(new Quaternion(Vector3f.ZP, angle, true)); List quads = f.apply(UM_ROTOR_RL).getQuads(null, null, null, EmptyModelData.INSTANCE); diff --git a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java index 63fbc5c..1b902c1 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java @@ -1,17 +1,8 @@ package twistedgate.overengineered.common.blocks; -import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import net.minecraft.world.phys.BlockHitResult; import twistedgate.overengineered.common.OETileTypes; import twistedgate.overengineered.common.blocks.tileentity.UniversalMotorTileEntity; @@ -19,25 +10,4 @@ public class UniversalMotorBlock extends OEMetalMultiblock type, BlockPos pos, BlockState state){ super(UniversalMotorMultiblock.INSTANCE, type, true, pos, state); - this.energyMain = new AveragingEnergyStorage(2048); + this.energyMain = new AveragingEnergyStorage(4096); this.energyMainCap = MultiblockCapability.make( - this, be -> be.energyMainCap, KineticMultiblockPartTileEntity::master, - - registerEnergyIO(this.energyMain, this::isMotor, this::isGenerator) + this, be -> be.energyMainCap, KineticMultiblockPartTileEntity::master, registerEnergyIO(this.energyMain, this::isMotor, this::isGenerator) ); this.energyStator = new AveragingEnergyStorage(1024); @@ -112,8 +109,8 @@ public void writeCustom(CompoundTag tag, boolean clientPacket){ } @Override - public void setSpeed(float speed){ - this.speed = Mth.clamp(speed, -maxSpeed, maxSpeed); + public Set getRedstonePos(){ + return REDSTONE_POS; } public void changeMode(Mode newMode){ @@ -140,6 +137,10 @@ private boolean isMotor(){ return this.mode == Mode.MOTOR; } + public boolean isMaster(){ + return this.offsetToMaster.equals(BlockPos.ZERO); + } + @Override public void tickClient(){ } @@ -148,13 +149,12 @@ public void tickClient(){ @Override public void tickServer(){ - - changeMode(isRSDisabled() ? Mode.GENERATOR : Mode.MOTOR); - switch(this.mode){ case GENERATOR -> asGenerator(); case MOTOR -> asMotor(); } + + changeMode(isRSDisabled() ? Mode.GENERATOR : Mode.MOTOR); } private void asGenerator(){ @@ -163,8 +163,11 @@ private void asGenerator(){ updateGeneratedRotation(); } + @SuppressWarnings("unused") int amount = this.energyStator.extractEnergy(this.energyStator.getMaxEnergyStored(), false); + // TODO Rotation dependant power generation + setChanged(); } @@ -175,93 +178,64 @@ private void asMotor(){ if(this.generatedSpeed != (int) f){ this.generatedSpeed = (int) f; - UniversalMotorTileEntity axleA = getAxleTileEntity(AXLE_IO_A); - UniversalMotorTileEntity axleB = getAxleTileEntity(AXLE_IO_B); - - axleA.updateGeneratedRotation(); - axleB.updateGeneratedRotation(); + updateGeneratedRotation(); } setChanged(); } + public UniversalMotorTileEntity getAxleTileEntity(BlockPos axlePos){ + if(this.posInMultiblock.equals(axlePos)) + return this; + + return getEntityForPos(axlePos); + } + @Override public float getGeneratedSpeed(){ + if(!isMaster()) + return 0.0F; + float generated = 0.0F; - if(isAxleA() || isAxleB()){ - UniversalMotorTileEntity master = master(); - - if(master != null && master.mode == Mode.MOTOR){ - generated = convertToDirection(master.generatedSpeed, master.getFacing()); - } + + if(this.mode == Mode.MOTOR){ + generated = convertToDirection(this.generatedSpeed, this.getFacing()); } + return generated; } - @Override - public void onSpeedChanged(float previousSpeed){ - super.onSpeedChanged(previousSpeed); - } - - @Override - public void updateGeneratedRotation(){ - super.updateGeneratedRotation(); - } - - private static float stressSupplier = 0.0625F; - - @Override - public float calculateStressApplied(){ - float stress = 0.0F; - if(isAxleA() || isAxleB()){ - UniversalMotorTileEntity master = master(); - if(master != null){ - stress = switch(master.mode){ - case GENERATOR -> stressSupplier; - case MOTOR -> 0.0F; - }; - } - } - - this.lastStressApplied = stress; - return stress; - } + /** Stress capacity added to kinetics in Motor-Mode */ + private static final float STRESS_CAPACITY = 16384 / 256F; + /** Stress impacted on kinetics in Generator-Mode */ + private static final float STRESS_IMPACT = 32768 / 256F; @Override public float calculateAddedStressCapacity(){ - float stress = 0.0F; - if(isAxleA() || isAxleB()){ - UniversalMotorTileEntity master = master(); - if(master != null){ - stress = switch(master.mode){ - case MOTOR -> stressSupplier; - case GENERATOR -> 0.0F; - }; - } - } + if(!isMaster()) + return 0.0F; + + float stress = switch(this.mode){ + case MOTOR -> STRESS_CAPACITY; + case GENERATOR -> 0.0F; + }; this.lastCapacityProvided = stress; return stress; } @Override - public Set getRedstonePos(){ - return REDSTONE_POS; - } - - public UniversalMotorTileEntity getAxleTileEntity(BlockPos axlePos){ - if(this.posInMultiblock.equals(axlePos)) - return this; + public float calculateStressApplied(){ + if(!isMaster()) + return 0.0F; - return getEntityForPos(axlePos); - } - - public boolean isAxleA(){ - return this.posInMultiblock.equals(AXLE_IO_A); - } - - public boolean isAxleB(){ - return this.posInMultiblock.equals(AXLE_IO_B); + float stress = switch(this.mode){ + case GENERATOR -> STRESS_IMPACT; + case MOTOR -> 0.0F; + }; + + this.lastStressApplied = stress; + return stress; } private static CachedShapesWithTransform> SHAPES = CachedShapesWithTransform.createForMultiblock(UniversalMotorTileEntity::getShape); diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java index 8e62011..961865e 100644 --- a/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/multiblock/UniversalMotorMultiblock.java @@ -13,7 +13,7 @@ public class UniversalMotorMultiblock extends OETemplateMultiblock{ public static final UniversalMotorMultiblock INSTANCE = new UniversalMotorMultiblock(); private UniversalMotorMultiblock(){ - super(ResourceUtils.oe("multiblocks/universal_motor"), new BlockPos(1, 0, 1), new BlockPos(0, 0, 2), new BlockPos(3, 3, 3), OEContent.Multiblock.UNIVERSAL_MOTOR); + super(ResourceUtils.oe("multiblocks/universal_motor"), new BlockPos(1, 1, 1), new BlockPos(0, 0, 2), new BlockPos(3, 3, 3), OEContent.Multiblock.UNIVERSAL_MOTOR); } @Override diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java index 9de537c..bb37e48 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java @@ -136,10 +136,17 @@ protected boolean canRotate(){ protected BlockState getInitDefaultState(){ BlockState ret = this.stateDefinition.any(); + + /*// ALL multiblocks i've seen thus far only have horizontal facing if(ret.hasProperty(IEProperties.FACING_ALL)) ret = ret.setValue(IEProperties.FACING_ALL, getDefaultFacing()); - else if(ret.hasProperty(IEProperties.FACING_HORIZONTAL)) + else*/ + if(ret.hasProperty(IEProperties.FACING_HORIZONTAL)) ret = ret.setValue(IEProperties.FACING_HORIZONTAL, getDefaultFacing()); + + if(ret.hasProperty(HorizontalAxisKineticBlock.HORIZONTAL_AXIS)) + ret = ret.setValue(HorizontalAxisKineticBlock.HORIZONTAL_AXIS, getDefaultFacing().getAxis()); + for(BooleanProperty defaultOff:DEFAULT_OFF) if(ret.hasProperty(defaultOff)) ret = ret.setValue(defaultOff, false); @@ -244,8 +251,8 @@ public VoxelShape getInteractionShape(BlockState state, BlockGetter world, Block if(world.getBlockState(pos).getBlock()==this) { BlockEntity te = world.getBlockEntity(pos); - if(te instanceof ISelectionBounds) - return ((ISelectionBounds)te).getSelectionShape(null); + if(te instanceof ISelectionBounds selectionBounds) + return selectionBounds.getSelectionShape(null); } return super.getInteractionShape(state, world, pos); } diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java index 7caabb8..c03b0e7 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java @@ -60,6 +60,10 @@ protected void write(CompoundTag compound, boolean clientPacket){ public abstract void readCustom(CompoundTag tag, boolean clientPacket); public abstract void writeCustom(CompoundTag tag, boolean clientPacket); + protected ResettableCapability registerEnergyIO(IEnergyStorage directStorage, Supplier allowInsert, Supplier allowExtract){ + return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, allowInsert, allowExtract, this::setChanged)); + } + // ------------------------------------------------------------ // Everything copied from IEBaseBlockEntity is below this point // ------------------------------------------------------------ @@ -198,10 +202,6 @@ public void addCapInvalidateHook(Runnable hook){ this.onCapInvalidate.add(hook); } - protected ResettableCapability registerEnergyIO(IEnergyStorage directStorage, Supplier allowInsert, Supplier allowExtract){ - return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, allowInsert, allowExtract, this::setChanged)); - } - protected ResettableCapability registerEnergyInput(IEnergyStorage directStorage){ return registerCapability(new WrappingEnergyStorage(directStorage, true, false, this::setChanged)); } @@ -247,6 +247,8 @@ public final void remove(){ public void setRemovedOE(){ } + + /** This is a modified variant of IE-{@link WrappingEnergyStorage} */ public static record ModeSupportedWrappingEnergyStorage(IEnergyStorage storage, Supplier allowInsert, Supplier allowExtract, Runnable afterTransfer) implements IEnergyStorage{ @Override diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj index 3666780..78a9bbe 100644 --- a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor.obj @@ -1,615 +1,615 @@ # Blender v2.79 (sub 0) OBJ File: 'generator.blend' # www.blender.org mtllib universal_motor.mtl -o Stator_Stator.Baseplate -v -1.000000 0.500000 0.000000 -v -1.000000 0.000000 0.000000 -v 2.000000 0.500000 -0.000000 -v 2.000000 0.000000 -0.000000 -v 2.000000 0.500000 -1.000000 -v -1.000000 0.500000 -1.000000 -v -1.000000 0.000000 -1.000000 -v 2.000000 0.000000 -1.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 0.000000 1.000000 -v 2.000000 0.500000 1.000000 +o Stator +v -1.000000 -0.500000 0.000000 +v -1.000000 -1.000000 0.000000 +v 2.000000 -0.500000 -0.000000 +v 2.000000 -1.000000 -0.000000 +v 2.000000 -0.500000 -1.000000 +v -1.000000 -0.500000 -1.000000 +v -1.000000 -1.000000 -1.000000 +v 2.000000 -1.000000 -1.000000 +v -1.000000 -0.500000 1.000000 +v -1.000000 -1.000000 1.000000 +v 2.000000 -0.500000 1.000000 +v 2.000000 -1.000000 1.000000 +v 2.000000 -0.500000 2.000000 +v -1.000000 -0.500000 2.000000 +v -1.000000 -1.000000 2.000000 +v 2.000000 -1.000000 2.000000 +v -1.000000 -0.500000 1.000000 +v -1.000000 -1.000000 1.000000 +v -0.500000 -0.500000 1.000000 +v -0.500000 -1.000000 1.000000 +v -0.500000 -0.500000 0.000000 +v -1.000000 -0.500000 0.000000 +v -1.000000 -1.000000 0.000000 +v -0.500000 -1.000000 0.000000 +v 1.500000 -0.500000 1.000000 +v 1.500000 -1.000000 1.000000 +v 2.000000 -0.500000 1.000000 +v 2.000000 -1.000000 1.000000 +v 2.000000 -0.500000 -0.000000 +v 1.500000 -0.500000 -0.000000 +v 1.500000 -1.000000 -0.000000 +v 2.000000 -1.000000 -0.000000 +v 2.000000 -0.500000 1.000000 v 2.000000 0.000000 1.000000 -v 2.000000 0.500000 2.000000 -v -1.000000 0.500000 2.000000 -v -1.000000 0.000000 2.000000 +v 2.000000 -0.500000 2.000000 v 2.000000 0.000000 2.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 0.000000 1.000000 -v -0.500000 0.500000 1.000000 -v -0.500000 0.000000 1.000000 -v -0.500000 0.500000 0.000000 -v -1.000000 0.500000 0.000000 -v -1.000000 0.000000 0.000000 -v -0.500000 0.000000 0.000000 -v 1.500000 0.500000 1.000000 -v 1.500000 0.000000 1.000000 -v 2.000000 0.500000 1.000000 -v 2.000000 0.000000 1.000000 -v 2.000000 0.500000 -0.000000 -v 1.500000 0.500000 -0.000000 -v 1.500000 0.000000 -0.000000 -v 2.000000 0.000000 -0.000000 -v 2.000000 0.500000 1.000000 -v 2.000000 1.000000 1.000000 -v 2.000000 0.500000 2.000000 -v 2.000000 1.000000 2.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 1.000000 1.000000 -v 1.000000 0.500000 2.000000 -v 1.000000 1.000000 2.000000 -v 0.000000 0.500000 1.000000 -v 0.000000 2.000000 1.000000 -v 0.000000 0.500000 2.000000 -v 0.000000 2.000000 2.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 2.000000 1.000000 -v -1.000000 0.500000 2.000000 -v -1.000000 2.000000 2.000000 -v 0.750000 1.250000 -0.625000 -v 0.750000 1.250000 -0.375000 -v 0.250000 1.250000 -0.625000 -v 0.250000 1.250000 -0.375000 -v 0.750000 1.750000 -0.625000 -v 0.750000 1.750000 -0.375000 -v 0.250000 1.750000 -0.375000 -v 0.250000 1.750000 -0.625000 -v 0.875000 0.500000 -0.625000 -v 0.750000 1.250000 -0.625000 -v 0.875000 0.500000 -0.375000 -v 0.750000 1.250000 -0.375000 -v 0.750000 0.500000 -0.625000 -v 0.625000 1.250000 -0.625000 -v 0.750000 0.500000 -0.375000 -v 0.625000 1.250000 -0.375000 -v 0.125000 0.500000 -0.375000 -v 0.250000 1.250000 -0.375000 -v 0.125000 0.500000 -0.625000 -v 0.250000 1.250000 -0.625000 -v 0.250000 0.500000 -0.375000 -v 0.375000 1.250000 -0.375000 -v 0.250000 0.500000 -0.625000 -v 0.375000 1.250000 -0.625000 -v 0.750000 1.250000 1.625000 -v 0.750000 1.250000 1.375000 -v 0.250000 1.250000 1.625000 -v 0.250000 1.250000 1.375000 -v 0.750000 1.750000 1.625000 -v 0.750000 1.750000 1.375000 -v 0.250000 1.750000 1.375000 -v 0.250000 1.750000 1.625000 -v 0.875000 0.500000 1.625000 -v 0.750000 1.250000 1.625000 -v 0.875000 0.500000 1.375000 -v 0.750000 1.250000 1.375000 -v 0.750000 0.500000 1.625000 -v 0.625000 1.250000 1.625000 -v 0.750000 0.500000 1.375000 -v 0.625000 1.250000 1.375000 -v 0.125000 0.500000 1.375000 -v 0.250000 1.250000 1.375000 -v 0.125000 0.500000 1.625000 -v 0.250000 1.250000 1.625000 -v 0.250000 0.500000 1.375000 -v 0.375000 1.250000 1.375000 -v 0.250000 0.500000 1.625000 -v 0.375000 1.250000 1.625000 -v -0.875000 1.625000 0.375000 -v -0.875000 1.226562 0.750000 -v -0.875000 1.625000 0.625000 -v -1.000000 1.226562 0.250000 -v -0.937500 1.625000 0.375000 -v -1.000000 1.226562 0.750000 -v -0.937500 1.625000 0.625000 -v -0.875000 1.375000 0.375000 -v -0.875000 1.375000 0.625000 -v -1.000000 1.375000 0.625000 -v -1.000000 1.375000 0.375000 -v -0.875000 1.226562 0.250000 -v -0.665942 0.720558 0.250000 -v -1.000000 0.720558 0.250000 -v -0.665942 0.720558 0.750000 -v -1.000000 0.720558 0.750000 -v -0.665942 0.498832 0.750000 -v -1.000000 0.498832 0.750000 -v -1.000000 0.498832 0.250000 -v -0.665942 0.498832 0.250000 -v 1.875000 1.625000 0.375000 -v 1.875000 1.226562 0.750000 -v 1.875000 1.625000 0.625000 -v 2.000000 1.226562 0.250000 -v 1.937500 1.625000 0.375000 -v 2.000000 1.226562 0.750000 -v 1.937500 1.625000 0.625000 -v 1.875000 1.375000 0.375000 -v 1.875000 1.375000 0.625000 -v 2.000000 1.375000 0.625000 -v 2.000000 1.375000 0.375000 -v 1.875000 1.226562 0.250000 -v 1.665942 0.720558 0.250000 -v 2.000000 0.720558 0.250000 -v 1.665942 0.720558 0.750000 -v 2.000000 0.720558 0.750000 -v 1.665942 0.498832 0.750000 -v 2.000000 0.498832 0.750000 -v 2.000000 0.498832 0.250000 -v 1.665942 0.498832 0.250000 -v 0.238920 2.812536 0.748923 -v 0.238920 2.812536 0.251077 -v -0.243492 2.612714 0.748923 -v -0.243492 2.612714 0.251077 -v -0.612714 2.243492 0.748923 -v -0.612714 2.243492 0.251077 -v -0.812536 1.761080 0.748923 -v -0.812536 1.761080 0.251077 -v -0.812536 1.238920 0.748923 -v -0.812536 1.238920 0.251077 -v -0.612714 0.756508 0.748923 -v -0.612714 0.756508 0.251077 -v -0.243492 0.387286 0.748923 -v -0.243492 0.387286 0.251077 -v 0.238920 0.187464 0.748923 -v 0.238920 0.187464 0.251077 -v 0.761079 0.187464 0.748923 -v 0.761079 0.187464 0.251077 -v 1.243492 0.387286 0.748923 -v 1.243492 0.387286 0.251077 -v 1.612714 0.756508 0.748923 -v 1.612714 0.756508 0.251077 -v 1.812536 1.238920 0.748923 -v 1.812536 1.238920 0.251077 -v 1.812536 1.761080 0.748923 -v 1.812536 1.761080 0.251077 -v 1.612714 2.243492 0.748923 -v 1.612714 2.243492 0.251077 -v 1.243491 2.612714 0.748923 -v 1.243491 2.612714 0.251077 -v 0.761079 2.812536 0.748923 -v 0.761079 2.812536 0.251077 -v -0.279065 2.665954 0.748923 -v 0.226429 2.875336 0.748923 -v 0.226429 2.875336 0.251077 -v -0.279065 2.665954 0.251077 -v -0.665954 2.279065 0.748923 -v -0.665954 2.279065 0.251077 -v -0.875336 1.773571 0.748923 -v -0.875336 1.773571 0.251077 -v -0.875336 1.226429 0.748923 -v -0.875336 1.226429 0.251077 -v -0.665954 0.720935 0.748923 -v -0.665954 0.720934 0.251077 -v -0.279065 0.334046 0.748923 -v -0.279065 0.334046 0.251077 -v 0.226429 0.124664 0.748923 -v 0.226429 0.124664 0.251077 -v 0.773571 0.124664 0.748923 -v 0.773571 0.124664 0.251077 -v 1.279065 0.334046 0.748923 -v 1.279065 0.334046 0.251077 -v 1.665954 0.720934 0.748923 -v 1.665954 0.720934 0.251077 -v 1.875336 1.226429 0.748923 -v 1.875336 1.226429 0.251077 -v 1.875336 1.773571 0.748923 -v 1.875336 1.773571 0.251077 -v 1.665954 2.279066 0.748923 -v 1.665954 2.279066 0.251077 -v 1.279065 2.665954 0.748923 -v 1.279065 2.665954 0.251077 -v 0.773571 2.875336 0.748923 -v 0.773571 2.875336 0.251077 -v 0.687500 0.250000 0.687500 -v 0.312500 0.250000 0.312500 -v 0.687500 0.250000 0.312500 -v 0.687500 0.500000 0.687500 -v 0.687500 0.500000 0.312500 -v 0.687500 0.187500 0.687500 -v 0.312500 0.187500 0.687500 -v 0.687500 0.562500 0.687500 -v 0.312500 0.562500 0.687500 -v 0.312500 0.562500 0.312500 -v 0.312500 0.500000 0.312500 -v 0.312500 0.250000 0.687500 -v 0.687500 0.562500 0.312500 -v 0.687500 0.187500 0.312500 -v 0.312500 0.500000 0.687500 -v 0.312500 0.187500 0.312500 -v 0.625000 0.250000 0.625000 -v 0.625000 0.500000 0.375000 -v 0.375000 0.250000 0.375000 -v 0.625000 0.250000 0.375000 -v 0.375000 0.500000 0.375000 -v 0.375000 0.250000 0.625000 -v 0.375000 0.500000 0.625000 -v 0.625000 0.500000 0.625000 -v 1.151582 0.416903 0.687500 -v 0.805127 0.273397 0.312500 -v 1.151582 0.416904 0.312500 -v 1.055911 0.647874 0.687500 -v 1.055911 0.647874 0.312500 -v 1.175499 0.359161 0.687500 -v 0.829045 0.215655 0.687500 -v 1.031993 0.705616 0.687500 -v 0.685538 0.562110 0.687500 -v 0.685538 0.562110 0.312500 -v 0.709456 0.504367 0.312500 -v 0.805127 0.273397 0.687500 -v 1.031993 0.705616 0.312500 -v 1.175499 0.359161 0.312500 -v 0.709456 0.504367 0.687500 -v 0.829045 0.215655 0.312500 -v 1.093839 0.392986 0.625000 -v 0.998168 0.623956 0.375000 -v 0.862869 0.297315 0.375000 -v 1.093839 0.392986 0.375000 -v 0.767199 0.528285 0.375000 -v 0.862869 0.297315 0.625000 -v 0.767199 0.528285 0.625000 -v 0.998168 0.623956 0.625000 -v -0.151582 2.583096 0.687500 -v 0.194873 2.726602 0.312499 -v -0.151582 2.583096 0.312500 -v -0.055911 2.352126 0.687500 -v -0.055911 2.352126 0.312500 -v -0.175500 2.640838 0.687500 -v 0.170955 2.784345 0.687499 -v -0.031993 2.294384 0.687500 -v 0.314461 2.437890 0.687500 -v 0.314461 2.437890 0.312500 -v 0.290544 2.495632 0.312500 -v 0.194873 2.726602 0.687500 -v -0.031993 2.294384 0.312500 -v -0.175500 2.640838 0.312500 -v 0.290544 2.495632 0.687500 -v 0.170955 2.784345 0.312499 -v -0.093840 2.607014 0.625000 -v 0.001831 2.376044 0.375000 -v 0.137130 2.702685 0.375000 -v -0.093840 2.607014 0.375000 -v 0.232801 2.471715 0.375000 -v 0.137130 2.702685 0.625000 -v 0.232801 2.471715 0.625000 -v 0.001831 2.376044 0.625000 -v 1.583097 2.151581 0.687500 -v 1.726603 1.805126 0.312500 -v 1.583097 2.151581 0.312500 -v 1.352127 2.055910 0.687500 -v 1.352127 2.055910 0.312500 -v 1.640839 2.175498 0.687500 -v 1.784346 1.829043 0.687500 -v 1.294385 2.031992 0.687500 -v 1.437891 1.685537 0.687500 -v 1.437890 1.685537 0.312500 -v 1.495633 1.709455 0.312500 -v 1.726603 1.805126 0.687500 -v 1.294384 2.031992 0.312500 -v 1.640839 2.175498 0.312499 -v 1.495633 1.709455 0.687500 -v 1.784345 1.829043 0.312500 -v 1.607014 2.093838 0.625000 -v 1.376045 1.998168 0.375000 -v 1.702685 1.862868 0.375000 -v 1.607014 2.093838 0.375000 -v 1.471715 1.767197 0.375000 -v 1.702685 1.862868 0.625000 -v 1.471715 1.767198 0.625000 -v 1.376045 1.998168 0.625000 -v -0.583096 0.848418 0.687500 -v -0.726603 1.194873 0.312500 -v -0.583096 0.848418 0.312500 -v -0.352126 0.944089 0.687500 -v -0.352126 0.944089 0.312500 -v -0.640839 0.824500 0.687500 -v -0.784345 1.170955 0.687500 -v -0.294384 0.968007 0.687500 -v -0.437890 1.314461 0.687500 -v -0.437890 1.314461 0.312500 -v -0.495633 1.290544 0.312500 -v -0.726603 1.194873 0.687500 -v -0.294384 0.968007 0.312500 -v -0.640839 0.824500 0.312500 -v -0.495633 1.290544 0.687500 -v -0.784345 1.170955 0.312500 -v -0.607014 0.906160 0.625000 -v -0.376044 1.001831 0.375000 -v -0.702685 1.137130 0.375000 -v -0.607014 0.906161 0.375000 -v -0.471715 1.232801 0.375000 -v -0.702685 1.137130 0.625000 -v -0.471715 1.232801 0.625000 -v -0.376044 1.001832 0.625000 -v -0.726603 1.805126 0.687500 -v -0.583096 2.151581 0.312500 -v -0.726602 1.805126 0.312500 -v -0.495633 1.709456 0.687500 -v -0.495633 1.709456 0.312500 -v -0.784345 1.829044 0.687500 -v -0.640839 2.175499 0.687500 -v -0.437890 1.685538 0.687500 -v -0.294384 2.031993 0.687500 -v -0.294384 2.031993 0.312500 -v -0.352126 2.055911 0.312500 -v -0.583096 2.151581 0.687500 -v -0.437890 1.685538 0.312500 -v -0.784345 1.829044 0.312500 -v -0.352126 2.055911 0.687500 -v -0.640839 2.175499 0.312500 -v -0.702685 1.862869 0.625000 -v -0.471715 1.767198 0.375000 -v -0.607014 2.093839 0.375000 -v -0.702685 1.862869 0.375000 -v -0.376044 1.998168 0.375000 -v -0.607014 2.093839 0.625000 -v -0.376044 1.998168 0.625000 -v -0.471715 1.767198 0.625000 -v 1.726602 1.194872 0.687500 -v 1.583095 0.848417 0.312500 -v 1.726602 1.194872 0.312500 -v 1.495632 1.290543 0.687500 -v 1.495632 1.290543 0.312500 -v 1.784345 1.170954 0.687500 -v 1.640838 0.824499 0.687500 -v 1.437890 1.314461 0.687500 -v 1.294383 0.968006 0.687500 -v 1.294383 0.968006 0.312500 -v 1.352126 0.944088 0.312500 -v 1.583096 0.848417 0.687500 -v 1.437890 1.314461 0.312500 -v 1.784345 1.170954 0.312500 -v 1.352126 0.944088 0.687500 -v 1.640838 0.824499 0.312500 -v 1.702685 1.137129 0.625000 -v 1.471715 1.232800 0.375000 -v 1.607013 0.906160 0.375000 -v 1.702684 1.137129 0.375000 -v 1.376044 1.001831 0.375000 -v 1.607013 0.906159 0.625000 -v 1.376044 1.001831 0.625000 -v 1.471715 1.232800 0.625000 -v 0.805127 2.726603 0.687500 -v 1.151582 2.583096 0.312499 -v 0.805127 2.726603 0.312499 -v 0.709456 2.495633 0.687500 -v 0.709456 2.495632 0.312500 -v 0.829045 2.784345 0.687499 -v 1.175500 2.640839 0.687499 -v 0.685538 2.437890 0.687500 -v 1.031993 2.294384 0.687500 -v 1.031993 2.294384 0.312500 -v 1.055911 2.352126 0.312500 -v 1.151582 2.583096 0.687499 -v 0.685538 2.437890 0.312500 -v 0.829045 2.784345 0.312499 -v 1.055911 2.352126 0.687500 -v 1.175500 2.640839 0.312499 -v 0.862869 2.702685 0.625000 -v 0.767199 2.471715 0.375000 -v 1.093839 2.607014 0.375000 -v 0.862869 2.702685 0.374999 -v 0.998168 2.376044 0.375000 -v 1.093839 2.607014 0.624999 -v 0.998168 2.376044 0.625000 -v 0.767199 2.471715 0.625000 -v 0.194873 0.273397 0.687500 -v -0.151582 0.416904 0.312500 -v 0.194873 0.273397 0.312500 -v 0.290544 0.504367 0.687500 -v 0.290544 0.504367 0.312500 -v 0.170956 0.215655 0.687500 -v -0.175499 0.359161 0.687500 -v 0.314462 0.562110 0.687500 -v -0.031993 0.705616 0.687500 -v -0.031993 0.705616 0.312500 -v -0.055911 0.647873 0.312500 -v -0.151582 0.416904 0.687500 -v 0.314462 0.562110 0.312500 -v 0.170956 0.215655 0.312500 -v -0.055911 0.647874 0.687500 -v -0.175499 0.359161 0.312500 -v 0.137131 0.297315 0.625000 -v 0.232802 0.528285 0.375000 -v -0.093839 0.392986 0.375000 -v 0.137131 0.297315 0.375000 -v 0.001832 0.623956 0.375000 -v -0.093839 0.392986 0.625000 -v 0.001832 0.623956 0.625000 -v 0.232802 0.528285 0.625000 -v -0.251301 0.483534 0.687500 -v -0.516466 0.748699 0.312500 -v -0.251301 0.483534 0.312500 -v -0.074524 0.660311 0.687500 -v -0.074524 0.660311 0.312500 -v -0.295495 0.439340 0.687500 -v -0.560660 0.704505 0.687500 -v -0.030330 0.704505 0.687500 -v -0.295495 0.969670 0.687500 -v -0.295495 0.969670 0.312500 -v -0.339689 0.925476 0.312500 -v -0.516466 0.748699 0.687500 -v -0.030330 0.704505 0.312500 -v -0.295495 0.439340 0.312500 -v -0.339689 0.925476 0.687500 -v -0.560660 0.704505 0.312500 -v -0.295495 0.527728 0.625000 -v -0.118718 0.704505 0.375000 -v -0.472272 0.704505 0.375000 -v -0.295495 0.527728 0.375000 -v -0.295495 0.881281 0.375000 -v -0.472272 0.704505 0.625000 -v -0.295495 0.881281 0.625000 -v -0.118718 0.704505 0.625000 -v 1.251301 2.516466 0.687500 -v 1.516466 2.251301 0.312500 -v 1.251301 2.516466 0.312499 -v 1.074524 2.339689 0.687500 -v 1.074524 2.339689 0.312500 -v 1.295495 2.560660 0.687499 -v 1.560660 2.295495 0.687499 -v 1.030330 2.295495 0.687500 -v 1.295495 2.030330 0.687500 -v 1.295495 2.030330 0.312500 -v 1.339689 2.074524 0.312500 -v 1.516466 2.251301 0.687500 -v 1.030330 2.295495 0.312500 -v 1.295495 2.560660 0.312499 -v 1.339689 2.074524 0.687500 -v 1.560660 2.295495 0.312499 -v 1.295495 2.472272 0.625000 -v 1.118718 2.295495 0.375000 -v 1.472272 2.295495 0.375000 -v 1.295495 2.472272 0.375000 -v 1.295495 2.118718 0.375000 -v 1.472272 2.295495 0.625000 -v 1.295495 2.118718 0.625000 -v 1.118719 2.295495 0.625000 -v 1.516465 0.748698 0.687500 -v 1.251300 0.483533 0.312500 -v 1.516465 0.748698 0.312500 -v 1.339689 0.925475 0.687500 -v 1.339689 0.925475 0.312500 -v 1.560660 0.704504 0.687500 -v 1.295494 0.439339 0.687500 -v 1.295495 0.969669 0.687500 -v 1.030329 0.704504 0.687500 -v 1.030329 0.704504 0.312500 -v 1.074524 0.660310 0.312500 -v 1.251300 0.483533 0.687500 -v 1.295495 0.969669 0.312500 -v 1.560660 0.704504 0.312500 -v 1.074524 0.660310 0.687500 -v 1.295494 0.439339 0.312500 -v 1.472271 0.704504 0.625000 -v 1.295495 0.881281 0.375000 -v 1.295494 0.527727 0.375000 -v 1.472271 0.704504 0.375000 -v 1.118718 0.704504 0.375000 -v 1.295494 0.527727 0.625000 -v 1.118718 0.704504 0.625000 -v 1.295495 0.881281 0.625000 -v -0.516466 2.251301 0.687500 -v -0.251301 2.516466 0.312500 -v -0.516466 2.251300 0.312500 -v -0.339689 2.074524 0.687500 -v -0.339689 2.074524 0.312500 -v -0.560660 2.295495 0.687500 -v -0.295495 2.560660 0.687500 -v -0.295495 2.030330 0.687500 -v -0.030330 2.295495 0.687500 -v -0.030330 2.295495 0.312500 -v -0.074524 2.339689 0.312500 -v -0.251301 2.516466 0.687500 -v -0.295495 2.030330 0.312500 -v -0.560660 2.295495 0.312500 -v -0.074524 2.339689 0.687500 -v -0.295495 2.560660 0.312500 -v -0.472272 2.295495 0.625000 -v -0.295495 2.118718 0.375000 -v -0.295495 2.472271 0.375000 -v -0.472272 2.295495 0.375000 -v -0.118719 2.295495 0.375000 -v -0.295495 2.472271 0.625000 -v -0.118719 2.295495 0.625000 -v -0.295495 2.118718 0.625000 -v -0.750000 1.312500 0.687500 -v -0.750000 1.687500 0.312500 -v -0.750000 1.312500 0.312500 -v -0.500000 1.312500 0.687500 -v -0.500000 1.312500 0.312500 -v -0.812500 1.312500 0.687500 -v -0.812500 1.687500 0.687500 -v -0.437500 1.312500 0.687500 -v -0.437500 1.687500 0.687500 -v -0.437500 1.687500 0.312500 -v -0.500000 1.687500 0.312500 -v -0.750000 1.687500 0.687500 -v -0.437500 1.312500 0.312500 -v -0.812500 1.312500 0.312500 -v -0.500000 1.687500 0.687500 -v -0.812500 1.687500 0.312500 -v -0.750000 1.375000 0.625000 -v -0.500000 1.375000 0.375000 -v -0.750000 1.625000 0.375000 -v -0.750000 1.375000 0.375000 -v -0.500000 1.625000 0.375000 -v -0.750000 1.625000 0.625000 -v -0.500000 1.625000 0.625000 -v -0.500000 1.375000 0.625000 -v 1.750000 1.687499 0.687500 -v 1.750000 1.312499 0.312500 -v 1.750000 1.687499 0.312500 -v 1.500000 1.687499 0.687500 -v 1.500000 1.687499 0.312500 -v 1.812500 1.687499 0.687500 -v 1.812500 1.312499 0.687500 -v 1.437500 1.687499 0.687500 -v 1.437500 1.312499 0.687500 -v 1.437500 1.312500 0.312500 -v 1.500000 1.312499 0.312500 -v 1.750000 1.312499 0.687500 -v 1.437500 1.687499 0.312500 -v 1.812500 1.687499 0.312500 -v 1.500000 1.312499 0.687500 -v 1.812500 1.312499 0.312500 -v 1.750000 1.624999 0.625000 -v 1.500000 1.624999 0.375000 -v 1.750000 1.374999 0.375000 -v 1.750000 1.624999 0.375000 -v 1.500000 1.374999 0.375000 -v 1.750000 1.374999 0.625000 -v 1.500000 1.375000 0.625000 -v 1.500000 1.624999 0.625000 -v 0.312500 2.750000 0.687500 -v 0.687500 2.750000 0.312499 -v 0.312500 2.750000 0.312499 -v 0.312500 2.500000 0.687500 -v 0.312500 2.500000 0.312500 -v 0.312500 2.812500 0.687499 -v 0.687500 2.812500 0.687499 -v 0.312500 2.437500 0.687500 -v 0.687500 2.437500 0.687500 -v 0.687500 2.437500 0.312500 -v 0.687500 2.500000 0.312500 -v 0.687500 2.750000 0.687499 -v 0.312500 2.437500 0.312500 -v 0.312500 2.812500 0.312499 -v 0.687500 2.500000 0.687500 -v 0.687500 2.812500 0.312499 -v 0.375000 2.750000 0.625000 -v 0.375000 2.500000 0.375000 -v 0.625000 2.750000 0.374999 -v 0.375000 2.750000 0.375000 -v 0.625000 2.500000 0.375000 -v 0.625000 2.750000 0.624999 -v 0.625000 2.500000 0.625000 -v 0.375000 2.500000 0.625000 -v 0.750000 1.625000 0.000000 -v 0.750000 1.375000 0.000000 -v 0.750000 1.625000 -0.625000 -v 0.750000 1.375000 -0.625000 -v 1.000000 1.625000 -0.000000 -v 1.000000 1.375000 -0.000000 -v 1.000000 1.625000 -0.625000 -v 1.000000 1.375000 -0.625000 -v 0.250000 1.625000 0.000000 -v 0.250000 1.375000 0.000000 -v 0.250000 1.625000 -0.625000 -v 0.250000 1.375000 -0.625000 -v -0.000000 1.625000 0.000000 -v -0.000000 1.375000 0.000000 -v -0.000000 1.625000 -0.625000 -v -0.000000 1.375000 -0.625000 -v 0.750000 1.437500 -0.156250 -v 0.750000 1.562500 -0.156250 -v 0.750000 1.437500 -0.031250 -v 0.750000 1.562500 -0.031250 -v 0.250000 1.437500 -0.156250 -v 0.250000 1.562500 -0.156250 -v 0.250000 1.437500 -0.031250 -v 0.250000 1.562500 -0.031250 +v 1.000000 -0.500000 1.000000 +v 1.000000 0.000000 1.000000 +v 1.000000 -0.500000 2.000000 +v 1.000000 0.000000 2.000000 +v 0.000000 -0.500000 1.000000 +v 0.000000 1.000000 1.000000 +v 0.000000 -0.500000 2.000000 +v 0.000000 1.000000 2.000000 +v -1.000000 -0.500000 1.000000 +v -1.000000 1.000000 1.000000 +v -1.000000 -0.500000 2.000000 +v -1.000000 1.000000 2.000000 +v 0.750000 0.250000 -0.625000 +v 0.750000 0.250000 -0.375000 +v 0.250000 0.250000 -0.625000 +v 0.250000 0.250000 -0.375000 +v 0.750000 0.750000 -0.625000 +v 0.750000 0.750000 -0.375000 +v 0.250000 0.750000 -0.375000 +v 0.250000 0.750000 -0.625000 +v 0.875000 -0.500000 -0.625000 +v 0.750000 0.250000 -0.625000 +v 0.875000 -0.500000 -0.375000 +v 0.750000 0.250000 -0.375000 +v 0.750000 -0.500000 -0.625000 +v 0.625000 0.250000 -0.625000 +v 0.750000 -0.500000 -0.375000 +v 0.625000 0.250000 -0.375000 +v 0.125000 -0.500000 -0.375000 +v 0.250000 0.250000 -0.375000 +v 0.125000 -0.500000 -0.625000 +v 0.250000 0.250000 -0.625000 +v 0.250000 -0.500000 -0.375000 +v 0.375000 0.250000 -0.375000 +v 0.250000 -0.500000 -0.625000 +v 0.375000 0.250000 -0.625000 +v 0.750000 0.250000 1.625000 +v 0.750000 0.250000 1.375000 +v 0.250000 0.250000 1.625000 +v 0.250000 0.250000 1.375000 +v 0.750000 0.750000 1.625000 +v 0.750000 0.750000 1.375000 +v 0.250000 0.750000 1.375000 +v 0.250000 0.750000 1.625000 +v 0.875000 -0.500000 1.625000 +v 0.750000 0.250000 1.625000 +v 0.875000 -0.500000 1.375000 +v 0.750000 0.250000 1.375000 +v 0.750000 -0.500000 1.625000 +v 0.625000 0.250000 1.625000 +v 0.750000 -0.500000 1.375000 +v 0.625000 0.250000 1.375000 +v 0.125000 -0.500000 1.375000 +v 0.250000 0.250000 1.375000 +v 0.125000 -0.500000 1.625000 +v 0.250000 0.250000 1.625000 +v 0.250000 -0.500000 1.375000 +v 0.375000 0.250000 1.375000 +v 0.250000 -0.500000 1.625000 +v 0.375000 0.250000 1.625000 +v 0.238920 1.812536 0.748923 +v 0.238920 1.812536 0.251077 +v -0.243492 1.612714 0.748923 +v -0.243492 1.612714 0.251077 +v -0.612714 1.243492 0.748923 +v -0.612714 1.243492 0.251077 +v -0.812536 0.761080 0.748923 +v -0.812536 0.761080 0.251077 +v -0.812536 0.238920 0.748923 +v -0.812536 0.238920 0.251077 +v -0.612714 -0.243492 0.748923 +v -0.612714 -0.243492 0.251077 +v -0.243492 -0.612714 0.748923 +v -0.243492 -0.612714 0.251077 +v 0.238920 -0.812536 0.748923 +v 0.238920 -0.812536 0.251077 +v 0.761079 -0.812536 0.748923 +v 0.761079 -0.812536 0.251077 +v 1.243492 -0.612714 0.748923 +v 1.243492 -0.612714 0.251077 +v 1.612714 -0.243492 0.748923 +v 1.612714 -0.243492 0.251077 +v 1.812536 0.238920 0.748923 +v 1.812536 0.238920 0.251077 +v 1.812536 0.761080 0.748923 +v 1.812536 0.761080 0.251077 +v 1.612714 1.243492 0.748923 +v 1.612714 1.243492 0.251077 +v 1.243491 1.612714 0.748923 +v 1.243491 1.612714 0.251077 +v 0.761079 1.812536 0.748923 +v 0.761079 1.812536 0.251077 +v -0.279065 1.665954 0.748923 +v 0.226429 1.875336 0.748923 +v 0.226429 1.875336 0.251077 +v -0.279065 1.665954 0.251077 +v -0.665954 1.279065 0.748923 +v -0.665954 1.279065 0.251077 +v -0.875336 0.773571 0.748923 +v -0.875336 0.773571 0.251077 +v -0.875336 0.226429 0.748923 +v -0.875336 0.226429 0.251077 +v -0.665954 -0.279065 0.748923 +v -0.665954 -0.279066 0.251077 +v -0.279065 -0.665954 0.748923 +v -0.279065 -0.665954 0.251077 +v 0.226429 -0.875336 0.748923 +v 0.226429 -0.875336 0.251077 +v 0.773571 -0.875336 0.748923 +v 0.773571 -0.875336 0.251077 +v 1.279065 -0.665954 0.748923 +v 1.279065 -0.665954 0.251077 +v 1.665954 -0.279066 0.748923 +v 1.665954 -0.279066 0.251077 +v 1.875336 0.226429 0.748923 +v 1.875336 0.226428 0.251077 +v 1.875336 0.773571 0.748923 +v 1.875336 0.773571 0.251077 +v 1.665954 1.279066 0.748923 +v 1.665954 1.279066 0.251077 +v 1.279065 1.665954 0.748923 +v 1.279065 1.665954 0.251077 +v 0.773571 1.875336 0.748923 +v 0.773571 1.875336 0.251077 +v 0.687500 -0.750000 0.687500 +v 0.312500 -0.750000 0.312500 +v 0.687500 -0.750000 0.312500 +v 0.687500 -0.500000 0.687500 +v 0.687500 -0.500000 0.312500 +v 0.687500 -0.812500 0.687500 +v 0.312500 -0.812500 0.687500 +v 0.687500 -0.437500 0.687500 +v 0.312500 -0.437500 0.687500 +v 0.312500 -0.437500 0.312500 +v 0.312500 -0.500000 0.312500 +v 0.312500 -0.750000 0.687500 +v 0.687500 -0.437500 0.312500 +v 0.687500 -0.812500 0.312500 +v 0.312500 -0.500000 0.687500 +v 0.312500 -0.812500 0.312500 +v 0.625000 -0.750000 0.625000 +v 0.625000 -0.500000 0.375000 +v 0.375000 -0.750000 0.375000 +v 0.625000 -0.750000 0.375000 +v 0.375000 -0.500000 0.375000 +v 0.375000 -0.750000 0.625000 +v 0.375000 -0.500000 0.625000 +v 0.625000 -0.500000 0.625000 +v 1.151582 -0.583097 0.687500 +v 0.805127 -0.726603 0.312500 +v 1.151582 -0.583096 0.312500 +v 1.055911 -0.352126 0.687500 +v 1.055911 -0.352126 0.312500 +v 1.175499 -0.640839 0.687500 +v 0.829045 -0.784345 0.687500 +v 1.031993 -0.294384 0.687500 +v 0.685538 -0.437890 0.687500 +v 0.685538 -0.437890 0.312500 +v 0.709456 -0.495633 0.312500 +v 0.805127 -0.726603 0.687500 +v 1.031993 -0.294384 0.312500 +v 1.175499 -0.640839 0.312500 +v 0.709456 -0.495633 0.687500 +v 0.829045 -0.784345 0.312500 +v 1.093839 -0.607014 0.625000 +v 0.998168 -0.376044 0.375000 +v 0.862869 -0.702685 0.375000 +v 1.093839 -0.607014 0.375000 +v 0.767199 -0.471715 0.375000 +v 0.862869 -0.702685 0.625000 +v 0.767199 -0.471715 0.625000 +v 0.998168 -0.376044 0.625000 +v -0.151582 1.583096 0.687500 +v 0.194873 1.726602 0.312499 +v -0.151582 1.583096 0.312500 +v -0.055911 1.352126 0.687500 +v -0.055911 1.352126 0.312500 +v -0.175500 1.640838 0.687500 +v 0.170955 1.784345 0.687499 +v -0.031993 1.294384 0.687500 +v 0.314461 1.437890 0.687500 +v 0.314461 1.437890 0.312500 +v 0.290544 1.495632 0.312500 +v 0.194873 1.726602 0.687500 +v -0.031993 1.294383 0.312500 +v -0.175500 1.640838 0.312500 +v 0.290544 1.495632 0.687500 +v 0.170955 1.784345 0.312499 +v -0.093840 1.607014 0.625000 +v 0.001831 1.376044 0.375000 +v 0.137130 1.702685 0.375000 +v -0.093840 1.607014 0.375000 +v 0.232801 1.471715 0.375000 +v 0.137130 1.702685 0.625000 +v 0.232801 1.471715 0.625000 +v 0.001831 1.376044 0.625000 +v 1.583097 1.151581 0.687500 +v 1.726603 0.805126 0.312500 +v 1.583097 1.151581 0.312500 +v 1.352127 1.055910 0.687500 +v 1.352127 1.055910 0.312500 +v 1.640839 1.175498 0.687500 +v 1.784346 0.829043 0.687500 +v 1.294385 1.031992 0.687500 +v 1.437891 0.685537 0.687500 +v 1.437890 0.685537 0.312500 +v 1.495633 0.709455 0.312500 +v 1.726603 0.805126 0.687500 +v 1.294384 1.031992 0.312500 +v 1.640839 1.175498 0.312499 +v 1.495633 0.709455 0.687500 +v 1.784345 0.829043 0.312500 +v 1.607014 1.093838 0.625000 +v 1.376045 0.998168 0.375000 +v 1.702685 0.862868 0.375000 +v 1.607014 1.093838 0.375000 +v 1.471715 0.767197 0.375000 +v 1.702685 0.862868 0.625000 +v 1.471715 0.767198 0.625000 +v 1.376045 0.998168 0.625000 +v -0.583096 -0.151582 0.687500 +v -0.726603 0.194873 0.312500 +v -0.583096 -0.151582 0.312500 +v -0.352126 -0.055911 0.687500 +v -0.352126 -0.055911 0.312500 +v -0.640839 -0.175500 0.687500 +v -0.784345 0.170955 0.687500 +v -0.294384 -0.031993 0.687500 +v -0.437890 0.314462 0.687500 +v -0.437890 0.314461 0.312500 +v -0.495633 0.290544 0.312500 +v -0.726603 0.194873 0.687500 +v -0.294384 -0.031993 0.312500 +v -0.640839 -0.175500 0.312500 +v -0.495633 0.290544 0.687500 +v -0.784345 0.170955 0.312500 +v -0.607014 -0.093840 0.625000 +v -0.376044 0.001831 0.375000 +v -0.702685 0.137130 0.375000 +v -0.607014 -0.093839 0.375000 +v -0.471715 0.232801 0.375000 +v -0.702685 0.137130 0.625000 +v -0.471715 0.232801 0.625000 +v -0.376044 0.001832 0.625000 +v -0.726603 0.805126 0.687500 +v -0.583096 1.151581 0.312500 +v -0.726602 0.805126 0.312500 +v -0.495633 0.709456 0.687500 +v -0.495633 0.709456 0.312500 +v -0.784345 0.829044 0.687500 +v -0.640839 1.175499 0.687500 +v -0.437890 0.685538 0.687500 +v -0.294384 1.031993 0.687500 +v -0.294384 1.031993 0.312500 +v -0.352126 1.055910 0.312500 +v -0.583096 1.151581 0.687500 +v -0.437890 0.685538 0.312500 +v -0.784345 0.829044 0.312500 +v -0.352126 1.055911 0.687500 +v -0.640839 1.175499 0.312500 +v -0.702685 0.862869 0.625000 +v -0.471715 0.767198 0.375000 +v -0.607014 1.093839 0.375000 +v -0.702685 0.862869 0.375000 +v -0.376044 0.998168 0.375000 +v -0.607014 1.093839 0.625000 +v -0.376044 0.998168 0.625000 +v -0.471715 0.767198 0.625000 +v 1.726602 0.194872 0.687500 +v 1.583095 -0.151583 0.312500 +v 1.726602 0.194872 0.312500 +v 1.495632 0.290543 0.687500 +v 1.495632 0.290543 0.312500 +v 1.784345 0.170954 0.687500 +v 1.640838 -0.175501 0.687500 +v 1.437890 0.314461 0.687500 +v 1.294383 -0.031994 0.687500 +v 1.294383 -0.031994 0.312500 +v 1.352126 -0.055912 0.312500 +v 1.583096 -0.151583 0.687500 +v 1.437890 0.314461 0.312500 +v 1.784345 0.170954 0.312500 +v 1.352126 -0.055912 0.687500 +v 1.640838 -0.175501 0.312500 +v 1.702685 0.137129 0.625000 +v 1.471715 0.232800 0.375000 +v 1.607013 -0.093840 0.375000 +v 1.702684 0.137129 0.375000 +v 1.376044 0.001831 0.375000 +v 1.607013 -0.093841 0.625000 +v 1.376044 0.001831 0.625000 +v 1.471715 0.232800 0.625000 +v 0.805127 1.726603 0.687500 +v 1.151582 1.583096 0.312499 +v 0.805127 1.726603 0.312499 +v 0.709456 1.495633 0.687500 +v 0.709456 1.495632 0.312500 +v 0.829045 1.784345 0.687499 +v 1.175500 1.640839 0.687499 +v 0.685538 1.437890 0.687500 +v 1.031993 1.294384 0.687500 +v 1.031993 1.294384 0.312500 +v 1.055911 1.352126 0.312500 +v 1.151582 1.583096 0.687499 +v 0.685538 1.437890 0.312500 +v 0.829045 1.784345 0.312499 +v 1.055911 1.352126 0.687500 +v 1.175500 1.640839 0.312499 +v 0.862869 1.702685 0.625000 +v 0.767199 1.471715 0.375000 +v 1.093839 1.607014 0.375000 +v 0.862869 1.702685 0.374999 +v 0.998168 1.376044 0.375000 +v 1.093839 1.607014 0.624999 +v 0.998168 1.376044 0.625000 +v 0.767199 1.471715 0.625000 +v 0.194873 -0.726603 0.687500 +v -0.151582 -0.583096 0.312500 +v 0.194873 -0.726603 0.312500 +v 0.290544 -0.495633 0.687500 +v 0.290544 -0.495633 0.312500 +v 0.170956 -0.784345 0.687500 +v -0.175499 -0.640839 0.687500 +v 0.314462 -0.437890 0.687500 +v -0.031993 -0.294384 0.687500 +v -0.031993 -0.294384 0.312500 +v -0.055911 -0.352127 0.312500 +v -0.151582 -0.583096 0.687500 +v 0.314462 -0.437890 0.312500 +v 0.170956 -0.784345 0.312500 +v -0.055911 -0.352126 0.687500 +v -0.175499 -0.640839 0.312500 +v 0.137131 -0.702685 0.625000 +v 0.232802 -0.471715 0.375000 +v -0.093839 -0.607014 0.375000 +v 0.137131 -0.702685 0.375000 +v 0.001832 -0.376044 0.375000 +v -0.093839 -0.607014 0.625000 +v 0.001832 -0.376044 0.625000 +v 0.232802 -0.471715 0.625000 +v -0.251301 -0.516466 0.687500 +v -0.516466 -0.251301 0.312500 +v -0.251301 -0.516466 0.312500 +v -0.074524 -0.339689 0.687500 +v -0.074524 -0.339689 0.312500 +v -0.295495 -0.560660 0.687500 +v -0.560660 -0.295495 0.687500 +v -0.030330 -0.295495 0.687500 +v -0.295495 -0.030330 0.687500 +v -0.295495 -0.030330 0.312500 +v -0.339689 -0.074524 0.312500 +v -0.516466 -0.251301 0.687500 +v -0.030330 -0.295495 0.312500 +v -0.295495 -0.560660 0.312500 +v -0.339689 -0.074524 0.687500 +v -0.560660 -0.295495 0.312500 +v -0.295495 -0.472272 0.625000 +v -0.118718 -0.295495 0.375000 +v -0.472272 -0.295495 0.375000 +v -0.295495 -0.472272 0.375000 +v -0.295495 -0.118719 0.375000 +v -0.472272 -0.295495 0.625000 +v -0.295495 -0.118719 0.625000 +v -0.118718 -0.295495 0.625000 +v 1.251301 1.516466 0.687500 +v 1.516466 1.251301 0.312500 +v 1.251301 1.516466 0.312499 +v 1.074524 1.339689 0.687500 +v 1.074524 1.339689 0.312500 +v 1.295495 1.560660 0.687499 +v 1.560660 1.295495 0.687499 +v 1.030330 1.295495 0.687500 +v 1.295495 1.030330 0.687500 +v 1.295495 1.030330 0.312500 +v 1.339689 1.074524 0.312500 +v 1.516466 1.251301 0.687500 +v 1.030330 1.295495 0.312500 +v 1.295495 1.560660 0.312499 +v 1.339689 1.074524 0.687500 +v 1.560660 1.295495 0.312499 +v 1.295495 1.472272 0.625000 +v 1.118718 1.295495 0.375000 +v 1.472272 1.295495 0.375000 +v 1.295495 1.472272 0.375000 +v 1.295495 1.118718 0.375000 +v 1.472272 1.295495 0.625000 +v 1.295495 1.118718 0.625000 +v 1.118719 1.295495 0.625000 +v 1.516465 -0.251302 0.687500 +v 1.251300 -0.516467 0.312500 +v 1.516465 -0.251302 0.312500 +v 1.339689 -0.074525 0.687500 +v 1.339689 -0.074525 0.312500 +v 1.560660 -0.295496 0.687500 +v 1.295494 -0.560661 0.687500 +v 1.295495 -0.030331 0.687500 +v 1.030329 -0.295496 0.687500 +v 1.030329 -0.295496 0.312500 +v 1.074524 -0.339690 0.312500 +v 1.251300 -0.516467 0.687500 +v 1.295495 -0.030331 0.312500 +v 1.560660 -0.295496 0.312500 +v 1.074524 -0.339690 0.687500 +v 1.295494 -0.560661 0.312500 +v 1.472271 -0.295496 0.625000 +v 1.295495 -0.118719 0.375000 +v 1.295494 -0.472273 0.375000 +v 1.472271 -0.295496 0.375000 +v 1.118718 -0.295496 0.375000 +v 1.295494 -0.472273 0.625000 +v 1.118718 -0.295496 0.625000 +v 1.295495 -0.118719 0.625000 +v -0.516466 1.251301 0.687500 +v -0.251301 1.516466 0.312500 +v -0.516466 1.251300 0.312500 +v -0.339689 1.074524 0.687500 +v -0.339689 1.074524 0.312500 +v -0.560660 1.295495 0.687500 +v -0.295495 1.560660 0.687500 +v -0.295495 1.030330 0.687500 +v -0.030330 1.295495 0.687500 +v -0.030330 1.295495 0.312500 +v -0.074524 1.339689 0.312500 +v -0.251301 1.516466 0.687500 +v -0.295495 1.030330 0.312500 +v -0.560660 1.295495 0.312500 +v -0.074524 1.339689 0.687500 +v -0.295495 1.560660 0.312500 +v -0.472272 1.295495 0.625000 +v -0.295495 1.118718 0.375000 +v -0.295495 1.472271 0.375000 +v -0.472272 1.295495 0.375000 +v -0.118719 1.295495 0.375000 +v -0.295495 1.472271 0.625000 +v -0.118719 1.295495 0.625000 +v -0.295495 1.118718 0.625000 +v -0.750000 0.312500 0.687500 +v -0.750000 0.687500 0.312500 +v -0.750000 0.312500 0.312500 +v -0.500000 0.312500 0.687500 +v -0.500000 0.312500 0.312500 +v -0.812500 0.312500 0.687500 +v -0.812500 0.687500 0.687500 +v -0.437500 0.312500 0.687500 +v -0.437500 0.687500 0.687500 +v -0.437500 0.687500 0.312500 +v -0.500000 0.687500 0.312500 +v -0.750000 0.687500 0.687500 +v -0.437500 0.312500 0.312500 +v -0.812500 0.312500 0.312500 +v -0.500000 0.687500 0.687500 +v -0.812500 0.687500 0.312500 +v -0.750000 0.375000 0.625000 +v -0.500000 0.375000 0.375000 +v -0.750000 0.625000 0.375000 +v -0.750000 0.375000 0.375000 +v -0.500000 0.625000 0.375000 +v -0.750000 0.625000 0.625000 +v -0.500000 0.625000 0.625000 +v -0.500000 0.375000 0.625000 +v 1.750000 0.687499 0.687500 +v 1.750000 0.312499 0.312500 +v 1.750000 0.687499 0.312500 +v 1.500000 0.687499 0.687500 +v 1.500000 0.687499 0.312500 +v 1.812500 0.687499 0.687500 +v 1.812500 0.312499 0.687500 +v 1.437500 0.687499 0.687500 +v 1.437500 0.312499 0.687500 +v 1.437500 0.312499 0.312500 +v 1.500000 0.312499 0.312500 +v 1.750000 0.312499 0.687500 +v 1.437500 0.687499 0.312500 +v 1.812500 0.687499 0.312500 +v 1.500000 0.312499 0.687500 +v 1.812500 0.312499 0.312500 +v 1.750000 0.624999 0.625000 +v 1.500000 0.624999 0.375000 +v 1.750000 0.374999 0.375000 +v 1.750000 0.624999 0.375000 +v 1.500000 0.374999 0.375000 +v 1.750000 0.374999 0.625000 +v 1.500000 0.374999 0.625000 +v 1.500000 0.624999 0.625000 +v 0.312500 1.750000 0.687500 +v 0.687500 1.750000 0.312499 +v 0.312500 1.750000 0.312499 +v 0.312500 1.500000 0.687500 +v 0.312500 1.500000 0.312500 +v 0.312500 1.812500 0.687499 +v 0.687500 1.812500 0.687499 +v 0.312500 1.437500 0.687500 +v 0.687500 1.437500 0.687500 +v 0.687500 1.437500 0.312500 +v 0.687500 1.500000 0.312500 +v 0.687500 1.750000 0.687499 +v 0.312500 1.437500 0.312500 +v 0.312500 1.812500 0.312499 +v 0.687500 1.500000 0.687500 +v 0.687500 1.812500 0.312499 +v 0.375000 1.750000 0.625000 +v 0.375000 1.500000 0.375000 +v 0.625000 1.750000 0.374999 +v 0.375000 1.750000 0.375000 +v 0.625000 1.500000 0.375000 +v 0.625000 1.750000 0.624999 +v 0.625000 1.500000 0.625000 +v 0.375000 1.500000 0.625000 +v 0.750000 0.625000 0.000000 +v 0.750000 0.375000 0.000000 +v 0.750000 0.625000 -0.625000 +v 0.750000 0.375000 -0.625000 +v 1.000000 0.625000 -0.000000 +v 1.000000 0.375000 -0.000000 +v 1.000000 0.625000 -0.625000 +v 1.000000 0.375000 -0.625000 +v 0.250000 0.625000 0.000000 +v 0.250000 0.375000 0.000000 +v 0.250000 0.625000 -0.625000 +v 0.250000 0.375000 -0.625000 +v -0.000000 0.625000 0.000000 +v -0.000000 0.375000 0.000000 +v -0.000000 0.625000 -0.625000 +v -0.000000 0.375000 -0.625000 +v 0.750000 0.437500 -0.156250 +v 0.750000 0.562500 -0.156250 +v 0.750000 0.437500 -0.031250 +v 0.750000 0.562500 -0.031250 +v 0.250000 0.437500 -0.156250 +v 0.250000 0.562500 -0.156250 +v 0.250000 0.437500 -0.031250 +v 0.250000 0.562500 -0.031250 +v -0.875000 0.625000 0.375000 +v -0.875000 0.226562 0.750000 +v -0.875000 0.625000 0.625000 +v -1.000000 0.226562 0.250000 +v -0.937500 0.625000 0.375000 +v -1.000000 0.226562 0.750000 +v -0.937500 0.625000 0.625000 +v -0.875000 0.375000 0.375000 +v -0.875000 0.375000 0.625000 +v -1.000000 0.375000 0.625000 +v -1.000000 0.375000 0.375000 +v -0.875000 0.226562 0.250000 +v -0.665942 -0.279442 0.250000 +v -1.000000 -0.279442 0.250000 +v -0.665942 -0.279442 0.750000 +v -1.000000 -0.279442 0.750000 +v -0.665942 -0.501168 0.750000 +v -1.000000 -0.501168 0.750000 +v -1.000000 -0.501168 0.250000 +v -0.665942 -0.501168 0.250000 +v 1.875000 0.625000 0.375000 +v 1.875000 0.226562 0.750000 +v 1.875000 0.625000 0.625000 +v 2.000000 0.226562 0.250000 +v 1.937500 0.625000 0.375000 +v 2.000000 0.226562 0.750000 +v 1.937500 0.625000 0.625000 +v 1.875000 0.375000 0.375000 +v 1.875000 0.375000 0.625000 +v 2.000000 0.375000 0.625000 +v 2.000000 0.375000 0.375000 +v 1.875000 0.226562 0.250000 +v 1.665942 -0.279442 0.250000 +v 2.000000 -0.279442 0.250000 +v 1.665942 -0.279442 0.750000 +v 2.000000 -0.279442 0.750000 +v 1.665942 -0.501168 0.750000 +v 2.000000 -0.501168 0.750000 +v 2.000000 -0.501168 0.250000 +v 1.665942 -0.501168 0.250000 vt 0.375000 0.250000 vt 0.375000 0.312500 vt 0.750000 0.312500 @@ -821,94 +821,6 @@ vt 0.812500 0.609375 vt 0.796875 0.609375 vt 0.796875 0.515625 vt 0.812500 0.515625 -vt 0.359922 0.489680 -vt 0.359922 0.523034 -vt 0.327578 0.523034 -vt 0.327578 0.489680 -vt 0.338696 0.490690 -vt 0.338696 0.523034 -vt 0.330610 0.523034 -vt 0.322524 0.490690 -vt 0.359922 0.489680 -vt 0.359922 0.523034 -vt 0.327578 0.523034 -vt 0.327578 0.489680 -vt 0.322524 0.490690 -vt 0.330610 0.523034 -vt 0.338696 0.523034 -vt 0.338696 0.490690 -vt 0.338696 0.470475 -vt 0.322524 0.470475 -vt 0.322524 0.403766 -vt 0.364976 0.403766 -vt 0.370030 0.523034 -vt 0.370030 0.509895 -vt 0.317470 0.509895 -vt 0.317470 0.523034 -vt 0.322524 0.470475 -vt 0.338696 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.312417 0.404776 -vt 0.375083 0.404776 -vt 0.312417 0.403766 -vt 0.375083 0.403766 -vt 0.364976 0.403766 -vt 0.322524 0.403766 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.364976 0.375464 -vt 0.322524 0.375464 -vt 0.322524 0.375464 -vt 0.364976 0.375464 -vt 0.359922 0.489680 -vt 0.327578 0.489680 -vt 0.327578 0.523034 -vt 0.359922 0.523034 -vt 0.338696 0.490690 -vt 0.322524 0.490690 -vt 0.330610 0.523034 -vt 0.338696 0.523034 -vt 0.359922 0.489680 -vt 0.327578 0.489680 -vt 0.327578 0.523034 -vt 0.359922 0.523034 -vt 0.322524 0.490690 -vt 0.338696 0.490690 -vt 0.338696 0.523034 -vt 0.330610 0.523034 -vt 0.338696 0.470475 -vt 0.364976 0.403766 -vt 0.322524 0.403766 -vt 0.322524 0.470475 -vt 0.370030 0.523034 -vt 0.317470 0.523034 -vt 0.317470 0.509895 -vt 0.370030 0.509895 -vt 0.322524 0.470475 -vt 0.338696 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.375083 0.404776 -vt 0.312417 0.404776 -vt 0.375083 0.403766 -vt 0.312417 0.403766 -vt 0.322524 0.403766 -vt 0.364976 0.403766 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.322524 0.375464 -vt 0.364976 0.375464 -vt 0.364976 0.375464 -vt 0.322524 0.375464 vt 0.500000 0.687500 vt 0.500000 0.812500 vt 0.375000 0.812500 @@ -2157,6 +2069,78 @@ vt 0.875000 0.656250 vt 0.875000 0.812500 vt 0.843750 0.812500 vt 0.843750 0.656250 +vt 0.177979 0.513854 +vt 0.177979 0.574789 +vt 0.162746 0.574789 +vt 0.147512 0.513854 +vt 0.178543 0.514716 +vt 0.178543 0.575988 +vt 0.239815 0.575988 +vt 0.239815 0.514716 +vt 0.147512 0.513854 +vt 0.162746 0.574789 +vt 0.177979 0.574789 +vt 0.177979 0.513854 +vt 0.177979 0.477674 +vt 0.147512 0.477674 +vt 0.147512 0.354341 +vt 0.228935 0.354341 +vt 0.178543 0.575988 +vt 0.239815 0.575988 +vt 0.147512 0.477674 +vt 0.177979 0.477674 +vt 0.147907 0.478336 +vt 0.270451 0.478336 +vt 0.270451 0.354319 +vt 0.147907 0.354319 +vt 0.228935 0.354341 +vt 0.147512 0.354341 +vt 0.270451 0.299977 +vt 0.147907 0.299976 +vt 0.147907 0.299977 +vt 0.270451 0.299976 +vt 0.270451 0.354319 +vt 0.147907 0.354319 +vt 0.228935 0.300297 +vt 0.147512 0.300297 +vt 0.147512 0.300297 +vt 0.228935 0.300297 +vt 0.177868 0.513854 +vt 0.147401 0.513854 +vt 0.162634 0.574789 +vt 0.177868 0.574789 +vt 0.178543 0.514716 +vt 0.239815 0.514716 +vt 0.239815 0.575988 +vt 0.178543 0.575988 +vt 0.147401 0.513854 +vt 0.177868 0.513854 +vt 0.177868 0.574789 +vt 0.162634 0.574789 +vt 0.177868 0.477674 +vt 0.228824 0.354341 +vt 0.147401 0.354341 +vt 0.147401 0.477674 +vt 0.239815 0.575988 +vt 0.178543 0.575988 +vt 0.147401 0.477674 +vt 0.177868 0.477674 +vt 0.147907 0.478336 +vt 0.270452 0.478336 +vt 0.147907 0.354319 +vt 0.270452 0.354319 +vt 0.147401 0.354341 +vt 0.228824 0.354341 +vt 0.270452 0.299977 +vt 0.147907 0.299976 +vt 0.147907 0.299977 +vt 0.147907 0.354319 +vt 0.270452 0.354319 +vt 0.270452 0.299976 +vt 0.147401 0.300297 +vt 0.228824 0.300297 +vt 0.228824 0.300297 +vt 0.147401 0.300297 vn 0.0000 0.0000 1.0000 vn 0.0000 1.0000 0.0000 vn -0.0000 0.0000 -1.0000 @@ -2167,24 +2151,22 @@ vn 0.9864 0.1644 -0.0000 vn -0.9864 -0.1644 0.0000 vn -0.9864 0.1644 0.0000 vn 0.9864 -0.1644 0.0000 -vn -0.9701 0.2425 0.0000 -vn 0.0000 0.6441 -0.7649 -vn 0.0000 0.6441 0.7649 -vn 0.9242 0.3818 0.0000 -vn 0.9701 0.2425 0.0000 -vn -0.9242 0.3818 0.0000 vn 0.3827 -0.9239 0.0000 vn 0.7071 -0.7071 0.0000 vn 0.9239 -0.3827 0.0000 vn 0.9239 0.3827 -0.0000 vn 0.7071 0.7071 -0.0000 -vn 0.3827 0.9239 0.0000 +vn 0.3827 0.9239 -0.0000 vn -0.3827 0.9239 0.0000 vn -0.7071 0.7071 -0.0000 -vn -0.9239 0.3827 0.0000 +vn -0.9239 0.3827 -0.0000 vn -0.9239 -0.3827 0.0000 vn -0.7071 -0.7071 0.0000 vn -0.3827 -0.9239 0.0000 +vn -0.9701 0.2425 0.0000 +vn 0.0000 0.6441 -0.7649 +vn 0.0000 0.6441 0.7649 +vn 0.9701 0.2425 0.0000 usemtl None s off f 4/1/1 3/2/1 1/3/1 2/4/1 @@ -2245,375 +2227,369 @@ f 91/198/1 95/199/1 96/200/1 92/201/1 f 89/202/9 91/203/9 92/204/9 90/205/9 f 95/199/10 93/206/10 94/207/10 96/200/10 f 93/208/3 89/209/3 90/210/3 94/211/3 -f 104/212/5 97/213/5 99/214/5 105/215/5 -f 105/216/1 99/217/1 103/218/1 106/219/1 -f 106/220/11 103/221/11 101/222/11 107/223/11 -f 107/224/3 101/225/3 97/226/3 104/227/3 -f 98/228/1 102/229/1 112/230/1 111/231/1 -f 103/232/2 99/233/2 97/234/2 101/235/2 -f 100/236/12 107/224/12 104/227/12 108/237/12 -f 102/238/4 106/220/4 107/223/4 100/239/4 -f 98/228/13 105/216/13 106/219/13 102/229/13 -f 108/240/5 104/212/5 105/215/5 98/241/5 -f 108/240/14 98/241/14 111/242/14 109/243/14 -f 102/238/4 100/239/4 110/244/4 112/245/4 -f 100/236/3 108/237/3 109/246/3 110/247/3 -f 115/248/4 114/249/4 112/245/4 110/244/4 -f 113/250/5 116/251/5 109/243/5 111/242/5 -f 109/246/3 116/252/3 115/253/3 110/247/3 -f 112/230/1 114/254/1 113/255/1 111/231/1 -f 124/256/4 125/257/4 119/258/4 117/259/4 -f 125/260/1 126/261/1 123/262/1 119/263/1 -f 126/264/15 127/265/15 121/266/15 123/267/15 -f 127/268/3 124/269/3 117/270/3 121/271/3 -f 118/272/1 131/273/1 132/274/1 122/275/1 -f 123/276/2 121/277/2 117/278/2 119/279/2 -f 120/280/12 128/281/12 124/269/12 127/268/12 -f 122/282/5 120/283/5 127/265/5 126/264/5 -f 118/272/13 122/275/13 126/261/13 125/260/13 -f 128/284/4 118/285/4 125/257/4 124/256/4 -f 128/284/16 129/286/16 131/287/16 118/285/16 -f 122/282/5 132/288/5 130/289/5 120/283/5 -f 120/280/3 130/290/3 129/291/3 128/281/3 -f 135/292/5 130/289/5 132/288/5 134/293/5 -f 133/294/4 131/287/4 129/286/4 136/295/4 -f 129/291/3 130/290/3 135/296/3 136/297/3 -f 132/274/1 131/273/1 133/298/1 134/299/1 -f 137/300/17 139/301/17 140/302/17 138/303/17 -f 139/304/18 141/305/18 142/306/18 140/307/18 -f 141/308/19 143/309/19 144/310/19 142/311/19 -f 143/312/5 145/313/5 146/314/5 144/315/5 -f 145/316/20 147/317/20 148/318/20 146/319/20 -f 147/320/21 149/321/21 150/322/21 148/323/21 -f 149/324/22 151/325/22 152/326/22 150/327/22 -f 151/328/2 153/329/2 154/330/2 152/331/2 -f 153/332/23 155/333/23 156/334/23 154/335/23 -f 155/336/24 157/337/24 158/338/24 156/339/24 -f 157/340/25 159/341/25 160/342/25 158/343/25 -f 159/344/4 161/345/4 162/346/4 160/347/4 -f 161/348/26 163/349/26 164/350/26 162/351/26 -f 163/352/27 165/353/27 166/354/27 164/355/27 -f 165/356/28 167/357/28 168/358/28 166/359/28 -f 167/360/6 137/361/6 138/362/6 168/363/6 -f 170/364/23 171/365/23 172/366/23 169/367/23 -f 169/368/24 172/369/24 174/370/24 173/371/24 -f 173/372/25 174/373/25 176/374/25 175/375/25 -f 175/376/4 176/377/4 178/378/4 177/379/4 -f 177/380/26 178/381/26 180/382/26 179/383/26 -f 179/384/27 180/385/27 182/386/27 181/387/27 -f 181/388/28 182/389/28 184/390/28 183/391/28 -f 183/392/6 184/393/6 186/394/6 185/395/6 -f 185/396/17 186/397/17 188/398/17 187/399/17 -f 187/400/18 188/401/18 190/402/18 189/403/18 -f 189/404/19 190/405/19 192/406/19 191/407/19 -f 191/408/5 192/409/5 194/410/5 193/411/5 -f 193/412/20 194/413/20 196/414/20 195/415/20 -f 195/416/21 196/417/21 198/418/21 197/419/21 -f 197/420/22 198/421/22 200/422/22 199/423/22 -f 199/424/2 200/425/2 171/426/2 170/427/2 -f 150/428/3 182/429/3 180/430/3 148/323/3 -f 168/431/3 200/432/3 198/433/3 166/359/3 -f 139/304/1 169/434/1 173/435/1 141/436/1 -f 157/340/1 189/437/1 191/438/1 159/439/1 -f 142/440/3 174/441/3 172/442/3 140/307/3 -f 160/443/3 192/444/3 190/445/3 158/343/3 -f 149/324/1 181/446/1 183/447/1 151/448/1 -f 167/360/1 199/449/1 170/450/1 137/451/1 -f 152/452/3 184/453/3 182/454/3 150/327/3 -f 138/455/3 171/456/3 200/457/3 168/363/3 -f 141/308/1 173/458/1 175/459/1 143/460/1 -f 159/344/1 191/461/1 193/462/1 161/463/1 -f 144/464/3 176/465/3 174/466/3 142/311/3 -f 162/467/3 194/468/3 192/469/3 160/347/3 -f 151/328/1 183/470/1 185/471/1 153/472/1 -f 154/473/3 186/474/3 184/475/3 152/331/3 -f 143/312/1 175/476/1 177/477/1 145/478/1 -f 161/348/1 193/479/1 195/480/1 163/481/1 -f 146/482/3 178/483/3 176/484/3 144/315/3 -f 164/485/3 196/486/3 194/487/3 162/351/3 -f 153/332/1 185/488/1 187/489/1 155/490/1 -f 156/491/3 188/492/3 186/493/3 154/335/3 -f 145/316/1 177/494/1 179/495/1 147/496/1 -f 163/352/1 195/497/1 197/498/1 165/499/1 -f 137/300/1 170/500/1 169/501/1 139/502/1 -f 148/503/3 180/504/3 178/505/3 146/319/3 -f 166/506/3 198/507/3 196/508/3 164/355/3 -f 155/336/1 187/509/1 189/510/1 157/511/1 -f 140/512/3 172/513/3 171/514/3 138/303/3 -f 158/515/3 190/516/3 188/517/3 156/339/3 -f 147/320/1 179/518/1 181/519/1 149/520/1 -f 165/356/1 197/521/1 199/522/1 167/523/1 -f 204/524/6 215/525/6 211/526/6 205/527/6 -f 206/528/6 207/529/6 216/530/6 214/531/6 -f 203/532/5 201/533/5 206/534/5 214/535/5 -f 215/536/1 204/524/1 208/537/1 209/538/1 -f 217/539/5 220/540/5 218/541/5 224/542/5 -f 213/543/2 210/544/2 209/545/2 208/546/2 -f 204/547/5 205/548/5 213/549/5 208/550/5 -f 224/551/1 223/552/1 222/553/1 217/554/1 -f 212/555/4 202/556/4 216/557/4 207/558/4 -f 219/559/4 222/560/4 223/561/4 221/562/4 -f 205/527/3 211/563/3 210/564/3 213/565/3 -f 201/566/1 212/567/1 207/568/1 206/528/1 -f 220/569/3 219/570/3 221/571/3 218/572/3 -f 203/573/2 202/574/2 212/575/2 201/576/2 -f 211/577/4 215/578/4 209/579/4 210/580/4 -f 202/581/3 203/582/3 214/531/3 216/583/3 -f 228/584/17 239/585/17 235/586/17 229/587/17 -f 230/588/17 231/589/17 240/590/17 238/591/17 -f 227/592/20 225/593/20 230/594/20 238/595/20 -f 239/596/1 228/584/1 232/597/1 233/598/1 -f 241/599/20 244/600/20 242/601/20 248/602/20 -f 237/603/23 234/604/23 233/605/23 232/606/23 -f 228/607/20 229/608/20 237/609/20 232/610/20 -f 248/611/1 247/612/1 246/613/1 241/614/1 -f 236/615/26 226/616/26 240/617/26 231/618/26 -f 243/619/26 246/620/26 247/621/26 245/622/26 -f 229/587/3 235/623/3 234/624/3 237/625/3 -f 225/626/1 236/627/1 231/628/1 230/588/1 -f 244/629/3 243/630/3 245/631/3 242/632/3 -f 227/633/23 226/634/23 236/635/23 225/636/23 -f 235/637/26 239/638/26 233/639/26 234/640/26 -f 226/641/3 227/642/3 238/591/3 240/643/3 -f 252/644/23 263/645/23 259/646/23 253/647/23 -f 254/648/23 255/649/23 264/650/23 262/651/23 -f 251/652/26 249/653/26 254/654/26 262/655/26 -f 263/656/1 252/644/1 256/657/1 257/658/1 -f 265/659/26 268/660/26 266/661/26 272/662/26 -f 261/663/17 258/664/17 257/665/17 256/666/17 -f 252/667/26 253/668/26 261/669/26 256/670/26 -f 272/671/1 271/672/1 270/673/1 265/674/1 -f 260/675/20 250/676/20 264/677/20 255/678/20 -f 267/679/20 270/680/20 271/681/20 269/682/20 -f 253/647/3 259/683/3 258/684/3 261/685/3 -f 249/686/1 260/687/1 255/688/1 254/648/1 -f 268/689/3 267/690/3 269/691/3 266/692/3 -f 251/693/17 250/694/17 260/695/17 249/696/17 -f 259/697/20 263/698/20 257/699/20 258/700/20 -f 250/701/3 251/702/3 262/651/3 264/703/3 -f 276/704/20 287/705/20 283/706/20 277/707/20 -f 278/708/20 279/709/20 288/710/20 286/711/20 -f 275/712/23 273/713/23 278/714/23 286/715/23 -f 287/716/1 276/704/1 280/717/1 281/718/1 -f 289/719/23 292/720/23 290/721/23 296/722/23 -f 285/723/26 282/724/26 281/725/26 280/726/26 -f 276/727/23 277/728/23 285/729/23 280/730/23 -f 296/731/1 295/732/1 294/733/1 289/734/1 -f 284/735/17 274/736/17 288/737/17 279/738/17 -f 291/739/17 294/740/17 295/741/17 293/742/17 -f 277/707/3 283/743/3 282/744/3 285/745/3 -f 273/746/1 284/747/1 279/748/1 278/708/1 -f 292/749/3 291/750/3 293/751/3 290/752/3 -f 275/753/26 274/754/26 284/755/26 273/756/26 -f 283/757/17 287/758/17 281/759/17 282/760/17 -f 274/761/3 275/762/3 286/711/3 288/763/3 -f 300/764/26 311/765/26 307/766/26 301/767/26 -f 302/768/26 303/769/26 312/770/26 310/771/26 -f 299/772/17 297/773/17 302/774/17 310/775/17 -f 311/776/1 300/764/1 304/777/1 305/778/1 -f 313/779/17 316/780/17 314/781/17 320/782/17 -f 309/783/20 306/784/20 305/785/20 304/786/20 -f 300/787/17 301/788/17 309/789/17 304/790/17 -f 320/791/1 319/792/1 318/793/1 313/794/1 -f 308/795/23 298/796/23 312/797/23 303/798/23 -f 315/799/23 318/800/23 319/801/23 317/802/23 -f 301/767/3 307/803/3 306/804/3 309/805/3 -f 297/806/1 308/807/1 303/808/1 302/768/1 -f 316/809/3 315/810/3 317/811/3 314/812/3 -f 299/813/20 298/814/20 308/815/20 297/816/20 -f 307/817/23 311/818/23 305/819/23 306/820/23 -f 298/821/3 299/822/3 310/771/3 312/823/3 -f 324/824/25 335/825/25 331/826/25 325/827/25 -f 326/828/25 327/829/25 336/830/25 334/831/25 -f 323/832/28 321/833/28 326/834/28 334/835/28 -f 335/836/1 324/824/1 328/837/1 329/838/1 -f 337/839/28 340/840/28 338/841/28 344/842/28 -f 333/843/19 330/844/19 329/845/19 328/846/19 -f 324/847/28 325/848/28 333/849/28 328/850/28 -f 344/851/1 343/852/1 342/853/1 337/854/1 -f 332/855/22 322/856/22 336/857/22 327/858/22 -f 339/859/22 342/860/22 343/861/22 341/862/22 -f 325/827/3 331/863/3 330/864/3 333/865/3 -f 321/866/1 332/867/1 327/868/1 326/828/1 -f 340/869/3 339/870/3 341/871/3 338/872/3 -f 323/873/19 322/874/19 332/875/19 321/876/19 -f 331/877/22 335/878/22 329/879/22 330/880/22 -f 322/881/3 323/882/3 334/831/3 336/883/3 -f 348/884/19 359/885/19 355/886/19 349/887/19 -f 350/888/19 351/889/19 360/890/19 358/891/19 -f 347/892/22 345/893/22 350/894/22 358/895/22 -f 359/896/1 348/884/1 352/897/1 353/898/1 -f 361/899/22 364/900/22 362/901/22 368/902/22 -f 357/903/25 354/904/25 353/905/25 352/906/25 -f 348/907/22 349/908/22 357/909/22 352/910/22 -f 368/911/1 367/912/1 366/913/1 361/914/1 -f 356/915/28 346/916/28 360/917/28 351/918/28 -f 363/919/28 366/920/28 367/921/28 365/922/28 -f 349/887/3 355/923/3 354/924/3 357/925/3 -f 345/926/1 356/927/1 351/928/1 350/888/1 -f 364/929/3 363/930/3 365/931/3 362/932/3 -f 347/933/25 346/934/25 356/935/25 345/936/25 -f 355/937/28 359/938/28 353/939/28 354/940/28 -f 346/941/3 347/942/3 358/891/3 360/943/3 -f 372/944/22 383/945/22 379/946/22 373/947/22 -f 374/948/22 375/949/22 384/950/22 382/951/22 -f 371/952/25 369/953/25 374/954/25 382/955/25 -f 383/956/1 372/944/1 376/957/1 377/958/1 -f 385/959/25 388/960/25 386/961/25 392/962/25 -f 381/963/28 378/964/28 377/965/28 376/966/28 -f 372/967/25 373/968/25 381/969/25 376/970/25 -f 392/971/1 391/972/1 390/973/1 385/974/1 -f 380/975/19 370/976/19 384/977/19 375/978/19 -f 387/979/19 390/980/19 391/981/19 389/982/19 -f 373/947/3 379/983/3 378/984/3 381/985/3 -f 369/986/1 380/987/1 375/988/1 374/948/1 -f 388/989/3 387/990/3 389/991/3 386/992/3 -f 371/993/28 370/994/28 380/995/28 369/996/28 -f 379/997/19 383/998/19 377/999/19 378/1000/19 -f 370/1001/3 371/1002/3 382/951/3 384/1003/3 -f 396/1004/28 407/1005/28 403/1006/28 397/1007/28 -f 398/1008/28 399/1009/28 408/1010/28 406/1011/28 -f 395/1012/19 393/1013/19 398/1014/19 406/1015/19 -f 407/1016/1 396/1004/1 400/1017/1 401/1018/1 -f 409/1019/19 412/1020/19 410/1021/19 416/1022/19 -f 405/1023/22 402/1024/22 401/1025/22 400/1026/22 -f 396/1027/19 397/1028/19 405/1029/19 400/1030/19 -f 416/1031/1 415/1032/1 414/1033/1 409/1034/1 -f 404/1035/25 394/1036/25 408/1037/25 399/1038/25 -f 411/1039/25 414/1040/25 415/1041/25 413/1042/25 -f 397/1007/3 403/1043/3 402/1044/3 405/1045/3 -f 393/1046/1 404/1047/1 399/1048/1 398/1008/1 -f 412/1049/3 411/1050/3 413/1051/3 410/1052/3 -f 395/1053/22 394/1054/22 404/1055/22 393/1056/22 -f 403/1057/25 407/1058/25 401/1059/25 402/1060/25 -f 394/1061/3 395/1062/3 406/1011/3 408/1063/3 -f 420/1064/27 431/1065/27 427/1066/27 421/1067/27 -f 422/1068/27 423/1069/27 432/1070/27 430/1071/27 -f 419/1072/18 417/1073/18 422/1074/18 430/1075/18 -f 431/1076/1 420/1064/1 424/1077/1 425/1078/1 -f 433/1079/18 436/1080/18 434/1081/18 440/1082/18 -f 429/1083/21 426/1084/21 425/1085/21 424/1086/21 -f 420/1087/18 421/1088/18 429/1089/18 424/1090/18 -f 440/1091/1 439/1092/1 438/1093/1 433/1094/1 -f 428/1095/24 418/1096/24 432/1097/24 423/1098/24 -f 435/1099/24 438/1100/24 439/1101/24 437/1102/24 -f 421/1067/3 427/1103/3 426/1104/3 429/1105/3 -f 417/1106/1 428/1107/1 423/1108/1 422/1068/1 -f 436/1109/3 435/1110/3 437/1111/3 434/1112/3 -f 419/1113/21 418/1114/21 428/1115/21 417/1116/21 -f 427/1117/24 431/1118/24 425/1119/24 426/1120/24 -f 418/1121/3 419/1122/3 430/1071/3 432/1123/3 -f 444/1124/21 455/1125/21 451/1126/21 445/1127/21 -f 446/1128/21 447/1129/21 456/1130/21 454/1131/21 -f 443/1132/24 441/1133/24 446/1134/24 454/1135/24 -f 455/1136/1 444/1124/1 448/1137/1 449/1138/1 -f 457/1139/24 460/1140/24 458/1141/24 464/1142/24 -f 453/1143/27 450/1144/27 449/1145/27 448/1146/27 -f 444/1147/24 445/1148/24 453/1149/24 448/1150/24 -f 464/1151/1 463/1152/1 462/1153/1 457/1154/1 -f 452/1155/18 442/1156/18 456/1157/18 447/1158/18 -f 459/1159/18 462/1160/18 463/1161/18 461/1162/18 -f 445/1127/3 451/1163/3 450/1164/3 453/1165/3 -f 441/1166/1 452/1167/1 447/1168/1 446/1128/1 -f 460/1169/3 459/1170/3 461/1171/3 458/1172/3 -f 443/1173/27 442/1174/27 452/1175/27 441/1176/27 -f 451/1177/18 455/1178/18 449/1179/18 450/1180/18 -f 442/1181/3 443/1182/3 454/1131/3 456/1183/3 -f 468/1184/18 479/1185/18 475/1186/18 469/1187/18 -f 470/1188/18 471/1189/18 480/1190/18 478/1191/18 -f 467/1192/21 465/1193/21 470/1194/21 478/1195/21 -f 479/1196/1 468/1184/1 472/1197/1 473/1198/1 -f 481/1199/21 484/1200/21 482/1201/21 488/1202/21 -f 477/1203/24 474/1204/24 473/1205/24 472/1206/24 -f 468/1207/21 469/1208/21 477/1209/21 472/1210/21 -f 488/1211/1 487/1212/1 486/1213/1 481/1214/1 -f 476/1215/27 466/1216/27 480/1217/27 471/1218/27 -f 483/1219/27 486/1220/27 487/1221/27 485/1222/27 -f 469/1187/3 475/1223/3 474/1224/3 477/1225/3 -f 465/1226/1 476/1227/1 471/1228/1 470/1188/1 -f 484/1229/3 483/1230/3 485/1231/3 482/1232/3 -f 467/1233/24 466/1234/24 476/1235/24 465/1236/24 -f 475/1237/27 479/1238/27 473/1239/27 474/1240/27 -f 466/1241/3 467/1242/3 478/1191/3 480/1243/3 -f 492/1244/24 503/1245/24 499/1246/24 493/1247/24 -f 494/1248/24 495/1249/24 504/1250/24 502/1251/24 -f 491/1252/27 489/1253/27 494/1254/27 502/1255/27 -f 503/1256/1 492/1244/1 496/1257/1 497/1258/1 -f 505/1259/27 508/1260/27 506/1261/27 512/1262/27 -f 501/1263/18 498/1264/18 497/1265/18 496/1266/18 -f 492/1267/27 493/1268/27 501/1269/27 496/1270/27 -f 512/1271/1 511/1272/1 510/1273/1 505/1274/1 -f 500/1275/21 490/1276/21 504/1277/21 495/1278/21 -f 507/1279/21 510/1280/21 511/1281/21 509/1282/21 -f 493/1247/3 499/1283/3 498/1284/3 501/1285/3 -f 489/1286/1 500/1287/1 495/1288/1 494/1248/1 -f 508/1289/3 507/1290/3 509/1291/3 506/1292/3 -f 491/1293/18 490/1294/18 500/1295/18 489/1296/18 -f 499/1297/21 503/1298/21 497/1299/21 498/1300/21 -f 490/1301/3 491/1302/3 502/1251/3 504/1303/3 -f 516/1304/4 527/1305/4 523/1306/4 517/1307/4 -f 518/1308/4 519/1309/4 528/1310/4 526/1311/4 -f 515/1312/6 513/1313/6 518/1314/6 526/1315/6 -f 527/1316/1 516/1304/1 520/1317/1 521/1318/1 -f 529/1319/6 532/1320/6 530/1321/6 536/1322/6 -f 525/1323/5 522/1324/5 521/1325/5 520/1326/5 -f 516/1327/6 517/1328/6 525/1329/6 520/1330/6 -f 536/1331/1 535/1332/1 534/1333/1 529/1334/1 -f 524/1335/2 514/1336/2 528/1337/2 519/1338/2 -f 531/1339/2 534/1340/2 535/1341/2 533/1342/2 -f 517/1307/3 523/1343/3 522/1344/3 525/1345/3 -f 513/1346/1 524/1347/1 519/1348/1 518/1308/1 -f 532/1349/3 531/1350/3 533/1351/3 530/1352/3 -f 515/1353/5 514/1354/5 524/1355/5 513/1356/5 -f 523/1357/2 527/1358/2 521/1359/2 522/1360/2 -f 514/1361/3 515/1362/3 526/1311/3 528/1363/3 -f 540/1364/5 551/1365/5 547/1366/5 541/1367/5 -f 542/1368/5 543/1369/5 552/1370/5 550/1371/5 -f 539/1372/2 537/1373/2 542/1374/2 550/1375/2 -f 551/1376/1 540/1364/1 544/1377/1 545/1378/1 -f 553/1379/2 556/1380/2 554/1381/2 560/1382/2 -f 549/1383/4 546/1384/4 545/1385/4 544/1386/4 -f 540/1387/2 541/1388/2 549/1389/2 544/1390/2 -f 560/1391/1 559/1392/1 558/1393/1 553/1394/1 -f 548/1395/6 538/1396/6 552/1397/6 543/1398/6 -f 555/1399/6 558/1400/6 559/1401/6 557/1402/6 -f 541/1367/3 547/1403/3 546/1404/3 549/1405/3 -f 537/1406/1 548/1407/1 543/1408/1 542/1368/1 -f 556/1409/3 555/1410/3 557/1411/3 554/1412/3 -f 539/1413/4 538/1414/4 548/1415/4 537/1416/4 -f 547/1417/6 551/1418/6 545/1419/6 546/1420/6 -f 538/1421/3 539/1422/3 550/1371/3 552/1423/3 -f 564/1424/2 575/1425/2 571/1426/2 565/1427/2 -f 566/1428/2 567/1429/2 576/1430/2 574/1431/2 -f 563/1432/4 561/1433/4 566/1434/4 574/1435/4 -f 575/1436/1 564/1424/1 568/1437/1 569/1438/1 -f 577/1439/4 580/1440/4 578/1441/4 584/1442/4 -f 573/1443/6 570/1444/6 569/1445/6 568/1446/6 -f 564/1447/4 565/1448/4 573/1449/4 568/1450/4 -f 584/1451/1 583/1452/1 582/1453/1 577/1454/1 -f 572/1455/5 562/1456/5 576/1457/5 567/1458/5 -f 579/1459/5 582/1460/5 583/1461/5 581/1462/5 -f 565/1427/3 571/1463/3 570/1464/3 573/1465/3 -f 561/1466/1 572/1467/1 567/1468/1 566/1428/1 -f 580/1469/3 579/1470/3 581/1471/3 578/1472/3 -f 563/1473/6 562/1474/6 572/1475/6 561/1476/6 -f 571/1477/5 575/1478/5 569/1479/5 570/1480/5 -f 562/1481/3 563/1482/3 574/1431/3 576/1483/3 -f 590/1484/6 586/1485/6 588/1486/6 592/1487/6 -f 585/1488/2 589/1489/2 591/1490/2 587/1491/2 -f 592/1492/5 591/1493/5 589/1494/5 590/1495/5 -f 590/1496/1 589/1497/1 585/1498/1 586/1499/1 -f 586/1485/4 585/1488/4 587/1491/4 588/1486/4 -f 588/1500/3 587/1501/3 591/1502/3 592/1503/3 -f 598/1504/6 600/1505/6 596/1506/6 594/1507/6 -f 593/1508/2 595/1509/2 599/1510/2 597/1511/2 -f 600/1512/4 598/1513/4 597/1514/4 599/1515/4 -f 598/1516/1 594/1517/1 593/1518/1 597/1519/1 -f 594/1507/5 596/1506/5 595/1509/5 593/1508/5 -f 596/1520/3 600/1521/3 599/1522/3 595/1523/3 -f 601/1524/5 602/1525/5 604/1526/5 603/1527/5 -f 603/1528/1 604/1529/1 608/1530/1 607/1531/1 -f 607/1532/4 608/1533/4 606/1534/4 605/1535/4 -f 605/1536/3 606/1537/3 602/1538/3 601/1539/3 -f 603/1540/6 607/1541/6 605/1542/6 601/1543/6 -f 608/1544/2 604/1545/2 602/1546/2 606/1547/2 +f 97/212/11 99/213/11 100/214/11 98/215/11 +f 99/216/12 101/217/12 102/218/12 100/219/12 +f 101/220/13 103/221/13 104/222/13 102/223/13 +f 103/224/5 105/225/5 106/226/5 104/227/5 +f 105/228/14 107/229/14 108/230/14 106/231/14 +f 107/232/15 109/233/15 110/234/15 108/235/15 +f 109/236/16 111/237/16 112/238/16 110/239/16 +f 111/240/2 113/241/2 114/242/2 112/243/2 +f 113/244/17 115/245/17 116/246/17 114/247/17 +f 115/248/18 117/249/18 118/250/18 116/251/18 +f 117/252/19 119/253/19 120/254/19 118/255/19 +f 119/256/4 121/257/4 122/258/4 120/259/4 +f 121/260/20 123/261/20 124/262/20 122/263/20 +f 123/264/21 125/265/21 126/266/21 124/267/21 +f 125/268/22 127/269/22 128/270/22 126/271/22 +f 127/272/6 97/273/6 98/274/6 128/275/6 +f 130/276/17 131/277/17 132/278/17 129/279/17 +f 129/280/18 132/281/18 134/282/18 133/283/18 +f 133/284/19 134/285/19 136/286/19 135/287/19 +f 135/288/4 136/289/4 138/290/4 137/291/4 +f 137/292/20 138/293/20 140/294/20 139/295/20 +f 139/296/21 140/297/21 142/298/21 141/299/21 +f 141/300/22 142/301/22 144/302/22 143/303/22 +f 143/304/6 144/305/6 146/306/6 145/307/6 +f 145/308/11 146/309/11 148/310/11 147/311/11 +f 147/312/12 148/313/12 150/314/12 149/315/12 +f 149/316/13 150/317/13 152/318/13 151/319/13 +f 151/320/5 152/321/5 154/322/5 153/323/5 +f 153/324/14 154/325/14 156/326/14 155/327/14 +f 155/328/15 156/329/15 158/330/15 157/331/15 +f 157/332/16 158/333/16 160/334/16 159/335/16 +f 159/336/2 160/337/2 131/338/2 130/339/2 +f 110/340/3 142/341/3 140/342/3 108/235/3 +f 128/343/3 160/344/3 158/345/3 126/271/3 +f 99/216/1 129/346/1 133/347/1 101/348/1 +f 117/252/1 149/349/1 151/350/1 119/351/1 +f 102/352/3 134/353/3 132/354/3 100/219/3 +f 120/355/3 152/356/3 150/357/3 118/255/3 +f 109/236/1 141/358/1 143/359/1 111/360/1 +f 127/272/1 159/361/1 130/362/1 97/363/1 +f 112/364/3 144/365/3 142/366/3 110/239/3 +f 98/367/3 131/368/3 160/369/3 128/275/3 +f 101/220/1 133/370/1 135/371/1 103/372/1 +f 119/256/1 151/373/1 153/374/1 121/375/1 +f 104/376/3 136/377/3 134/378/3 102/223/3 +f 122/379/3 154/380/3 152/381/3 120/259/3 +f 111/240/1 143/382/1 145/383/1 113/384/1 +f 114/385/3 146/386/3 144/387/3 112/243/3 +f 103/224/1 135/388/1 137/389/1 105/390/1 +f 121/260/1 153/391/1 155/392/1 123/393/1 +f 106/394/3 138/395/3 136/396/3 104/227/3 +f 124/397/3 156/398/3 154/399/3 122/263/3 +f 113/244/1 145/400/1 147/401/1 115/402/1 +f 116/403/3 148/404/3 146/405/3 114/247/3 +f 105/228/1 137/406/1 139/407/1 107/408/1 +f 123/264/1 155/409/1 157/410/1 125/411/1 +f 97/212/1 130/412/1 129/413/1 99/414/1 +f 108/415/3 140/416/3 138/417/3 106/231/3 +f 126/418/3 158/419/3 156/420/3 124/267/3 +f 115/248/1 147/421/1 149/422/1 117/423/1 +f 100/424/3 132/425/3 131/426/3 98/215/3 +f 118/427/3 150/428/3 148/429/3 116/251/3 +f 107/232/1 139/430/1 141/431/1 109/432/1 +f 125/268/1 157/433/1 159/434/1 127/435/1 +f 164/436/6 175/437/6 171/438/6 165/439/6 +f 166/440/6 167/441/6 176/442/6 174/443/6 +f 163/444/5 161/445/5 166/446/5 174/447/5 +f 175/448/1 164/436/1 168/449/1 169/450/1 +f 177/451/5 180/452/5 178/453/5 184/454/5 +f 173/455/2 170/456/2 169/457/2 168/458/2 +f 164/459/5 165/460/5 173/461/5 168/462/5 +f 184/463/1 183/464/1 182/465/1 177/466/1 +f 172/467/4 162/468/4 176/469/4 167/470/4 +f 179/471/4 182/472/4 183/473/4 181/474/4 +f 165/439/3 171/475/3 170/476/3 173/477/3 +f 161/478/1 172/479/1 167/480/1 166/440/1 +f 180/481/3 179/482/3 181/483/3 178/484/3 +f 163/485/2 162/486/2 172/487/2 161/488/2 +f 171/489/4 175/490/4 169/491/4 170/492/4 +f 162/493/3 163/494/3 174/443/3 176/495/3 +f 188/496/11 199/497/11 195/498/11 189/499/11 +f 190/500/11 191/501/11 200/502/11 198/503/11 +f 187/504/14 185/505/14 190/506/14 198/507/14 +f 199/508/1 188/496/1 192/509/1 193/510/1 +f 201/511/14 204/512/14 202/513/14 208/514/14 +f 197/515/17 194/516/17 193/517/17 192/518/17 +f 188/519/14 189/520/14 197/521/14 192/522/14 +f 208/523/1 207/524/1 206/525/1 201/526/1 +f 196/527/20 186/528/20 200/529/20 191/530/20 +f 203/531/20 206/532/20 207/533/20 205/534/20 +f 189/499/3 195/535/3 194/536/3 197/537/3 +f 185/538/1 196/539/1 191/540/1 190/500/1 +f 204/541/3 203/542/3 205/543/3 202/544/3 +f 187/545/17 186/546/17 196/547/17 185/548/17 +f 195/549/20 199/550/20 193/551/20 194/552/20 +f 186/553/3 187/554/3 198/503/3 200/555/3 +f 212/556/17 223/557/17 219/558/17 213/559/17 +f 214/560/17 215/561/17 224/562/17 222/563/17 +f 211/564/20 209/565/20 214/566/20 222/567/20 +f 223/568/1 212/556/1 216/569/1 217/570/1 +f 225/571/20 228/572/20 226/573/20 232/574/20 +f 221/575/11 218/576/11 217/577/11 216/578/11 +f 212/579/20 213/580/20 221/581/20 216/582/20 +f 232/583/1 231/584/1 230/585/1 225/586/1 +f 220/587/14 210/588/14 224/589/14 215/590/14 +f 227/591/14 230/592/14 231/593/14 229/594/14 +f 213/559/3 219/595/3 218/596/3 221/597/3 +f 209/598/1 220/599/1 215/600/1 214/560/1 +f 228/601/3 227/602/3 229/603/3 226/604/3 +f 211/605/11 210/606/11 220/607/11 209/608/11 +f 219/609/14 223/610/14 217/611/14 218/612/14 +f 210/613/3 211/614/3 222/563/3 224/615/3 +f 236/616/14 247/617/14 243/618/14 237/619/14 +f 238/620/14 239/621/14 248/622/14 246/623/14 +f 235/624/17 233/625/17 238/626/17 246/627/17 +f 247/628/1 236/616/1 240/629/1 241/630/1 +f 249/631/17 252/632/17 250/633/17 256/634/17 +f 245/635/20 242/636/20 241/637/20 240/638/20 +f 236/639/17 237/640/17 245/641/17 240/642/17 +f 256/643/1 255/644/1 254/645/1 249/646/1 +f 244/647/11 234/648/11 248/649/11 239/650/11 +f 251/651/11 254/652/11 255/653/11 253/654/11 +f 237/619/3 243/655/3 242/656/3 245/657/3 +f 233/658/1 244/659/1 239/660/1 238/620/1 +f 252/661/3 251/662/3 253/663/3 250/664/3 +f 235/665/20 234/666/20 244/667/20 233/668/20 +f 243/669/11 247/670/11 241/671/11 242/672/11 +f 234/673/3 235/674/3 246/623/3 248/675/3 +f 260/676/20 271/677/20 267/678/20 261/679/20 +f 262/680/20 263/681/20 272/682/20 270/683/20 +f 259/684/11 257/685/11 262/686/11 270/687/11 +f 271/688/1 260/676/1 264/689/1 265/690/1 +f 273/691/11 276/692/11 274/693/11 280/694/11 +f 269/695/14 266/696/14 265/697/14 264/698/14 +f 260/699/11 261/700/11 269/701/11 264/702/11 +f 280/703/1 279/704/1 278/705/1 273/706/1 +f 268/707/17 258/708/17 272/709/17 263/710/17 +f 275/711/17 278/712/17 279/713/17 277/714/17 +f 261/679/3 267/715/3 266/716/3 269/717/3 +f 257/718/1 268/719/1 263/720/1 262/680/1 +f 276/721/3 275/722/3 277/723/3 274/724/3 +f 259/725/14 258/726/14 268/727/14 257/728/14 +f 267/729/17 271/730/17 265/731/17 266/732/17 +f 258/733/3 259/734/3 270/683/3 272/735/3 +f 284/736/19 295/737/19 291/738/19 285/739/19 +f 286/740/19 287/741/19 296/742/19 294/743/19 +f 283/744/22 281/745/22 286/746/22 294/747/22 +f 295/748/1 284/736/1 288/749/1 289/750/1 +f 297/751/22 300/752/22 298/753/22 304/754/22 +f 293/755/13 290/756/13 289/757/13 288/758/13 +f 284/759/22 285/760/22 293/761/22 288/762/22 +f 304/763/1 303/764/1 302/765/1 297/766/1 +f 292/767/16 282/768/16 296/769/16 287/770/16 +f 299/771/16 302/772/16 303/773/16 301/774/16 +f 285/739/3 291/775/3 290/776/3 293/777/3 +f 281/778/1 292/779/1 287/780/1 286/740/1 +f 300/781/3 299/782/3 301/783/3 298/784/3 +f 283/785/13 282/786/13 292/787/13 281/788/13 +f 291/789/16 295/790/16 289/791/16 290/792/16 +f 282/793/3 283/794/3 294/743/3 296/795/3 +f 308/796/13 319/797/13 315/798/13 309/799/13 +f 310/800/13 311/801/13 320/802/13 318/803/13 +f 307/804/16 305/805/16 310/806/16 318/807/16 +f 319/808/1 308/796/1 312/809/1 313/810/1 +f 321/811/16 324/812/16 322/813/16 328/814/16 +f 317/815/19 314/816/19 313/817/19 312/818/19 +f 308/819/16 309/820/16 317/821/16 312/822/16 +f 328/823/1 327/824/1 326/825/1 321/826/1 +f 316/827/22 306/828/22 320/829/22 311/830/22 +f 323/831/22 326/832/22 327/833/22 325/834/22 +f 309/799/3 315/835/3 314/836/3 317/837/3 +f 305/838/1 316/839/1 311/840/1 310/800/1 +f 324/841/3 323/842/3 325/843/3 322/844/3 +f 307/845/19 306/846/19 316/847/19 305/848/19 +f 315/849/22 319/850/22 313/851/22 314/852/22 +f 306/853/3 307/854/3 318/803/3 320/855/3 +f 332/856/16 343/857/16 339/858/16 333/859/16 +f 334/860/16 335/861/16 344/862/16 342/863/16 +f 331/864/19 329/865/19 334/866/19 342/867/19 +f 343/868/1 332/856/1 336/869/1 337/870/1 +f 345/871/19 348/872/19 346/873/19 352/874/19 +f 341/875/22 338/876/22 337/877/22 336/878/22 +f 332/879/19 333/880/19 341/881/19 336/882/19 +f 352/883/1 351/884/1 350/885/1 345/886/1 +f 340/887/13 330/888/13 344/889/13 335/890/13 +f 347/891/13 350/892/13 351/893/13 349/894/13 +f 333/859/3 339/895/3 338/896/3 341/897/3 +f 329/898/1 340/899/1 335/900/1 334/860/1 +f 348/901/3 347/902/3 349/903/3 346/904/3 +f 331/905/22 330/906/22 340/907/22 329/908/22 +f 339/909/13 343/910/13 337/911/13 338/912/13 +f 330/913/3 331/914/3 342/863/3 344/915/3 +f 356/916/22 367/917/22 363/918/22 357/919/22 +f 358/920/22 359/921/22 368/922/22 366/923/22 +f 355/924/13 353/925/13 358/926/13 366/927/13 +f 367/928/1 356/916/1 360/929/1 361/930/1 +f 369/931/13 372/932/13 370/933/13 376/934/13 +f 365/935/16 362/936/16 361/937/16 360/938/16 +f 356/939/13 357/940/13 365/941/13 360/942/13 +f 376/943/1 375/944/1 374/945/1 369/946/1 +f 364/947/19 354/948/19 368/949/19 359/950/19 +f 371/951/19 374/952/19 375/953/19 373/954/19 +f 357/919/3 363/955/3 362/956/3 365/957/3 +f 353/958/1 364/959/1 359/960/1 358/920/1 +f 372/961/3 371/962/3 373/963/3 370/964/3 +f 355/965/16 354/966/16 364/967/16 353/968/16 +f 363/969/19 367/970/19 361/971/19 362/972/19 +f 354/973/3 355/974/3 366/923/3 368/975/3 +f 380/976/21 391/977/21 387/978/21 381/979/21 +f 382/980/21 383/981/21 392/982/21 390/983/21 +f 379/984/12 377/985/12 382/986/12 390/987/12 +f 391/988/1 380/976/1 384/989/1 385/990/1 +f 393/991/12 396/992/12 394/993/12 400/994/12 +f 389/995/15 386/996/15 385/997/15 384/998/15 +f 380/999/12 381/1000/12 389/1001/12 384/1002/12 +f 400/1003/1 399/1004/1 398/1005/1 393/1006/1 +f 388/1007/18 378/1008/18 392/1009/18 383/1010/18 +f 395/1011/18 398/1012/18 399/1013/18 397/1014/18 +f 381/979/3 387/1015/3 386/1016/3 389/1017/3 +f 377/1018/1 388/1019/1 383/1020/1 382/980/1 +f 396/1021/3 395/1022/3 397/1023/3 394/1024/3 +f 379/1025/15 378/1026/15 388/1027/15 377/1028/15 +f 387/1029/18 391/1030/18 385/1031/18 386/1032/18 +f 378/1033/3 379/1034/3 390/983/3 392/1035/3 +f 404/1036/15 415/1037/15 411/1038/15 405/1039/15 +f 406/1040/15 407/1041/15 416/1042/15 414/1043/15 +f 403/1044/18 401/1045/18 406/1046/18 414/1047/18 +f 415/1048/1 404/1036/1 408/1049/1 409/1050/1 +f 417/1051/18 420/1052/18 418/1053/18 424/1054/18 +f 413/1055/21 410/1056/21 409/1057/21 408/1058/21 +f 404/1059/18 405/1060/18 413/1061/18 408/1062/18 +f 424/1063/1 423/1064/1 422/1065/1 417/1066/1 +f 412/1067/12 402/1068/12 416/1069/12 407/1070/12 +f 419/1071/12 422/1072/12 423/1073/12 421/1074/12 +f 405/1039/3 411/1075/3 410/1076/3 413/1077/3 +f 401/1078/1 412/1079/1 407/1080/1 406/1040/1 +f 420/1081/3 419/1082/3 421/1083/3 418/1084/3 +f 403/1085/21 402/1086/21 412/1087/21 401/1088/21 +f 411/1089/12 415/1090/12 409/1091/12 410/1092/12 +f 402/1093/3 403/1094/3 414/1043/3 416/1095/3 +f 428/1096/12 439/1097/12 435/1098/12 429/1099/12 +f 430/1100/12 431/1101/12 440/1102/12 438/1103/12 +f 427/1104/15 425/1105/15 430/1106/15 438/1107/15 +f 439/1108/1 428/1096/1 432/1109/1 433/1110/1 +f 441/1111/15 444/1112/15 442/1113/15 448/1114/15 +f 437/1115/18 434/1116/18 433/1117/18 432/1118/18 +f 428/1119/15 429/1120/15 437/1121/15 432/1122/15 +f 448/1123/1 447/1124/1 446/1125/1 441/1126/1 +f 436/1127/21 426/1128/21 440/1129/21 431/1130/21 +f 443/1131/21 446/1132/21 447/1133/21 445/1134/21 +f 429/1099/3 435/1135/3 434/1136/3 437/1137/3 +f 425/1138/1 436/1139/1 431/1140/1 430/1100/1 +f 444/1141/3 443/1142/3 445/1143/3 442/1144/3 +f 427/1145/18 426/1146/18 436/1147/18 425/1148/18 +f 435/1149/21 439/1150/21 433/1151/21 434/1152/21 +f 426/1153/3 427/1154/3 438/1103/3 440/1155/3 +f 452/1156/18 463/1157/18 459/1158/18 453/1159/18 +f 454/1160/18 455/1161/18 464/1162/18 462/1163/18 +f 451/1164/21 449/1165/21 454/1166/21 462/1167/21 +f 463/1168/1 452/1156/1 456/1169/1 457/1170/1 +f 465/1171/21 468/1172/21 466/1173/21 472/1174/21 +f 461/1175/12 458/1176/12 457/1177/12 456/1178/12 +f 452/1179/21 453/1180/21 461/1181/21 456/1182/21 +f 472/1183/1 471/1184/1 470/1185/1 465/1186/1 +f 460/1187/15 450/1188/15 464/1189/15 455/1190/15 +f 467/1191/15 470/1192/15 471/1193/15 469/1194/15 +f 453/1159/3 459/1195/3 458/1196/3 461/1197/3 +f 449/1198/1 460/1199/1 455/1200/1 454/1160/1 +f 468/1201/3 467/1202/3 469/1203/3 466/1204/3 +f 451/1205/12 450/1206/12 460/1207/12 449/1208/12 +f 459/1209/15 463/1210/15 457/1211/15 458/1212/15 +f 450/1213/3 451/1214/3 462/1163/3 464/1215/3 +f 476/1216/4 487/1217/4 483/1218/4 477/1219/4 +f 478/1220/4 479/1221/4 488/1222/4 486/1223/4 +f 475/1224/6 473/1225/6 478/1226/6 486/1227/6 +f 487/1228/1 476/1216/1 480/1229/1 481/1230/1 +f 489/1231/6 492/1232/6 490/1233/6 496/1234/6 +f 485/1235/5 482/1236/5 481/1237/5 480/1238/5 +f 476/1239/6 477/1240/6 485/1241/6 480/1242/6 +f 496/1243/1 495/1244/1 494/1245/1 489/1246/1 +f 484/1247/2 474/1248/2 488/1249/2 479/1250/2 +f 491/1251/2 494/1252/2 495/1253/2 493/1254/2 +f 477/1219/3 483/1255/3 482/1256/3 485/1257/3 +f 473/1258/1 484/1259/1 479/1260/1 478/1220/1 +f 492/1261/3 491/1262/3 493/1263/3 490/1264/3 +f 475/1265/5 474/1266/5 484/1267/5 473/1268/5 +f 483/1269/2 487/1270/2 481/1271/2 482/1272/2 +f 474/1273/3 475/1274/3 486/1223/3 488/1275/3 +f 500/1276/5 511/1277/5 507/1278/5 501/1279/5 +f 502/1280/5 503/1281/5 512/1282/5 510/1283/5 +f 499/1284/2 497/1285/2 502/1286/2 510/1287/2 +f 511/1288/1 500/1276/1 504/1289/1 505/1290/1 +f 513/1291/2 516/1292/2 514/1293/2 520/1294/2 +f 509/1295/4 506/1296/4 505/1297/4 504/1298/4 +f 500/1299/2 501/1300/2 509/1301/2 504/1302/2 +f 520/1303/1 519/1304/1 518/1305/1 513/1306/1 +f 508/1307/6 498/1308/6 512/1309/6 503/1310/6 +f 515/1311/6 518/1312/6 519/1313/6 517/1314/6 +f 501/1279/3 507/1315/3 506/1316/3 509/1317/3 +f 497/1318/1 508/1319/1 503/1320/1 502/1280/1 +f 516/1321/3 515/1322/3 517/1323/3 514/1324/3 +f 499/1325/4 498/1326/4 508/1327/4 497/1328/4 +f 507/1329/6 511/1330/6 505/1331/6 506/1332/6 +f 498/1333/3 499/1334/3 510/1283/3 512/1335/3 +f 524/1336/2 535/1337/2 531/1338/2 525/1339/2 +f 526/1340/2 527/1341/2 536/1342/2 534/1343/2 +f 523/1344/4 521/1345/4 526/1346/4 534/1347/4 +f 535/1348/1 524/1336/1 528/1349/1 529/1350/1 +f 537/1351/4 540/1352/4 538/1353/4 544/1354/4 +f 533/1355/6 530/1356/6 529/1357/6 528/1358/6 +f 524/1359/4 525/1360/4 533/1361/4 528/1362/4 +f 544/1363/1 543/1364/1 542/1365/1 537/1366/1 +f 532/1367/5 522/1368/5 536/1369/5 527/1370/5 +f 539/1371/5 542/1372/5 543/1373/5 541/1374/5 +f 525/1339/3 531/1375/3 530/1376/3 533/1377/3 +f 521/1378/1 532/1379/1 527/1380/1 526/1340/1 +f 540/1381/3 539/1382/3 541/1383/3 538/1384/3 +f 523/1385/6 522/1386/6 532/1387/6 521/1388/6 +f 531/1389/5 535/1390/5 529/1391/5 530/1392/5 +f 522/1393/3 523/1394/3 534/1343/3 536/1395/3 +f 550/1396/6 546/1397/6 548/1398/6 552/1399/6 +f 545/1400/2 549/1401/2 551/1402/2 547/1403/2 +f 552/1404/5 551/1405/5 549/1406/5 550/1407/5 +f 550/1408/1 549/1409/1 545/1410/1 546/1411/1 +f 546/1397/4 545/1400/4 547/1403/4 548/1398/4 +f 548/1412/3 547/1413/3 551/1414/3 552/1415/3 +f 558/1416/6 560/1417/6 556/1418/6 554/1419/6 +f 553/1420/2 555/1421/2 559/1422/2 557/1423/2 +f 560/1424/4 558/1425/4 557/1426/4 559/1427/4 +f 558/1428/1 554/1429/1 553/1430/1 557/1431/1 +f 554/1419/5 556/1418/5 555/1421/5 553/1420/5 +f 556/1432/3 560/1433/3 559/1434/3 555/1435/3 +f 561/1436/5 562/1437/5 564/1438/5 563/1439/5 +f 563/1440/1 564/1441/1 568/1442/1 567/1443/1 +f 567/1444/4 568/1445/4 566/1446/4 565/1447/4 +f 565/1448/3 566/1449/3 562/1450/3 561/1451/3 +f 563/1452/6 567/1453/6 565/1454/6 561/1455/6 +f 568/1456/2 564/1457/2 562/1458/2 566/1459/2 +f 577/1460/1 571/1461/1 575/1462/1 578/1463/1 +f 578/1464/23 575/1465/23 573/1466/23 579/1467/23 +f 579/1468/3 573/1469/3 569/1470/3 576/1471/3 +f 570/1472/1 574/1473/1 584/1474/1 583/1475/1 +f 575/1465/2 571/1476/2 569/1477/2 573/1466/2 +f 572/1478/24 579/1468/24 576/1471/24 580/1479/24 +f 574/1480/4 578/1464/4 579/1467/4 572/1481/4 +f 570/1472/25 577/1460/25 578/1463/25 574/1473/25 +f 574/1480/4 572/1481/4 582/1482/4 584/1483/4 +f 572/1478/3 580/1479/3 581/1484/3 582/1485/3 +f 587/1486/4 586/1487/4 584/1483/4 582/1482/4 +f 585/1488/5 588/1489/5 581/1490/5 583/1491/5 +f 581/1484/3 588/1492/3 587/1493/3 582/1485/3 +f 584/1474/1 586/1494/1 585/1495/1 583/1475/1 +f 597/1496/1 598/1497/1 595/1498/1 591/1499/1 +f 598/1500/26 599/1501/26 593/1502/26 595/1503/26 +f 599/1504/3 596/1505/3 589/1506/3 593/1507/3 +f 590/1508/1 603/1509/1 604/1510/1 594/1511/1 +f 595/1503/2 593/1502/2 589/1512/2 591/1513/2 +f 592/1514/24 600/1515/24 596/1505/24 599/1504/24 +f 594/1516/5 592/1517/5 599/1501/5 598/1500/5 +f 590/1508/25 594/1511/25 598/1497/25 597/1496/25 +f 594/1516/5 604/1518/5 602/1519/5 592/1517/5 +f 592/1514/3 602/1520/3 601/1521/3 600/1515/3 +f 607/1522/5 602/1519/5 604/1518/5 606/1523/5 +f 605/1524/4 603/1525/4 601/1526/4 608/1527/4 +f 601/1521/3 602/1520/3 607/1528/3 608/1529/3 +f 604/1510/1 603/1509/1 605/1530/1 606/1531/1 diff --git a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj index ca6414d..3400f46 100644 --- a/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj +++ b/src/main/resources/assets/overengineered/models/multiblock/obj/universal_motor_mirrored.obj @@ -2,614 +2,614 @@ # www.blender.org mtllib universal_motor.mtl o Stator_mirrored -v 2.000000 0.500000 -0.000000 -v 2.000000 0.000000 -0.000000 -v -1.000000 0.500000 0.000000 -v -1.000000 0.000000 0.000000 -v -1.000000 0.500000 -1.000000 -v 2.000000 0.500000 -1.000000 -v 2.000000 0.000000 -1.000000 -v -1.000000 0.000000 -1.000000 -v 2.000000 0.500000 1.000000 -v 2.000000 0.000000 1.000000 -v -1.000000 0.500000 1.000000 +v 2.000000 -0.500000 0.000000 +v 2.000000 -1.000000 0.000000 +v -1.000000 -0.500000 -0.000000 +v -1.000000 -1.000000 -0.000000 +v -1.000000 -0.500000 -1.000000 +v 2.000000 -0.500000 -1.000000 +v 2.000000 -1.000000 -1.000000 +v -1.000000 -1.000000 -1.000000 +v 2.000000 -0.500000 1.000000 +v 2.000000 -1.000000 1.000000 +v -1.000000 -0.500000 1.000000 +v -1.000000 -1.000000 1.000000 +v -1.000000 -0.500000 2.000000 +v 2.000000 -0.500000 2.000000 +v 2.000000 -1.000000 2.000000 +v -1.000000 -1.000000 2.000000 +v 2.000000 -0.500000 1.000000 +v 2.000000 -1.000000 1.000000 +v 1.500000 -0.500000 1.000000 +v 1.500000 -1.000000 1.000000 +v 1.500000 -0.500000 0.000000 +v 2.000000 -0.500000 0.000000 +v 2.000000 -1.000000 0.000000 +v 1.500000 -1.000000 0.000000 +v -0.500000 -0.500000 1.000000 +v -0.500000 -1.000000 1.000000 +v -1.000000 -0.500000 1.000000 +v -1.000000 -1.000000 1.000000 +v -1.000000 -0.500000 -0.000000 +v -0.500000 -0.500000 -0.000000 +v -0.500000 -1.000000 -0.000000 +v -1.000000 -1.000000 -0.000000 +v -1.000000 -0.500000 1.000000 v -1.000000 0.000000 1.000000 -v -1.000000 0.500000 2.000000 -v 2.000000 0.500000 2.000000 -v 2.000000 0.000000 2.000000 +v -1.000000 -0.500000 2.000000 v -1.000000 0.000000 2.000000 -v 2.000000 0.500000 1.000000 -v 2.000000 0.000000 1.000000 -v 1.500000 0.500000 1.000000 -v 1.500000 0.000000 1.000000 -v 1.500000 0.500000 -0.000000 -v 2.000000 0.500000 -0.000000 -v 2.000000 0.000000 -0.000000 -v 1.500000 0.000000 -0.000000 -v -0.500000 0.500000 1.000000 -v -0.500000 0.000000 1.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 0.000000 1.000000 -v -1.000000 0.500000 0.000000 -v -0.500000 0.500000 0.000000 -v -0.500000 0.000000 0.000000 -v -1.000000 0.000000 0.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 1.000000 1.000000 -v -1.000000 0.500000 2.000000 -v -1.000000 1.000000 2.000000 -v 0.000000 0.500000 1.000000 -v 0.000000 1.000000 1.000000 -v 0.000000 0.500000 2.000000 -v 0.000000 1.000000 2.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 2.000000 1.000000 -v 1.000000 0.500000 2.000000 -v 1.000000 2.000000 2.000000 -v 2.000000 0.500000 1.000000 -v 2.000000 2.000000 1.000000 -v 2.000000 0.500000 2.000000 -v 2.000000 2.000000 2.000000 -v 0.250000 1.250000 -0.625000 -v 0.250000 1.250000 -0.375000 -v 0.750000 1.250000 -0.625000 -v 0.750000 1.250000 -0.375000 -v 0.250000 1.750000 -0.625000 -v 0.250000 1.750000 -0.375000 -v 0.750000 1.750000 -0.375000 -v 0.750000 1.750000 -0.625000 -v 0.125000 0.500000 -0.625000 -v 0.250000 1.250000 -0.625000 -v 0.125000 0.500000 -0.375000 -v 0.250000 1.250000 -0.375000 -v 0.250000 0.500000 -0.625000 -v 0.375000 1.250000 -0.625000 -v 0.250000 0.500000 -0.375000 -v 0.375000 1.250000 -0.375000 -v 0.875000 0.500000 -0.375000 -v 0.750000 1.250000 -0.375000 -v 0.875000 0.500000 -0.625000 -v 0.750000 1.250000 -0.625000 -v 0.750000 0.500000 -0.375000 -v 0.625000 1.250000 -0.375000 -v 0.750000 0.500000 -0.625000 -v 0.625000 1.250000 -0.625000 -v 0.250000 1.250000 1.625000 -v 0.250000 1.250000 1.375000 -v 0.750000 1.250000 1.625000 -v 0.750000 1.250000 1.375000 -v 0.250000 1.750000 1.625000 -v 0.250000 1.750000 1.375000 -v 0.750000 1.750000 1.375000 -v 0.750000 1.750000 1.625000 -v 0.125000 0.500000 1.625000 -v 0.250000 1.250000 1.625000 -v 0.125000 0.500000 1.375000 -v 0.250000 1.250000 1.375000 -v 0.250000 0.500000 1.625000 -v 0.375000 1.250000 1.625000 -v 0.250000 0.500000 1.375000 -v 0.375000 1.250000 1.375000 -v 0.875000 0.500000 1.375000 -v 0.750000 1.250000 1.375000 -v 0.875000 0.500000 1.625000 -v 0.750000 1.250000 1.625000 -v 0.750000 0.500000 1.375000 -v 0.625000 1.250000 1.375000 -v 0.750000 0.500000 1.625000 -v 0.625000 1.250000 1.625000 -v 1.875000 1.625000 0.375000 -v 1.875000 1.226562 0.750000 -v 1.875000 1.625000 0.625000 -v 2.000000 1.226562 0.250000 -v 1.937500 1.625000 0.375000 -v 2.000000 1.226562 0.750000 -v 1.937500 1.625000 0.625000 -v 1.875000 1.375000 0.375000 -v 1.875000 1.375000 0.625000 -v 2.000000 1.375000 0.625000 -v 2.000000 1.375000 0.375000 -v 1.875000 1.226562 0.250000 -v 1.665942 0.720558 0.250000 -v 2.000000 0.720558 0.250000 -v 1.665942 0.720558 0.750000 -v 2.000000 0.720558 0.750000 -v 1.665942 0.498832 0.750000 -v 2.000000 0.498832 0.750000 -v 2.000000 0.498832 0.250000 -v 1.665942 0.498832 0.250000 -v -0.875000 1.625000 0.375000 -v -0.875000 1.226562 0.750000 -v -0.875000 1.625000 0.625000 -v -1.000000 1.226562 0.250000 -v -0.937500 1.625000 0.375000 -v -1.000000 1.226562 0.750000 -v -0.937500 1.625000 0.625000 -v -0.875000 1.375000 0.375000 -v -0.875000 1.375000 0.625000 -v -1.000000 1.375000 0.625000 -v -1.000000 1.375000 0.375000 -v -0.875000 1.226562 0.250000 -v -0.665942 0.720558 0.250000 -v -1.000000 0.720558 0.250000 -v -0.665942 0.720558 0.750000 -v -1.000000 0.720558 0.750000 -v -0.665942 0.498832 0.750000 -v -1.000000 0.498832 0.750000 -v -1.000000 0.498832 0.250000 -v -0.665942 0.498832 0.250000 -v 0.761080 2.812536 0.748923 -v 0.761080 2.812536 0.251077 -v 1.243492 2.612714 0.748923 -v 1.243492 2.612714 0.251077 -v 1.612714 2.243492 0.748923 -v 1.612714 2.243492 0.251077 -v 1.812536 1.761080 0.748923 -v 1.812536 1.761080 0.251077 -v 1.812536 1.238920 0.748923 -v 1.812536 1.238920 0.251077 -v 1.612714 0.756508 0.748923 -v 1.612714 0.756508 0.251077 -v 1.243492 0.387286 0.748923 -v 1.243492 0.387286 0.251077 -v 0.761080 0.187464 0.748923 -v 0.761080 0.187464 0.251077 -v 0.238921 0.187464 0.748923 -v 0.238921 0.187464 0.251077 -v -0.243492 0.387286 0.748923 -v -0.243492 0.387286 0.251077 -v -0.612714 0.756508 0.748923 -v -0.612714 0.756508 0.251077 -v -0.812536 1.238920 0.748923 -v -0.812536 1.238920 0.251077 -v -0.812536 1.761080 0.748923 -v -0.812536 1.761080 0.251077 -v -0.612714 2.243492 0.748923 -v -0.612714 2.243492 0.251077 -v -0.243491 2.612714 0.748923 -v -0.243491 2.612714 0.251077 -v 0.238921 2.812536 0.748923 -v 0.238921 2.812536 0.251077 -v 1.279065 2.665954 0.748923 -v 0.773571 2.875336 0.748923 -v 0.773571 2.875336 0.251077 -v 1.279065 2.665954 0.251077 -v 1.665954 2.279065 0.748923 -v 1.665954 2.279065 0.251077 -v 1.875336 1.773571 0.748923 -v 1.875336 1.773571 0.251077 -v 1.875336 1.226429 0.748923 -v 1.875336 1.226429 0.251077 -v 1.665954 0.720935 0.748923 -v 1.665954 0.720934 0.251077 -v 1.279065 0.334046 0.748923 -v 1.279065 0.334046 0.251077 -v 0.773571 0.124664 0.748923 -v 0.773571 0.124664 0.251077 -v 0.226429 0.124664 0.748923 -v 0.226429 0.124664 0.251077 -v -0.279065 0.334046 0.748923 -v -0.279065 0.334046 0.251077 -v -0.665954 0.720934 0.748923 -v -0.665954 0.720934 0.251077 -v -0.875336 1.226429 0.748923 -v -0.875336 1.226429 0.251077 -v -0.875336 1.773571 0.748923 -v -0.875336 1.773571 0.251077 -v -0.665954 2.279066 0.748923 -v -0.665954 2.279066 0.251077 -v -0.279065 2.665954 0.748923 -v -0.279065 2.665954 0.251077 -v 0.226429 2.875336 0.748923 -v 0.226429 2.875336 0.251077 -v 0.312500 0.250000 0.687500 -v 0.687500 0.250000 0.312500 -v 0.312500 0.250000 0.312500 -v 0.312500 0.500000 0.687500 -v 0.312500 0.500000 0.312500 -v 0.312500 0.187500 0.687500 -v 0.687500 0.187500 0.687500 -v 0.312500 0.562500 0.687500 -v 0.687500 0.562500 0.687500 -v 0.687500 0.562500 0.312500 -v 0.687500 0.500000 0.312500 -v 0.687500 0.250000 0.687500 -v 0.312500 0.562500 0.312500 -v 0.312500 0.187500 0.312500 -v 0.687500 0.500000 0.687500 -v 0.687500 0.187500 0.312500 -v 0.375000 0.250000 0.625000 -v 0.375000 0.500000 0.375000 -v 0.625000 0.250000 0.375000 -v 0.375000 0.250000 0.375000 -v 0.625000 0.500000 0.375000 -v 0.625000 0.250000 0.625000 -v 0.625000 0.500000 0.625000 -v 0.375000 0.500000 0.625000 -v -0.151582 0.416903 0.687500 -v 0.194873 0.273397 0.312500 -v -0.151582 0.416904 0.312500 -v -0.055911 0.647874 0.687500 -v -0.055911 0.647874 0.312500 -v -0.175499 0.359161 0.687500 -v 0.170955 0.215655 0.687500 -v -0.031993 0.705616 0.687500 -v 0.314462 0.562110 0.687500 -v 0.314462 0.562110 0.312500 -v 0.290544 0.504367 0.312500 -v 0.194873 0.273397 0.687500 -v -0.031993 0.705616 0.312500 -v -0.175499 0.359161 0.312500 -v 0.290544 0.504367 0.687500 -v 0.170955 0.215655 0.312500 -v -0.093839 0.392986 0.625000 -v 0.001832 0.623956 0.375000 -v 0.137131 0.297315 0.375000 -v -0.093839 0.392986 0.375000 -v 0.232801 0.528285 0.375000 -v 0.137131 0.297315 0.625000 -v 0.232801 0.528285 0.625000 -v 0.001832 0.623956 0.625000 -v 1.151582 2.583096 0.687499 -v 0.805127 2.726602 0.312499 -v 1.151582 2.583096 0.312499 -v 1.055911 2.352126 0.687500 -v 1.055911 2.352126 0.312500 -v 1.175500 2.640838 0.687499 -v 0.829045 2.784345 0.687499 -v 1.031993 2.294384 0.687500 -v 0.685539 2.437890 0.687500 -v 0.685539 2.437890 0.312500 -v 0.709456 2.495632 0.312500 -v 0.805127 2.726602 0.687499 -v 1.031993 2.294384 0.312500 -v 1.175500 2.640838 0.312499 -v 0.709456 2.495632 0.687500 -v 0.829045 2.784345 0.312499 -v 1.093840 2.607014 0.624999 -v 0.998169 2.376044 0.375000 -v 0.862870 2.702685 0.374999 -v 1.093840 2.607014 0.374999 -v 0.767199 2.471715 0.375000 -v 0.862870 2.702685 0.624999 -v 0.767199 2.471715 0.625000 -v 0.998169 2.376044 0.625000 -v -0.583097 2.151581 0.687500 -v -0.726603 1.805126 0.312500 -v -0.583097 2.151581 0.312500 -v -0.352127 2.055910 0.687500 -v -0.352127 2.055910 0.312500 -v -0.640839 2.175498 0.687500 -v -0.784346 1.829043 0.687500 -v -0.294385 2.031992 0.687500 -v -0.437891 1.685537 0.687500 -v -0.437890 1.685537 0.312500 -v -0.495633 1.709455 0.312500 -v -0.726603 1.805126 0.687500 -v -0.294384 2.031992 0.312500 -v -0.640839 2.175498 0.312500 -v -0.495633 1.709455 0.687500 -v -0.784345 1.829043 0.312500 -v -0.607014 2.093838 0.625000 -v -0.376045 1.998168 0.375000 -v -0.702685 1.862868 0.375000 -v -0.607014 2.093838 0.375000 -v -0.471715 1.767197 0.375000 -v -0.702685 1.862868 0.625000 -v -0.471715 1.767198 0.625000 -v -0.376045 1.998168 0.625000 -v 1.583096 0.848418 0.687500 -v 1.726603 1.194873 0.312500 -v 1.583096 0.848418 0.312500 -v 1.352126 0.944089 0.687500 -v 1.352126 0.944089 0.312500 -v 1.640839 0.824500 0.687500 -v 1.784345 1.170955 0.687500 -v 1.294384 0.968007 0.687500 -v 1.437890 1.314461 0.687500 -v 1.437890 1.314461 0.312500 -v 1.495633 1.290544 0.312500 -v 1.726603 1.194873 0.687500 -v 1.294384 0.968007 0.312500 -v 1.640839 0.824500 0.312500 -v 1.495633 1.290544 0.687500 -v 1.784345 1.170955 0.312500 -v 1.607014 0.906160 0.625000 -v 1.376044 1.001831 0.375000 -v 1.702685 1.137130 0.375000 -v 1.607014 0.906161 0.375000 -v 1.471715 1.232801 0.375000 -v 1.702685 1.137130 0.625000 -v 1.471715 1.232801 0.625000 -v 1.376044 1.001832 0.625000 -v 1.726603 1.805126 0.687500 -v 1.583096 2.151581 0.312500 -v 1.726602 1.805126 0.312500 -v 1.495633 1.709456 0.687500 -v 1.495633 1.709456 0.312500 -v 1.784345 1.829044 0.687500 -v 1.640839 2.175499 0.687500 -v 1.437890 1.685538 0.687500 -v 1.294384 2.031993 0.687500 -v 1.294384 2.031993 0.312500 -v 1.352126 2.055911 0.312500 -v 1.583096 2.151581 0.687500 -v 1.437890 1.685538 0.312500 -v 1.784345 1.829044 0.312500 -v 1.352126 2.055911 0.687500 -v 1.640839 2.175499 0.312500 -v 1.702685 1.862869 0.625000 -v 1.471715 1.767198 0.375000 -v 1.607014 2.093839 0.375000 -v 1.702685 1.862869 0.375000 -v 1.376044 1.998168 0.375000 -v 1.607014 2.093839 0.625000 -v 1.376044 1.998168 0.625000 -v 1.471715 1.767198 0.625000 -v -0.726602 1.194872 0.687500 -v -0.583095 0.848417 0.312500 -v -0.726602 1.194872 0.312500 -v -0.495632 1.290543 0.687500 -v -0.495632 1.290543 0.312500 -v -0.784345 1.170954 0.687500 -v -0.640838 0.824499 0.687500 -v -0.437890 1.314461 0.687500 -v -0.294383 0.968006 0.687500 -v -0.294383 0.968006 0.312500 -v -0.352126 0.944088 0.312500 -v -0.583096 0.848417 0.687500 -v -0.437890 1.314461 0.312500 -v -0.784345 1.170954 0.312500 -v -0.352126 0.944088 0.687500 -v -0.640838 0.824499 0.312500 -v -0.702685 1.137129 0.625000 -v -0.471715 1.232800 0.375000 -v -0.607013 0.906160 0.375000 -v -0.702684 1.137129 0.375000 -v -0.376044 1.001831 0.375000 -v -0.607013 0.906159 0.625000 -v -0.376044 1.001831 0.625000 -v -0.471715 1.232800 0.625000 -v 0.194873 2.726603 0.687500 -v -0.151582 2.583096 0.312500 -v 0.194873 2.726603 0.312500 -v 0.290544 2.495633 0.687500 -v 0.290544 2.495632 0.312500 -v 0.170955 2.784345 0.687500 -v -0.175500 2.640839 0.687500 -v 0.314462 2.437890 0.687500 -v -0.031993 2.294384 0.687500 -v -0.031993 2.294384 0.312500 -v -0.055911 2.352126 0.312500 -v -0.151582 2.583096 0.687500 -v 0.314462 2.437890 0.312500 -v 0.170955 2.784345 0.312499 -v -0.055911 2.352126 0.687500 -v -0.175500 2.640839 0.312500 -v 0.137131 2.702685 0.625000 -v 0.232801 2.471715 0.375000 -v -0.093839 2.607014 0.375000 -v 0.137131 2.702685 0.375000 -v 0.001832 2.376044 0.375000 -v -0.093839 2.607014 0.625000 -v 0.001832 2.376044 0.625000 -v 0.232801 2.471715 0.625000 -v 0.805127 0.273397 0.687500 -v 1.151582 0.416904 0.312500 -v 0.805127 0.273397 0.312500 -v 0.709456 0.504367 0.687500 -v 0.709456 0.504367 0.312500 -v 0.829044 0.215655 0.687500 -v 1.175499 0.359161 0.687500 -v 0.685538 0.562110 0.687500 -v 1.031993 0.705616 0.687500 -v 1.031993 0.705616 0.312500 -v 1.055911 0.647873 0.312500 -v 1.151582 0.416904 0.687500 -v 0.685538 0.562110 0.312500 -v 0.829044 0.215655 0.312500 -v 1.055911 0.647874 0.687500 -v 1.175499 0.359161 0.312500 -v 0.862869 0.297315 0.625000 -v 0.767198 0.528285 0.375000 -v 1.093839 0.392986 0.375000 -v 0.862869 0.297315 0.375000 -v 0.998168 0.623956 0.375000 -v 1.093839 0.392986 0.625000 -v 0.998168 0.623956 0.625000 -v 0.767198 0.528285 0.625000 -v 1.251301 0.483534 0.687500 -v 1.516466 0.748699 0.312500 -v 1.251301 0.483534 0.312500 -v 1.074524 0.660311 0.687500 -v 1.074524 0.660311 0.312500 -v 1.295495 0.439340 0.687500 -v 1.560660 0.704505 0.687500 -v 1.030330 0.704505 0.687500 -v 1.295495 0.969670 0.687500 -v 1.295495 0.969670 0.312500 -v 1.339689 0.925476 0.312500 -v 1.516466 0.748699 0.687500 -v 1.030330 0.704505 0.312500 -v 1.295495 0.439340 0.312500 -v 1.339689 0.925476 0.687500 -v 1.560660 0.704505 0.312500 -v 1.295495 0.527728 0.625000 -v 1.118718 0.704505 0.375000 -v 1.472272 0.704505 0.375000 -v 1.295495 0.527728 0.375000 -v 1.295495 0.881281 0.375000 -v 1.472272 0.704505 0.625000 -v 1.295495 0.881281 0.625000 -v 1.118718 0.704505 0.625000 -v -0.251301 2.516466 0.687500 -v -0.516466 2.251301 0.312500 -v -0.251301 2.516466 0.312500 -v -0.074524 2.339689 0.687500 -v -0.074524 2.339689 0.312500 -v -0.295495 2.560660 0.687500 -v -0.560660 2.295495 0.687500 -v -0.030330 2.295495 0.687500 -v -0.295495 2.030330 0.687500 -v -0.295495 2.030330 0.312500 -v -0.339689 2.074524 0.312500 -v -0.516466 2.251301 0.687500 -v -0.030330 2.295495 0.312500 -v -0.295495 2.560660 0.312500 -v -0.339689 2.074524 0.687500 -v -0.560660 2.295495 0.312500 -v -0.295495 2.472272 0.625000 -v -0.118718 2.295495 0.375000 -v -0.472272 2.295495 0.375000 -v -0.295495 2.472272 0.375000 -v -0.295495 2.118718 0.375000 -v -0.472272 2.295495 0.625000 -v -0.295495 2.118718 0.625000 -v -0.118719 2.295495 0.625000 -v -0.516465 0.748698 0.687500 -v -0.251300 0.483533 0.312500 -v -0.516465 0.748698 0.312500 -v -0.339689 0.925475 0.687500 -v -0.339689 0.925475 0.312500 -v -0.560660 0.704504 0.687500 -v -0.295494 0.439339 0.687500 -v -0.295495 0.969669 0.687500 -v -0.030330 0.704504 0.687500 -v -0.030330 0.704504 0.312500 -v -0.074524 0.660310 0.312500 -v -0.251300 0.483533 0.687500 -v -0.295495 0.969669 0.312500 -v -0.560660 0.704504 0.312500 -v -0.074524 0.660310 0.687500 -v -0.295494 0.439339 0.312500 -v -0.472271 0.704504 0.625000 -v -0.295495 0.881281 0.375000 -v -0.295494 0.527727 0.375000 -v -0.472271 0.704504 0.375000 -v -0.118718 0.704504 0.375000 -v -0.295494 0.527727 0.625000 -v -0.118718 0.704504 0.625000 -v -0.295495 0.881281 0.625000 -v 1.516466 2.251301 0.687500 -v 1.251301 2.516466 0.312500 -v 1.516466 2.251300 0.312500 -v 1.339689 2.074524 0.687500 -v 1.339689 2.074524 0.312500 -v 1.560660 2.295495 0.687500 -v 1.295495 2.560660 0.687500 -v 1.295495 2.030330 0.687500 -v 1.030330 2.295495 0.687500 -v 1.030330 2.295495 0.312500 -v 1.074524 2.339689 0.312500 -v 1.251301 2.516466 0.687500 -v 1.295495 2.030330 0.312500 -v 1.560660 2.295495 0.312500 -v 1.074524 2.339689 0.687500 -v 1.295495 2.560660 0.312500 -v 1.472272 2.295495 0.625000 -v 1.295495 2.118718 0.375000 -v 1.295495 2.472271 0.375000 -v 1.472272 2.295495 0.375000 -v 1.118719 2.295495 0.375000 -v 1.295495 2.472271 0.625000 -v 1.118719 2.295495 0.625000 -v 1.295495 2.118718 0.625000 -v 1.750000 1.312500 0.687500 -v 1.750000 1.687500 0.312500 -v 1.750000 1.312500 0.312500 -v 1.500000 1.312500 0.687500 -v 1.500000 1.312500 0.312500 -v 1.812500 1.312500 0.687500 -v 1.812500 1.687500 0.687500 -v 1.437500 1.312500 0.687500 -v 1.437500 1.687500 0.687500 -v 1.437500 1.687500 0.312500 -v 1.500000 1.687500 0.312500 -v 1.750000 1.687500 0.687500 -v 1.437500 1.312500 0.312500 -v 1.812500 1.312500 0.312500 -v 1.500000 1.687500 0.687500 -v 1.812500 1.687500 0.312500 -v 1.750000 1.375000 0.625000 -v 1.500000 1.375000 0.375000 -v 1.750000 1.625000 0.375000 -v 1.750000 1.375000 0.375000 -v 1.500000 1.625000 0.375000 -v 1.750000 1.625000 0.625000 -v 1.500000 1.625000 0.625000 -v 1.500000 1.375000 0.625000 -v -0.750000 1.687499 0.687500 -v -0.750000 1.312499 0.312500 -v -0.750000 1.687499 0.312500 -v -0.500000 1.687499 0.687500 -v -0.500000 1.687499 0.312500 -v -0.812500 1.687499 0.687500 -v -0.812500 1.312499 0.687500 -v -0.437500 1.687499 0.687500 -v -0.437500 1.312499 0.687500 -v -0.437500 1.312500 0.312500 -v -0.500000 1.312499 0.312500 -v -0.750000 1.312499 0.687500 -v -0.437500 1.687499 0.312500 -v -0.812500 1.687499 0.312500 -v -0.500000 1.312499 0.687500 -v -0.812500 1.312499 0.312500 -v -0.750000 1.624999 0.625000 -v -0.500000 1.624999 0.375000 -v -0.750000 1.374999 0.375000 -v -0.750000 1.624999 0.375000 -v -0.500000 1.374999 0.375000 -v -0.750000 1.374999 0.625000 -v -0.500000 1.375000 0.625000 -v -0.500000 1.624999 0.625000 -v 0.687500 2.750000 0.687499 -v 0.312500 2.750000 0.312499 -v 0.687500 2.750000 0.312499 -v 0.687500 2.500000 0.687500 -v 0.687500 2.500000 0.312500 -v 0.687500 2.812500 0.687499 -v 0.312500 2.812500 0.687499 -v 0.687500 2.437500 0.687500 -v 0.312500 2.437500 0.687500 -v 0.312500 2.437500 0.312500 -v 0.312500 2.500000 0.312500 -v 0.312500 2.750000 0.687500 -v 0.687500 2.437500 0.312500 -v 0.687500 2.812500 0.312499 -v 0.312500 2.500000 0.687500 -v 0.312500 2.812500 0.312499 -v 0.625000 2.750000 0.624999 -v 0.625000 2.500000 0.375000 -v 0.375000 2.750000 0.375000 -v 0.625000 2.750000 0.374999 -v 0.375000 2.500000 0.375000 -v 0.375000 2.750000 0.625000 -v 0.375000 2.500000 0.625000 -v 0.625000 2.500000 0.625000 -v 0.250000 1.625000 0.000000 -v 0.250000 1.375000 0.000000 -v 0.250000 1.625000 -0.625000 -v 0.250000 1.375000 -0.625000 -v -0.000000 1.625000 0.000000 -v -0.000000 1.375000 0.000000 -v -0.000000 1.625000 -0.625000 -v -0.000000 1.375000 -0.625000 -v 0.750000 1.625000 0.000000 -v 0.750000 1.375000 0.000000 -v 0.750000 1.625000 -0.625000 -v 0.750000 1.375000 -0.625000 -v 1.000000 1.625000 -0.000000 -v 1.000000 1.375000 -0.000000 -v 1.000000 1.625000 -0.625000 -v 1.000000 1.375000 -0.625000 -v 0.250000 1.437500 -0.156250 -v 0.250000 1.562500 -0.156250 -v 0.250000 1.437500 -0.031250 -v 0.250000 1.562500 -0.031250 -v 0.750000 1.437500 -0.156250 -v 0.750000 1.562500 -0.156250 -v 0.750000 1.437500 -0.031250 -v 0.750000 1.562500 -0.031250 +v -0.000000 -0.500000 1.000000 +v -0.000000 0.000000 1.000000 +v -0.000000 -0.500000 2.000000 +v -0.000000 0.000000 2.000000 +v 1.000000 -0.500000 1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 -0.500000 2.000000 +v 1.000000 1.000000 2.000000 +v 2.000000 -0.500000 1.000000 +v 2.000000 1.000000 1.000000 +v 2.000000 -0.500000 2.000000 +v 2.000000 1.000000 2.000000 +v 0.250000 0.250000 -0.625000 +v 0.250000 0.250000 -0.375000 +v 0.750000 0.250000 -0.625000 +v 0.750000 0.250000 -0.375000 +v 0.250000 0.750000 -0.625000 +v 0.250000 0.750000 -0.375000 +v 0.750000 0.750000 -0.375000 +v 0.750000 0.750000 -0.625000 +v 0.125000 -0.500000 -0.625000 +v 0.250000 0.250000 -0.625000 +v 0.125000 -0.500000 -0.375000 +v 0.250000 0.250000 -0.375000 +v 0.250000 -0.500000 -0.625000 +v 0.375000 0.250000 -0.625000 +v 0.250000 -0.500000 -0.375000 +v 0.375000 0.250000 -0.375000 +v 0.875000 -0.500000 -0.375000 +v 0.750000 0.250000 -0.375000 +v 0.875000 -0.500000 -0.625000 +v 0.750000 0.250000 -0.625000 +v 0.750000 -0.500000 -0.375000 +v 0.625000 0.250000 -0.375000 +v 0.750000 -0.500000 -0.625000 +v 0.625000 0.250000 -0.625000 +v 0.250000 0.250000 1.625000 +v 0.250000 0.250000 1.375000 +v 0.750000 0.250000 1.625000 +v 0.750000 0.250000 1.375000 +v 0.250000 0.750000 1.625000 +v 0.250000 0.750000 1.375000 +v 0.750000 0.750000 1.375000 +v 0.750000 0.750000 1.625000 +v 0.125000 -0.500000 1.625000 +v 0.250000 0.250000 1.625000 +v 0.125000 -0.500000 1.375000 +v 0.250000 0.250000 1.375000 +v 0.250000 -0.500000 1.625000 +v 0.375000 0.250000 1.625000 +v 0.250000 -0.500000 1.375000 +v 0.375000 0.250000 1.375000 +v 0.875000 -0.500000 1.375000 +v 0.750000 0.250000 1.375000 +v 0.875000 -0.500000 1.625000 +v 0.750000 0.250000 1.625000 +v 0.750000 -0.500000 1.375000 +v 0.625000 0.250000 1.375000 +v 0.750000 -0.500000 1.625000 +v 0.625000 0.250000 1.625000 +v 0.761080 1.812536 0.748923 +v 0.761080 1.812536 0.251077 +v 1.243492 1.612714 0.748923 +v 1.243492 1.612714 0.251077 +v 1.612714 1.243492 0.748923 +v 1.612714 1.243492 0.251077 +v 1.812536 0.761080 0.748923 +v 1.812536 0.761080 0.251077 +v 1.812536 0.238920 0.748923 +v 1.812536 0.238920 0.251077 +v 1.612714 -0.243492 0.748923 +v 1.612714 -0.243492 0.251077 +v 1.243492 -0.612714 0.748923 +v 1.243492 -0.612714 0.251077 +v 0.761080 -0.812536 0.748923 +v 0.761080 -0.812536 0.251077 +v 0.238921 -0.812536 0.748923 +v 0.238921 -0.812536 0.251077 +v -0.243492 -0.612714 0.748923 +v -0.243492 -0.612714 0.251077 +v -0.612714 -0.243492 0.748923 +v -0.612714 -0.243492 0.251077 +v -0.812536 0.238920 0.748923 +v -0.812536 0.238920 0.251077 +v -0.812536 0.761080 0.748923 +v -0.812536 0.761080 0.251077 +v -0.612714 1.243492 0.748923 +v -0.612714 1.243492 0.251077 +v -0.243491 1.612714 0.748923 +v -0.243491 1.612714 0.251077 +v 0.238921 1.812536 0.748923 +v 0.238921 1.812536 0.251077 +v 1.279065 1.665954 0.748923 +v 0.773571 1.875336 0.748923 +v 0.773571 1.875336 0.251077 +v 1.279065 1.665954 0.251077 +v 1.665954 1.279065 0.748923 +v 1.665954 1.279065 0.251077 +v 1.875336 0.773571 0.748923 +v 1.875336 0.773571 0.251077 +v 1.875336 0.226429 0.748923 +v 1.875336 0.226429 0.251077 +v 1.665954 -0.279065 0.748923 +v 1.665954 -0.279066 0.251077 +v 1.279065 -0.665954 0.748923 +v 1.279065 -0.665954 0.251077 +v 0.773571 -0.875336 0.748923 +v 0.773571 -0.875336 0.251077 +v 0.226429 -0.875336 0.748923 +v 0.226429 -0.875336 0.251077 +v -0.279065 -0.665954 0.748923 +v -0.279065 -0.665954 0.251077 +v -0.665954 -0.279066 0.748923 +v -0.665954 -0.279066 0.251077 +v -0.875336 0.226429 0.748923 +v -0.875336 0.226428 0.251077 +v -0.875336 0.773571 0.748923 +v -0.875336 0.773571 0.251077 +v -0.665954 1.279066 0.748923 +v -0.665954 1.279066 0.251077 +v -0.279065 1.665954 0.748923 +v -0.279065 1.665954 0.251077 +v 0.226429 1.875336 0.748923 +v 0.226429 1.875336 0.251077 +v 0.312500 -0.750000 0.687500 +v 0.687500 -0.750000 0.312500 +v 0.312500 -0.750000 0.312500 +v 0.312500 -0.500000 0.687500 +v 0.312500 -0.500000 0.312500 +v 0.312500 -0.812500 0.687500 +v 0.687500 -0.812500 0.687500 +v 0.312500 -0.437500 0.687500 +v 0.687500 -0.437500 0.687500 +v 0.687500 -0.437500 0.312500 +v 0.687500 -0.500000 0.312500 +v 0.687500 -0.750000 0.687500 +v 0.312500 -0.437500 0.312500 +v 0.312500 -0.812500 0.312500 +v 0.687500 -0.500000 0.687500 +v 0.687500 -0.812500 0.312500 +v 0.375000 -0.750000 0.625000 +v 0.375000 -0.500000 0.375000 +v 0.625000 -0.750000 0.375000 +v 0.375000 -0.750000 0.375000 +v 0.625000 -0.500000 0.375000 +v 0.625000 -0.750000 0.625000 +v 0.625000 -0.500000 0.625000 +v 0.375000 -0.500000 0.625000 +v -0.151582 -0.583097 0.687500 +v 0.194873 -0.726603 0.312500 +v -0.151582 -0.583096 0.312500 +v -0.055911 -0.352126 0.687500 +v -0.055911 -0.352126 0.312500 +v -0.175499 -0.640839 0.687500 +v 0.170955 -0.784345 0.687500 +v -0.031993 -0.294384 0.687500 +v 0.314462 -0.437890 0.687500 +v 0.314462 -0.437890 0.312500 +v 0.290544 -0.495633 0.312500 +v 0.194873 -0.726603 0.687500 +v -0.031993 -0.294384 0.312500 +v -0.175499 -0.640839 0.312500 +v 0.290544 -0.495633 0.687500 +v 0.170955 -0.784345 0.312500 +v -0.093839 -0.607014 0.625000 +v 0.001832 -0.376044 0.375000 +v 0.137131 -0.702685 0.375000 +v -0.093839 -0.607014 0.375000 +v 0.232801 -0.471715 0.375000 +v 0.137131 -0.702685 0.625000 +v 0.232801 -0.471715 0.625000 +v 0.001832 -0.376044 0.625000 +v 1.151582 1.583096 0.687500 +v 0.805127 1.726602 0.312499 +v 1.151582 1.583096 0.312500 +v 1.055911 1.352126 0.687500 +v 1.055911 1.352126 0.312500 +v 1.175500 1.640838 0.687500 +v 0.829045 1.784345 0.687499 +v 1.031993 1.294384 0.687500 +v 0.685539 1.437890 0.687500 +v 0.685539 1.437890 0.312500 +v 0.709456 1.495632 0.312500 +v 0.805127 1.726602 0.687500 +v 1.031993 1.294383 0.312500 +v 1.175500 1.640838 0.312500 +v 0.709456 1.495632 0.687500 +v 0.829045 1.784345 0.312499 +v 1.093840 1.607014 0.625000 +v 0.998169 1.376044 0.375000 +v 0.862870 1.702685 0.375000 +v 1.093840 1.607014 0.375000 +v 0.767199 1.471715 0.375000 +v 0.862870 1.702685 0.625000 +v 0.767199 1.471715 0.625000 +v 0.998169 1.376044 0.625000 +v -0.583097 1.151581 0.687500 +v -0.726603 0.805126 0.312500 +v -0.583097 1.151581 0.312500 +v -0.352127 1.055910 0.687500 +v -0.352127 1.055910 0.312500 +v -0.640839 1.175498 0.687500 +v -0.784346 0.829043 0.687500 +v -0.294385 1.031992 0.687500 +v -0.437891 0.685537 0.687500 +v -0.437890 0.685537 0.312500 +v -0.495633 0.709455 0.312500 +v -0.726603 0.805126 0.687500 +v -0.294384 1.031992 0.312500 +v -0.640839 1.175498 0.312499 +v -0.495633 0.709455 0.687500 +v -0.784345 0.829043 0.312500 +v -0.607014 1.093838 0.625000 +v -0.376045 0.998168 0.375000 +v -0.702685 0.862868 0.375000 +v -0.607014 1.093838 0.375000 +v -0.471715 0.767197 0.375000 +v -0.702685 0.862868 0.625000 +v -0.471715 0.767198 0.625000 +v -0.376045 0.998168 0.625000 +v 1.583096 -0.151582 0.687500 +v 1.726603 0.194873 0.312500 +v 1.583096 -0.151582 0.312500 +v 1.352126 -0.055911 0.687500 +v 1.352126 -0.055911 0.312500 +v 1.640839 -0.175500 0.687500 +v 1.784345 0.170955 0.687500 +v 1.294384 -0.031993 0.687500 +v 1.437890 0.314462 0.687500 +v 1.437890 0.314461 0.312500 +v 1.495633 0.290544 0.312500 +v 1.726603 0.194873 0.687500 +v 1.294384 -0.031993 0.312500 +v 1.640839 -0.175500 0.312500 +v 1.495633 0.290544 0.687500 +v 1.784345 0.170955 0.312500 +v 1.607014 -0.093840 0.625000 +v 1.376044 0.001831 0.375000 +v 1.702685 0.137130 0.375000 +v 1.607014 -0.093839 0.375000 +v 1.471715 0.232801 0.375000 +v 1.702685 0.137130 0.625000 +v 1.471715 0.232801 0.625000 +v 1.376044 0.001832 0.625000 +v 1.726603 0.805126 0.687500 +v 1.583096 1.151581 0.312500 +v 1.726602 0.805126 0.312500 +v 1.495633 0.709456 0.687500 +v 1.495633 0.709456 0.312500 +v 1.784345 0.829044 0.687500 +v 1.640839 1.175499 0.687500 +v 1.437890 0.685538 0.687500 +v 1.294384 1.031993 0.687500 +v 1.294384 1.031993 0.312500 +v 1.352126 1.055910 0.312500 +v 1.583096 1.151581 0.687500 +v 1.437890 0.685538 0.312500 +v 1.784345 0.829044 0.312500 +v 1.352126 1.055911 0.687500 +v 1.640839 1.175499 0.312500 +v 1.702685 0.862869 0.625000 +v 1.471715 0.767198 0.375000 +v 1.607014 1.093839 0.375000 +v 1.702685 0.862869 0.375000 +v 1.376044 0.998168 0.375000 +v 1.607014 1.093839 0.625000 +v 1.376044 0.998168 0.625000 +v 1.471715 0.767198 0.625000 +v -0.726602 0.194872 0.687500 +v -0.583095 -0.151583 0.312500 +v -0.726602 0.194872 0.312500 +v -0.495632 0.290543 0.687500 +v -0.495632 0.290543 0.312500 +v -0.784345 0.170954 0.687500 +v -0.640838 -0.175501 0.687500 +v -0.437890 0.314461 0.687500 +v -0.294383 -0.031994 0.687500 +v -0.294383 -0.031994 0.312500 +v -0.352126 -0.055912 0.312500 +v -0.583096 -0.151583 0.687500 +v -0.437890 0.314461 0.312500 +v -0.784345 0.170954 0.312500 +v -0.352126 -0.055912 0.687500 +v -0.640838 -0.175501 0.312500 +v -0.702685 0.137129 0.625000 +v -0.471715 0.232800 0.375000 +v -0.607013 -0.093840 0.375000 +v -0.702684 0.137129 0.375000 +v -0.376044 0.001831 0.375000 +v -0.607013 -0.093841 0.625000 +v -0.376044 0.001831 0.625000 +v -0.471715 0.232800 0.625000 +v 0.194873 1.726603 0.687500 +v -0.151582 1.583096 0.312499 +v 0.194873 1.726603 0.312499 +v 0.290544 1.495633 0.687500 +v 0.290544 1.495632 0.312500 +v 0.170955 1.784345 0.687499 +v -0.175500 1.640839 0.687499 +v 0.314462 1.437890 0.687500 +v -0.031993 1.294384 0.687500 +v -0.031993 1.294384 0.312500 +v -0.055911 1.352126 0.312500 +v -0.151582 1.583096 0.687499 +v 0.314462 1.437890 0.312500 +v 0.170955 1.784345 0.312499 +v -0.055911 1.352126 0.687500 +v -0.175500 1.640839 0.312499 +v 0.137131 1.702685 0.625000 +v 0.232801 1.471715 0.375000 +v -0.093839 1.607014 0.375000 +v 0.137131 1.702685 0.374999 +v 0.001832 1.376044 0.375000 +v -0.093839 1.607014 0.624999 +v 0.001832 1.376044 0.625000 +v 0.232801 1.471715 0.625000 +v 0.805127 -0.726603 0.687500 +v 1.151582 -0.583096 0.312500 +v 0.805127 -0.726603 0.312500 +v 0.709456 -0.495633 0.687500 +v 0.709456 -0.495633 0.312500 +v 0.829044 -0.784345 0.687500 +v 1.175499 -0.640839 0.687500 +v 0.685538 -0.437890 0.687500 +v 1.031993 -0.294384 0.687500 +v 1.031993 -0.294384 0.312500 +v 1.055911 -0.352127 0.312500 +v 1.151582 -0.583096 0.687500 +v 0.685538 -0.437890 0.312500 +v 0.829044 -0.784345 0.312500 +v 1.055911 -0.352126 0.687500 +v 1.175499 -0.640839 0.312500 +v 0.862869 -0.702685 0.625000 +v 0.767198 -0.471715 0.375000 +v 1.093839 -0.607014 0.375000 +v 0.862869 -0.702685 0.375000 +v 0.998168 -0.376044 0.375000 +v 1.093839 -0.607014 0.625000 +v 0.998168 -0.376044 0.625000 +v 0.767198 -0.471715 0.625000 +v 1.251301 -0.516466 0.687500 +v 1.516466 -0.251301 0.312500 +v 1.251301 -0.516466 0.312500 +v 1.074524 -0.339689 0.687500 +v 1.074524 -0.339689 0.312500 +v 1.295495 -0.560660 0.687500 +v 1.560660 -0.295495 0.687500 +v 1.030330 -0.295495 0.687500 +v 1.295495 -0.030330 0.687500 +v 1.295495 -0.030330 0.312500 +v 1.339689 -0.074524 0.312500 +v 1.516466 -0.251301 0.687500 +v 1.030330 -0.295495 0.312500 +v 1.295495 -0.560660 0.312500 +v 1.339689 -0.074524 0.687500 +v 1.560660 -0.295495 0.312500 +v 1.295495 -0.472272 0.625000 +v 1.118718 -0.295495 0.375000 +v 1.472272 -0.295495 0.375000 +v 1.295495 -0.472272 0.375000 +v 1.295495 -0.118719 0.375000 +v 1.472272 -0.295495 0.625000 +v 1.295495 -0.118719 0.625000 +v 1.118718 -0.295495 0.625000 +v -0.251301 1.516466 0.687500 +v -0.516466 1.251301 0.312500 +v -0.251301 1.516466 0.312499 +v -0.074524 1.339689 0.687500 +v -0.074524 1.339689 0.312500 +v -0.295495 1.560660 0.687499 +v -0.560660 1.295495 0.687499 +v -0.030330 1.295495 0.687500 +v -0.295495 1.030330 0.687500 +v -0.295495 1.030330 0.312500 +v -0.339689 1.074524 0.312500 +v -0.516466 1.251301 0.687500 +v -0.030330 1.295495 0.312500 +v -0.295495 1.560660 0.312499 +v -0.339689 1.074524 0.687500 +v -0.560660 1.295495 0.312499 +v -0.295495 1.472272 0.625000 +v -0.118718 1.295495 0.375000 +v -0.472272 1.295495 0.375000 +v -0.295495 1.472272 0.375000 +v -0.295495 1.118718 0.375000 +v -0.472272 1.295495 0.625000 +v -0.295495 1.118718 0.625000 +v -0.118719 1.295495 0.625000 +v -0.516465 -0.251302 0.687500 +v -0.251300 -0.516467 0.312500 +v -0.516465 -0.251302 0.312500 +v -0.339689 -0.074525 0.687500 +v -0.339689 -0.074525 0.312500 +v -0.560660 -0.295496 0.687500 +v -0.295494 -0.560661 0.687500 +v -0.295495 -0.030331 0.687500 +v -0.030330 -0.295496 0.687500 +v -0.030330 -0.295496 0.312500 +v -0.074524 -0.339690 0.312500 +v -0.251300 -0.516467 0.687500 +v -0.295495 -0.030331 0.312500 +v -0.560660 -0.295496 0.312500 +v -0.074524 -0.339690 0.687500 +v -0.295494 -0.560661 0.312500 +v -0.472271 -0.295496 0.625000 +v -0.295495 -0.118719 0.375000 +v -0.295494 -0.472273 0.375000 +v -0.472271 -0.295496 0.375000 +v -0.118718 -0.295496 0.375000 +v -0.295494 -0.472273 0.625000 +v -0.118718 -0.295496 0.625000 +v -0.295495 -0.118719 0.625000 +v 1.516466 1.251301 0.687500 +v 1.251301 1.516466 0.312500 +v 1.516466 1.251300 0.312500 +v 1.339689 1.074524 0.687500 +v 1.339689 1.074524 0.312500 +v 1.560660 1.295495 0.687500 +v 1.295495 1.560660 0.687500 +v 1.295495 1.030330 0.687500 +v 1.030330 1.295495 0.687500 +v 1.030330 1.295495 0.312500 +v 1.074524 1.339689 0.312500 +v 1.251301 1.516466 0.687500 +v 1.295495 1.030330 0.312500 +v 1.560660 1.295495 0.312500 +v 1.074524 1.339689 0.687500 +v 1.295495 1.560660 0.312500 +v 1.472272 1.295495 0.625000 +v 1.295495 1.118718 0.375000 +v 1.295495 1.472271 0.375000 +v 1.472272 1.295495 0.375000 +v 1.118719 1.295495 0.375000 +v 1.295495 1.472271 0.625000 +v 1.118719 1.295495 0.625000 +v 1.295495 1.118718 0.625000 +v 1.750000 0.312500 0.687500 +v 1.750000 0.687500 0.312500 +v 1.750000 0.312500 0.312500 +v 1.500000 0.312500 0.687500 +v 1.500000 0.312500 0.312500 +v 1.812500 0.312500 0.687500 +v 1.812500 0.687500 0.687500 +v 1.437500 0.312500 0.687500 +v 1.437500 0.687500 0.687500 +v 1.437500 0.687500 0.312500 +v 1.500000 0.687500 0.312500 +v 1.750000 0.687500 0.687500 +v 1.437500 0.312500 0.312500 +v 1.812500 0.312500 0.312500 +v 1.500000 0.687500 0.687500 +v 1.812500 0.687500 0.312500 +v 1.750000 0.375000 0.625000 +v 1.500000 0.375000 0.375000 +v 1.750000 0.625000 0.375000 +v 1.750000 0.375000 0.375000 +v 1.500000 0.625000 0.375000 +v 1.750000 0.625000 0.625000 +v 1.500000 0.625000 0.625000 +v 1.500000 0.375000 0.625000 +v -0.750000 0.687499 0.687500 +v -0.750000 0.312499 0.312500 +v -0.750000 0.687499 0.312500 +v -0.500000 0.687499 0.687500 +v -0.500000 0.687499 0.312500 +v -0.812500 0.687499 0.687500 +v -0.812500 0.312499 0.687500 +v -0.437500 0.687499 0.687500 +v -0.437500 0.312499 0.687500 +v -0.437500 0.312499 0.312500 +v -0.500000 0.312499 0.312500 +v -0.750000 0.312499 0.687500 +v -0.437500 0.687499 0.312500 +v -0.812500 0.687499 0.312500 +v -0.500000 0.312499 0.687500 +v -0.812500 0.312499 0.312500 +v -0.750000 0.624999 0.625000 +v -0.500000 0.624999 0.375000 +v -0.750000 0.374999 0.375000 +v -0.750000 0.624999 0.375000 +v -0.500000 0.374999 0.375000 +v -0.750000 0.374999 0.625000 +v -0.500000 0.374999 0.625000 +v -0.500000 0.624999 0.625000 +v 0.687500 1.750000 0.687500 +v 0.312500 1.750000 0.312499 +v 0.687500 1.750000 0.312499 +v 0.687500 1.500000 0.687500 +v 0.687500 1.500000 0.312500 +v 0.687500 1.812500 0.687499 +v 0.312500 1.812500 0.687499 +v 0.687500 1.437500 0.687500 +v 0.312500 1.437500 0.687500 +v 0.312500 1.437500 0.312500 +v 0.312500 1.500000 0.312500 +v 0.312500 1.750000 0.687499 +v 0.687500 1.437500 0.312500 +v 0.687500 1.812500 0.312499 +v 0.312500 1.500000 0.687500 +v 0.312500 1.812500 0.312499 +v 0.625000 1.750000 0.625000 +v 0.625000 1.500000 0.375000 +v 0.375000 1.750000 0.374999 +v 0.625000 1.750000 0.375000 +v 0.375000 1.500000 0.375000 +v 0.375000 1.750000 0.624999 +v 0.375000 1.500000 0.625000 +v 0.625000 1.500000 0.625000 +v 0.250000 0.625000 0.000000 +v 0.250000 0.375000 0.000000 +v 0.250000 0.625000 -0.625000 +v 0.250000 0.375000 -0.625000 +v 0.000000 0.625000 -0.000000 +v 0.000000 0.375000 -0.000000 +v 0.000000 0.625000 -0.625000 +v 0.000000 0.375000 -0.625000 +v 0.750000 0.625000 0.000000 +v 0.750000 0.375000 0.000000 +v 0.750000 0.625000 -0.625000 +v 0.750000 0.375000 -0.625000 +v 1.000000 0.625000 0.000000 +v 1.000000 0.375000 0.000000 +v 1.000000 0.625000 -0.625000 +v 1.000000 0.375000 -0.625000 +v 0.250000 0.437500 -0.156250 +v 0.250000 0.562500 -0.156250 +v 0.250000 0.437500 -0.031250 +v 0.250000 0.562500 -0.031250 +v 0.750000 0.437500 -0.156250 +v 0.750000 0.562500 -0.156250 +v 0.750000 0.437500 -0.031250 +v 0.750000 0.562500 -0.031250 +v 1.875000 0.625000 0.375000 +v 1.875000 0.226562 0.750000 +v 1.875000 0.625000 0.625000 +v 2.000000 0.226562 0.250000 +v 1.937500 0.625000 0.375000 +v 2.000000 0.226562 0.750000 +v 1.937500 0.625000 0.625000 +v 1.875000 0.375000 0.375000 +v 1.875000 0.375000 0.625000 +v 2.000000 0.375000 0.625000 +v 2.000000 0.375000 0.375000 +v 1.875000 0.226562 0.250000 +v 1.665942 -0.279442 0.250000 +v 2.000000 -0.279442 0.250000 +v 1.665942 -0.279442 0.750000 +v 2.000000 -0.279442 0.750000 +v 1.665942 -0.501168 0.750000 +v 2.000000 -0.501168 0.750000 +v 2.000000 -0.501168 0.250000 +v 1.665942 -0.501168 0.250000 +v -0.875000 0.625000 0.375000 +v -0.875000 0.226562 0.750000 +v -0.875000 0.625000 0.625000 +v -1.000000 0.226562 0.250000 +v -0.937500 0.625000 0.375000 +v -1.000000 0.226562 0.750000 +v -0.937500 0.625000 0.625000 +v -0.875000 0.375000 0.375000 +v -0.875000 0.375000 0.625000 +v -1.000000 0.375000 0.625000 +v -1.000000 0.375000 0.375000 +v -0.875000 0.226562 0.250000 +v -0.665942 -0.279442 0.250000 +v -1.000000 -0.279442 0.250000 +v -0.665942 -0.279442 0.750000 +v -1.000000 -0.279442 0.750000 +v -0.665942 -0.501168 0.750000 +v -1.000000 -0.501168 0.750000 +v -1.000000 -0.501168 0.250000 +v -0.665942 -0.501168 0.250000 vt 0.375000 0.250000 vt 0.750000 0.250000 vt 0.750000 0.312500 @@ -821,94 +821,6 @@ vt 0.812500 0.609375 vt 0.812500 0.515625 vt 0.796875 0.515625 vt 0.796875 0.609375 -vt 0.359922 0.489680 -vt 0.327578 0.489680 -vt 0.327578 0.523034 -vt 0.359922 0.523034 -vt 0.338696 0.490690 -vt 0.322524 0.490690 -vt 0.330610 0.523034 -vt 0.338696 0.523034 -vt 0.359922 0.489680 -vt 0.327578 0.489680 -vt 0.327578 0.523034 -vt 0.359922 0.523034 -vt 0.322524 0.490690 -vt 0.338696 0.490690 -vt 0.338696 0.523034 -vt 0.330610 0.523034 -vt 0.338696 0.470475 -vt 0.364976 0.403766 -vt 0.322524 0.403766 -vt 0.322524 0.470475 -vt 0.370030 0.523034 -vt 0.317470 0.523034 -vt 0.317470 0.509895 -vt 0.370030 0.509895 -vt 0.322524 0.470475 -vt 0.338696 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.375083 0.404776 -vt 0.312417 0.404776 -vt 0.375083 0.403766 -vt 0.312417 0.403766 -vt 0.322524 0.403766 -vt 0.364976 0.403766 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.322524 0.375464 -vt 0.364976 0.375464 -vt 0.364976 0.375464 -vt 0.322524 0.375464 -vt 0.359922 0.489680 -vt 0.359922 0.523034 -vt 0.327578 0.523034 -vt 0.327578 0.489680 -vt 0.338696 0.490690 -vt 0.338696 0.523034 -vt 0.330610 0.523034 -vt 0.322524 0.490690 -vt 0.359922 0.489680 -vt 0.359922 0.523034 -vt 0.327578 0.523034 -vt 0.327578 0.489680 -vt 0.322524 0.490690 -vt 0.330610 0.523034 -vt 0.338696 0.523034 -vt 0.338696 0.490690 -vt 0.338696 0.470475 -vt 0.322524 0.470475 -vt 0.322524 0.403766 -vt 0.364976 0.403766 -vt 0.370030 0.523034 -vt 0.370030 0.509895 -vt 0.317470 0.509895 -vt 0.317470 0.523034 -vt 0.322524 0.470475 -vt 0.338696 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.375083 0.470475 -vt 0.312417 0.470475 -vt 0.312417 0.404776 -vt 0.375083 0.404776 -vt 0.312417 0.403766 -vt 0.375083 0.403766 -vt 0.364976 0.403766 -vt 0.322524 0.403766 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.312417 0.375464 -vt 0.375083 0.375464 -vt 0.364976 0.375464 -vt 0.322524 0.375464 -vt 0.322524 0.375464 -vt 0.364976 0.375464 vt 0.500000 0.687500 vt 0.375000 0.687500 vt 0.375000 0.812500 @@ -2157,34 +2069,104 @@ vt 0.875000 0.656250 vt 0.843750 0.656250 vt 0.843750 0.812500 vt 0.875000 0.812500 -vn 0.0000 0.0000 1.0000 +vt 0.177979 0.513854 +vt 0.147512 0.513854 +vt 0.162746 0.574789 +vt 0.177979 0.574789 +vt 0.178543 0.514716 +vt 0.239815 0.514716 +vt 0.239815 0.575988 +vt 0.178543 0.575988 +vt 0.147512 0.513854 +vt 0.177979 0.513854 +vt 0.177979 0.574789 +vt 0.162746 0.574789 +vt 0.177979 0.477674 +vt 0.228935 0.354341 +vt 0.147512 0.354341 +vt 0.147512 0.477674 +vt 0.239815 0.575988 +vt 0.178543 0.575988 +vt 0.147512 0.477674 +vt 0.177979 0.477674 +vt 0.147907 0.478336 +vt 0.270451 0.478336 +vt 0.147907 0.354319 +vt 0.270451 0.354319 +vt 0.147512 0.354341 +vt 0.228935 0.354341 +vt 0.270451 0.299977 +vt 0.147907 0.299976 +vt 0.147907 0.299977 +vt 0.147907 0.354319 +vt 0.270451 0.354319 +vt 0.270451 0.299976 +vt 0.147512 0.300297 +vt 0.228935 0.300297 +vt 0.228935 0.300297 +vt 0.147512 0.300297 +vt 0.177868 0.513854 +vt 0.177868 0.574789 +vt 0.162634 0.574789 +vt 0.147401 0.513854 +vt 0.178543 0.514716 +vt 0.178543 0.575988 +vt 0.239815 0.575988 +vt 0.239815 0.514716 +vt 0.147401 0.513854 +vt 0.162634 0.574789 +vt 0.177868 0.574789 +vt 0.177868 0.513854 +vt 0.177868 0.477674 +vt 0.147401 0.477674 +vt 0.147401 0.354341 +vt 0.228824 0.354341 +vt 0.178543 0.575988 +vt 0.239815 0.575988 +vt 0.147401 0.477674 +vt 0.177868 0.477674 +vt 0.147907 0.478336 +vt 0.270452 0.478336 +vt 0.270452 0.354319 +vt 0.147907 0.354319 +vt 0.228824 0.354341 +vt 0.147401 0.354341 +vt 0.270452 0.299977 +vt 0.147907 0.299976 +vt 0.147907 0.299977 +vt 0.270452 0.299976 +vt 0.270452 0.354319 +vt 0.147907 0.354319 +vt 0.228824 0.300297 +vt 0.147401 0.300297 +vt 0.147401 0.300297 +vt 0.228824 0.300297 +vn -0.0000 0.0000 1.0000 vn 0.0000 1.0000 -0.0000 -vn -0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 -0.0000 vn 0.0000 -1.0000 0.0000 -vn -0.9864 0.1644 0.0000 -vn 0.9864 -0.1644 -0.0000 -vn 0.9864 0.1644 -0.0000 +vn -0.9864 0.1644 -0.0000 +vn 0.9864 -0.1644 0.0000 +vn 0.9864 0.1644 0.0000 vn -0.9864 -0.1644 0.0000 -vn 0.9701 0.2425 0.0000 -vn 0.0000 0.6441 -0.7649 -vn 0.0000 0.6441 0.7649 -vn -0.9242 0.3818 0.0000 -vn -0.9701 0.2425 0.0000 -vn 0.9242 0.3818 0.0000 -vn -0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 0.0000 vn -0.7071 -0.7071 0.0000 vn -0.9239 -0.3827 0.0000 vn -0.9239 0.3827 -0.0000 vn -0.7071 0.7071 -0.0000 -vn -0.3827 0.9239 0.0000 +vn -0.3827 0.9239 -0.0000 vn 0.3827 0.9239 0.0000 vn 0.7071 0.7071 -0.0000 -vn 0.9239 0.3827 0.0000 +vn 0.9239 0.3827 -0.0000 vn 0.9239 -0.3827 0.0000 vn 0.7071 -0.7071 0.0000 -vn 0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.6441 -0.7649 +vn 0.0000 0.6441 0.7649 +vn -0.9701 0.2425 0.0000 usemtl None s off f 4/1/1 2/2/1 1/3/1 3/4/1 @@ -2245,375 +2227,369 @@ f 91/198/1 92/199/1 96/200/1 95/201/1 f 89/202/9 90/203/9 92/204/9 91/205/9 f 95/201/10 96/200/10 94/206/10 93/207/10 f 93/208/3 94/209/3 90/210/3 89/211/3 -f 104/212/5 105/213/5 99/214/5 97/215/5 -f 105/216/1 106/217/1 103/218/1 99/219/1 -f 106/220/11 107/221/11 101/222/11 103/223/11 -f 107/224/3 104/225/3 97/226/3 101/227/3 -f 98/228/1 111/229/1 112/230/1 102/231/1 -f 103/232/2 101/233/2 97/234/2 99/235/2 -f 100/236/12 108/237/12 104/225/12 107/224/12 -f 102/238/4 100/239/4 107/221/4 106/220/4 -f 98/228/13 102/231/13 106/217/13 105/216/13 -f 108/240/5 98/241/5 105/213/5 104/212/5 -f 108/240/14 109/242/14 111/243/14 98/241/14 -f 102/238/4 112/244/4 110/245/4 100/239/4 -f 100/236/3 110/246/3 109/247/3 108/237/3 -f 115/248/4 110/245/4 112/244/4 114/249/4 -f 113/250/5 111/243/5 109/242/5 116/251/5 -f 109/247/3 110/246/3 115/252/3 116/253/3 -f 112/230/1 111/229/1 113/254/1 114/255/1 -f 124/256/4 117/257/4 119/258/4 125/259/4 -f 125/260/1 119/261/1 123/262/1 126/263/1 -f 126/264/15 123/265/15 121/266/15 127/267/15 -f 127/268/3 121/269/3 117/270/3 124/271/3 -f 118/272/1 122/273/1 132/274/1 131/275/1 -f 123/276/2 119/277/2 117/278/2 121/279/2 -f 120/280/12 127/268/12 124/271/12 128/281/12 -f 122/282/5 126/264/5 127/267/5 120/283/5 -f 118/272/13 125/260/13 126/263/13 122/273/13 -f 128/284/4 124/256/4 125/259/4 118/285/4 -f 128/284/16 118/285/16 131/286/16 129/287/16 -f 122/282/5 120/283/5 130/288/5 132/289/5 -f 120/280/3 128/281/3 129/290/3 130/291/3 -f 135/292/5 134/293/5 132/289/5 130/288/5 -f 133/294/4 136/295/4 129/287/4 131/286/4 -f 129/290/3 136/296/3 135/297/3 130/291/3 -f 132/274/1 134/298/1 133/299/1 131/275/1 -f 137/300/17 138/301/17 140/302/17 139/303/17 -f 139/304/18 140/305/18 142/306/18 141/307/18 -f 141/308/19 142/309/19 144/310/19 143/311/19 -f 143/312/5 144/313/5 146/314/5 145/315/5 -f 145/316/20 146/317/20 148/318/20 147/319/20 -f 147/320/21 148/321/21 150/322/21 149/323/21 -f 149/324/22 150/325/22 152/326/22 151/327/22 -f 151/328/2 152/329/2 154/330/2 153/331/2 -f 153/332/23 154/333/23 156/334/23 155/335/23 -f 155/336/24 156/337/24 158/338/24 157/339/24 -f 157/340/25 158/341/25 160/342/25 159/343/25 -f 159/344/4 160/345/4 162/346/4 161/347/4 -f 161/348/26 162/349/26 164/350/26 163/351/26 -f 163/352/27 164/353/27 166/354/27 165/355/27 -f 165/356/28 166/357/28 168/358/28 167/359/28 -f 167/360/6 168/361/6 138/362/6 137/363/6 -f 170/364/23 169/365/23 172/366/23 171/367/23 -f 169/368/24 173/369/24 174/370/24 172/371/24 -f 173/372/25 175/373/25 176/374/25 174/375/25 -f 175/376/4 177/377/4 178/378/4 176/379/4 -f 177/380/26 179/381/26 180/382/26 178/383/26 -f 179/384/27 181/385/27 182/386/27 180/387/27 -f 181/388/28 183/389/28 184/390/28 182/391/28 -f 183/392/6 185/393/6 186/394/6 184/395/6 -f 185/396/17 187/397/17 188/398/17 186/399/17 -f 187/400/18 189/401/18 190/402/18 188/403/18 -f 189/404/19 191/405/19 192/406/19 190/407/19 -f 191/408/5 193/409/5 194/410/5 192/411/5 -f 193/412/20 195/413/20 196/414/20 194/415/20 -f 195/416/21 197/417/21 198/418/21 196/419/21 -f 197/420/22 199/421/22 200/422/22 198/423/22 -f 199/424/2 170/425/2 171/426/2 200/427/2 -f 150/428/3 148/321/3 180/429/3 182/430/3 -f 168/431/3 166/357/3 198/432/3 200/433/3 -f 139/304/1 141/434/1 173/435/1 169/436/1 -f 157/340/1 159/437/1 191/438/1 189/439/1 -f 142/440/3 140/305/3 172/441/3 174/442/3 -f 160/443/3 158/341/3 190/444/3 192/445/3 -f 149/324/1 151/446/1 183/447/1 181/448/1 -f 167/360/1 137/449/1 170/450/1 199/451/1 -f 152/452/3 150/325/3 182/453/3 184/454/3 -f 138/455/3 168/361/3 200/456/3 171/457/3 -f 141/308/1 143/458/1 175/459/1 173/460/1 -f 159/344/1 161/461/1 193/462/1 191/463/1 -f 144/464/3 142/309/3 174/465/3 176/466/3 -f 162/467/3 160/345/3 192/468/3 194/469/3 -f 151/328/1 153/470/1 185/471/1 183/472/1 -f 154/473/3 152/329/3 184/474/3 186/475/3 -f 143/312/1 145/476/1 177/477/1 175/478/1 -f 161/348/1 163/479/1 195/480/1 193/481/1 -f 146/482/3 144/313/3 176/483/3 178/484/3 -f 164/485/3 162/349/3 194/486/3 196/487/3 -f 153/332/1 155/488/1 187/489/1 185/490/1 -f 156/491/3 154/333/3 186/492/3 188/493/3 -f 145/316/1 147/494/1 179/495/1 177/496/1 -f 163/352/1 165/497/1 197/498/1 195/499/1 -f 137/300/1 139/500/1 169/501/1 170/502/1 -f 148/503/3 146/317/3 178/504/3 180/505/3 -f 166/506/3 164/353/3 196/507/3 198/508/3 -f 155/336/1 157/509/1 189/510/1 187/511/1 -f 140/512/3 138/301/3 171/513/3 172/514/3 -f 158/515/3 156/337/3 188/516/3 190/517/3 -f 147/320/1 149/518/1 181/519/1 179/520/1 -f 165/356/1 167/521/1 199/522/1 197/523/1 -f 204/524/6 205/525/6 211/526/6 215/527/6 -f 206/528/6 214/529/6 216/530/6 207/531/6 -f 203/532/5 214/533/5 206/534/5 201/535/5 -f 215/536/1 209/537/1 208/538/1 204/524/1 -f 217/539/5 224/540/5 218/541/5 220/542/5 -f 213/543/2 208/544/2 209/545/2 210/546/2 -f 204/547/5 208/548/5 213/549/5 205/550/5 -f 224/551/1 217/552/1 222/553/1 223/554/1 -f 212/555/4 207/556/4 216/557/4 202/558/4 -f 219/559/4 221/560/4 223/561/4 222/562/4 -f 205/525/3 213/563/3 210/564/3 211/565/3 -f 201/566/1 206/528/1 207/567/1 212/568/1 -f 220/569/3 218/570/3 221/571/3 219/572/3 -f 203/573/2 201/574/2 212/575/2 202/576/2 -f 211/577/4 210/578/4 209/579/4 215/580/4 -f 202/581/3 216/582/3 214/529/3 203/583/3 -f 228/584/17 229/585/17 235/586/17 239/587/17 -f 230/588/17 238/589/17 240/590/17 231/591/17 -f 227/592/20 238/593/20 230/594/20 225/595/20 -f 239/596/1 233/597/1 232/598/1 228/584/1 -f 241/599/20 248/600/20 242/601/20 244/602/20 -f 237/603/23 232/604/23 233/605/23 234/606/23 -f 228/607/20 232/608/20 237/609/20 229/610/20 -f 248/611/1 241/612/1 246/613/1 247/614/1 -f 236/615/26 231/616/26 240/617/26 226/618/26 -f 243/619/26 245/620/26 247/621/26 246/622/26 -f 229/585/3 237/623/3 234/624/3 235/625/3 -f 225/626/1 230/588/1 231/627/1 236/628/1 -f 244/629/3 242/630/3 245/631/3 243/632/3 -f 227/633/23 225/634/23 236/635/23 226/636/23 -f 235/637/26 234/638/26 233/639/26 239/640/26 -f 226/641/3 240/642/3 238/589/3 227/643/3 -f 252/644/23 253/645/23 259/646/23 263/647/23 -f 254/648/23 262/649/23 264/650/23 255/651/23 -f 251/652/26 262/653/26 254/654/26 249/655/26 -f 263/656/1 257/657/1 256/658/1 252/644/1 -f 265/659/26 272/660/26 266/661/26 268/662/26 -f 261/663/17 256/664/17 257/665/17 258/666/17 -f 252/667/26 256/668/26 261/669/26 253/670/26 -f 272/671/1 265/672/1 270/673/1 271/674/1 -f 260/675/20 255/676/20 264/677/20 250/678/20 -f 267/679/20 269/680/20 271/681/20 270/682/20 -f 253/645/3 261/683/3 258/684/3 259/685/3 -f 249/686/1 254/648/1 255/687/1 260/688/1 -f 268/689/3 266/690/3 269/691/3 267/692/3 -f 251/693/17 249/694/17 260/695/17 250/696/17 -f 259/697/20 258/698/20 257/699/20 263/700/20 -f 250/701/3 264/702/3 262/649/3 251/703/3 -f 276/704/20 277/705/20 283/706/20 287/707/20 -f 278/708/20 286/709/20 288/710/20 279/711/20 -f 275/712/23 286/713/23 278/714/23 273/715/23 -f 287/716/1 281/717/1 280/718/1 276/704/1 -f 289/719/23 296/720/23 290/721/23 292/722/23 -f 285/723/26 280/724/26 281/725/26 282/726/26 -f 276/727/23 280/728/23 285/729/23 277/730/23 -f 296/731/1 289/732/1 294/733/1 295/734/1 -f 284/735/17 279/736/17 288/737/17 274/738/17 -f 291/739/17 293/740/17 295/741/17 294/742/17 -f 277/705/3 285/743/3 282/744/3 283/745/3 -f 273/746/1 278/708/1 279/747/1 284/748/1 -f 292/749/3 290/750/3 293/751/3 291/752/3 -f 275/753/26 273/754/26 284/755/26 274/756/26 -f 283/757/17 282/758/17 281/759/17 287/760/17 -f 274/761/3 288/762/3 286/709/3 275/763/3 -f 300/764/26 301/765/26 307/766/26 311/767/26 -f 302/768/26 310/769/26 312/770/26 303/771/26 -f 299/772/17 310/773/17 302/774/17 297/775/17 -f 311/776/1 305/777/1 304/778/1 300/764/1 -f 313/779/17 320/780/17 314/781/17 316/782/17 -f 309/783/20 304/784/20 305/785/20 306/786/20 -f 300/787/17 304/788/17 309/789/17 301/790/17 -f 320/791/1 313/792/1 318/793/1 319/794/1 -f 308/795/23 303/796/23 312/797/23 298/798/23 -f 315/799/23 317/800/23 319/801/23 318/802/23 -f 301/765/3 309/803/3 306/804/3 307/805/3 -f 297/806/1 302/768/1 303/807/1 308/808/1 -f 316/809/3 314/810/3 317/811/3 315/812/3 -f 299/813/20 297/814/20 308/815/20 298/816/20 -f 307/817/23 306/818/23 305/819/23 311/820/23 -f 298/821/3 312/822/3 310/769/3 299/823/3 -f 324/824/25 325/825/25 331/826/25 335/827/25 -f 326/828/25 334/829/25 336/830/25 327/831/25 -f 323/832/28 334/833/28 326/834/28 321/835/28 -f 335/836/1 329/837/1 328/838/1 324/824/1 -f 337/839/28 344/840/28 338/841/28 340/842/28 -f 333/843/19 328/844/19 329/845/19 330/846/19 -f 324/847/28 328/848/28 333/849/28 325/850/28 -f 344/851/1 337/852/1 342/853/1 343/854/1 -f 332/855/22 327/856/22 336/857/22 322/858/22 -f 339/859/22 341/860/22 343/861/22 342/862/22 -f 325/825/3 333/863/3 330/864/3 331/865/3 -f 321/866/1 326/828/1 327/867/1 332/868/1 -f 340/869/3 338/870/3 341/871/3 339/872/3 -f 323/873/19 321/874/19 332/875/19 322/876/19 -f 331/877/22 330/878/22 329/879/22 335/880/22 -f 322/881/3 336/882/3 334/829/3 323/883/3 -f 348/884/19 349/885/19 355/886/19 359/887/19 -f 350/888/19 358/889/19 360/890/19 351/891/19 -f 347/892/22 358/893/22 350/894/22 345/895/22 -f 359/896/1 353/897/1 352/898/1 348/884/1 -f 361/899/22 368/900/22 362/901/22 364/902/22 -f 357/903/25 352/904/25 353/905/25 354/906/25 -f 348/907/22 352/908/22 357/909/22 349/910/22 -f 368/911/1 361/912/1 366/913/1 367/914/1 -f 356/915/28 351/916/28 360/917/28 346/918/28 -f 363/919/28 365/920/28 367/921/28 366/922/28 -f 349/885/3 357/923/3 354/924/3 355/925/3 -f 345/926/1 350/888/1 351/927/1 356/928/1 -f 364/929/3 362/930/3 365/931/3 363/932/3 -f 347/933/25 345/934/25 356/935/25 346/936/25 -f 355/937/28 354/938/28 353/939/28 359/940/28 -f 346/941/3 360/942/3 358/889/3 347/943/3 -f 372/944/22 373/945/22 379/946/22 383/947/22 -f 374/948/22 382/949/22 384/950/22 375/951/22 -f 371/952/25 382/953/25 374/954/25 369/955/25 -f 383/956/1 377/957/1 376/958/1 372/944/1 -f 385/959/25 392/960/25 386/961/25 388/962/25 -f 381/963/28 376/964/28 377/965/28 378/966/28 -f 372/967/25 376/968/25 381/969/25 373/970/25 -f 392/971/1 385/972/1 390/973/1 391/974/1 -f 380/975/19 375/976/19 384/977/19 370/978/19 -f 387/979/19 389/980/19 391/981/19 390/982/19 -f 373/945/3 381/983/3 378/984/3 379/985/3 -f 369/986/1 374/948/1 375/987/1 380/988/1 -f 388/989/3 386/990/3 389/991/3 387/992/3 -f 371/993/28 369/994/28 380/995/28 370/996/28 -f 379/997/19 378/998/19 377/999/19 383/1000/19 -f 370/1001/3 384/1002/3 382/949/3 371/1003/3 -f 396/1004/28 397/1005/28 403/1006/28 407/1007/28 -f 398/1008/28 406/1009/28 408/1010/28 399/1011/28 -f 395/1012/19 406/1013/19 398/1014/19 393/1015/19 -f 407/1016/1 401/1017/1 400/1018/1 396/1004/1 -f 409/1019/19 416/1020/19 410/1021/19 412/1022/19 -f 405/1023/22 400/1024/22 401/1025/22 402/1026/22 -f 396/1027/19 400/1028/19 405/1029/19 397/1030/19 -f 416/1031/1 409/1032/1 414/1033/1 415/1034/1 -f 404/1035/25 399/1036/25 408/1037/25 394/1038/25 -f 411/1039/25 413/1040/25 415/1041/25 414/1042/25 -f 397/1005/3 405/1043/3 402/1044/3 403/1045/3 -f 393/1046/1 398/1008/1 399/1047/1 404/1048/1 -f 412/1049/3 410/1050/3 413/1051/3 411/1052/3 -f 395/1053/22 393/1054/22 404/1055/22 394/1056/22 -f 403/1057/25 402/1058/25 401/1059/25 407/1060/25 -f 394/1061/3 408/1062/3 406/1009/3 395/1063/3 -f 420/1064/27 421/1065/27 427/1066/27 431/1067/27 -f 422/1068/27 430/1069/27 432/1070/27 423/1071/27 -f 419/1072/18 430/1073/18 422/1074/18 417/1075/18 -f 431/1076/1 425/1077/1 424/1078/1 420/1064/1 -f 433/1079/18 440/1080/18 434/1081/18 436/1082/18 -f 429/1083/21 424/1084/21 425/1085/21 426/1086/21 -f 420/1087/18 424/1088/18 429/1089/18 421/1090/18 -f 440/1091/1 433/1092/1 438/1093/1 439/1094/1 -f 428/1095/24 423/1096/24 432/1097/24 418/1098/24 -f 435/1099/24 437/1100/24 439/1101/24 438/1102/24 -f 421/1065/3 429/1103/3 426/1104/3 427/1105/3 -f 417/1106/1 422/1068/1 423/1107/1 428/1108/1 -f 436/1109/3 434/1110/3 437/1111/3 435/1112/3 -f 419/1113/21 417/1114/21 428/1115/21 418/1116/21 -f 427/1117/24 426/1118/24 425/1119/24 431/1120/24 -f 418/1121/3 432/1122/3 430/1069/3 419/1123/3 -f 444/1124/21 445/1125/21 451/1126/21 455/1127/21 -f 446/1128/21 454/1129/21 456/1130/21 447/1131/21 -f 443/1132/24 454/1133/24 446/1134/24 441/1135/24 -f 455/1136/1 449/1137/1 448/1138/1 444/1124/1 -f 457/1139/24 464/1140/24 458/1141/24 460/1142/24 -f 453/1143/27 448/1144/27 449/1145/27 450/1146/27 -f 444/1147/24 448/1148/24 453/1149/24 445/1150/24 -f 464/1151/1 457/1152/1 462/1153/1 463/1154/1 -f 452/1155/18 447/1156/18 456/1157/18 442/1158/18 -f 459/1159/18 461/1160/18 463/1161/18 462/1162/18 -f 445/1125/3 453/1163/3 450/1164/3 451/1165/3 -f 441/1166/1 446/1128/1 447/1167/1 452/1168/1 -f 460/1169/3 458/1170/3 461/1171/3 459/1172/3 -f 443/1173/27 441/1174/27 452/1175/27 442/1176/27 -f 451/1177/18 450/1178/18 449/1179/18 455/1180/18 -f 442/1181/3 456/1182/3 454/1129/3 443/1183/3 -f 468/1184/18 469/1185/18 475/1186/18 479/1187/18 -f 470/1188/18 478/1189/18 480/1190/18 471/1191/18 -f 467/1192/21 478/1193/21 470/1194/21 465/1195/21 -f 479/1196/1 473/1197/1 472/1198/1 468/1184/1 -f 481/1199/21 488/1200/21 482/1201/21 484/1202/21 -f 477/1203/24 472/1204/24 473/1205/24 474/1206/24 -f 468/1207/21 472/1208/21 477/1209/21 469/1210/21 -f 488/1211/1 481/1212/1 486/1213/1 487/1214/1 -f 476/1215/27 471/1216/27 480/1217/27 466/1218/27 -f 483/1219/27 485/1220/27 487/1221/27 486/1222/27 -f 469/1185/3 477/1223/3 474/1224/3 475/1225/3 -f 465/1226/1 470/1188/1 471/1227/1 476/1228/1 -f 484/1229/3 482/1230/3 485/1231/3 483/1232/3 -f 467/1233/24 465/1234/24 476/1235/24 466/1236/24 -f 475/1237/27 474/1238/27 473/1239/27 479/1240/27 -f 466/1241/3 480/1242/3 478/1189/3 467/1243/3 -f 492/1244/24 493/1245/24 499/1246/24 503/1247/24 -f 494/1248/24 502/1249/24 504/1250/24 495/1251/24 -f 491/1252/27 502/1253/27 494/1254/27 489/1255/27 -f 503/1256/1 497/1257/1 496/1258/1 492/1244/1 -f 505/1259/27 512/1260/27 506/1261/27 508/1262/27 -f 501/1263/18 496/1264/18 497/1265/18 498/1266/18 -f 492/1267/27 496/1268/27 501/1269/27 493/1270/27 -f 512/1271/1 505/1272/1 510/1273/1 511/1274/1 -f 500/1275/21 495/1276/21 504/1277/21 490/1278/21 -f 507/1279/21 509/1280/21 511/1281/21 510/1282/21 -f 493/1245/3 501/1283/3 498/1284/3 499/1285/3 -f 489/1286/1 494/1248/1 495/1287/1 500/1288/1 -f 508/1289/3 506/1290/3 509/1291/3 507/1292/3 -f 491/1293/18 489/1294/18 500/1295/18 490/1296/18 -f 499/1297/21 498/1298/21 497/1299/21 503/1300/21 -f 490/1301/3 504/1302/3 502/1249/3 491/1303/3 -f 516/1304/4 517/1305/4 523/1306/4 527/1307/4 -f 518/1308/4 526/1309/4 528/1310/4 519/1311/4 -f 515/1312/6 526/1313/6 518/1314/6 513/1315/6 -f 527/1316/1 521/1317/1 520/1318/1 516/1304/1 -f 529/1319/6 536/1320/6 530/1321/6 532/1322/6 -f 525/1323/5 520/1324/5 521/1325/5 522/1326/5 -f 516/1327/6 520/1328/6 525/1329/6 517/1330/6 -f 536/1331/1 529/1332/1 534/1333/1 535/1334/1 -f 524/1335/2 519/1336/2 528/1337/2 514/1338/2 -f 531/1339/2 533/1340/2 535/1341/2 534/1342/2 -f 517/1305/3 525/1343/3 522/1344/3 523/1345/3 -f 513/1346/1 518/1308/1 519/1347/1 524/1348/1 -f 532/1349/3 530/1350/3 533/1351/3 531/1352/3 -f 515/1353/5 513/1354/5 524/1355/5 514/1356/5 -f 523/1357/2 522/1358/2 521/1359/2 527/1360/2 -f 514/1361/3 528/1362/3 526/1309/3 515/1363/3 -f 540/1364/5 541/1365/5 547/1366/5 551/1367/5 -f 542/1368/5 550/1369/5 552/1370/5 543/1371/5 -f 539/1372/2 550/1373/2 542/1374/2 537/1375/2 -f 551/1376/1 545/1377/1 544/1378/1 540/1364/1 -f 553/1379/2 560/1380/2 554/1381/2 556/1382/2 -f 549/1383/4 544/1384/4 545/1385/4 546/1386/4 -f 540/1387/2 544/1388/2 549/1389/2 541/1390/2 -f 560/1391/1 553/1392/1 558/1393/1 559/1394/1 -f 548/1395/6 543/1396/6 552/1397/6 538/1398/6 -f 555/1399/6 557/1400/6 559/1401/6 558/1402/6 -f 541/1365/3 549/1403/3 546/1404/3 547/1405/3 -f 537/1406/1 542/1368/1 543/1407/1 548/1408/1 -f 556/1409/3 554/1410/3 557/1411/3 555/1412/3 -f 539/1413/4 537/1414/4 548/1415/4 538/1416/4 -f 547/1417/6 546/1418/6 545/1419/6 551/1420/6 -f 538/1421/3 552/1422/3 550/1369/3 539/1423/3 -f 564/1424/2 565/1425/2 571/1426/2 575/1427/2 -f 566/1428/2 574/1429/2 576/1430/2 567/1431/2 -f 563/1432/4 574/1433/4 566/1434/4 561/1435/4 -f 575/1436/1 569/1437/1 568/1438/1 564/1424/1 -f 577/1439/4 584/1440/4 578/1441/4 580/1442/4 -f 573/1443/6 568/1444/6 569/1445/6 570/1446/6 -f 564/1447/4 568/1448/4 573/1449/4 565/1450/4 -f 584/1451/1 577/1452/1 582/1453/1 583/1454/1 -f 572/1455/5 567/1456/5 576/1457/5 562/1458/5 -f 579/1459/5 581/1460/5 583/1461/5 582/1462/5 -f 565/1425/3 573/1463/3 570/1464/3 571/1465/3 -f 561/1466/1 566/1428/1 567/1467/1 572/1468/1 -f 580/1469/3 578/1470/3 581/1471/3 579/1472/3 -f 563/1473/6 561/1474/6 572/1475/6 562/1476/6 -f 571/1477/5 570/1478/5 569/1479/5 575/1480/5 -f 562/1481/3 576/1482/3 574/1429/3 563/1483/3 -f 590/1484/6 592/1485/6 588/1486/6 586/1487/6 -f 585/1488/2 587/1489/2 591/1490/2 589/1491/2 -f 592/1492/5 590/1493/5 589/1494/5 591/1495/5 -f 590/1496/1 586/1497/1 585/1498/1 589/1499/1 -f 586/1487/4 588/1486/4 587/1489/4 585/1488/4 -f 588/1500/3 592/1501/3 591/1502/3 587/1503/3 -f 598/1504/6 594/1505/6 596/1506/6 600/1507/6 -f 593/1508/2 597/1509/2 599/1510/2 595/1511/2 -f 600/1512/4 599/1513/4 597/1514/4 598/1515/4 -f 598/1516/1 597/1517/1 593/1518/1 594/1519/1 -f 594/1505/5 593/1508/5 595/1511/5 596/1506/5 -f 596/1520/3 595/1521/3 599/1522/3 600/1523/3 -f 601/1524/5 603/1525/5 604/1526/5 602/1527/5 -f 603/1528/1 607/1529/1 608/1530/1 604/1531/1 -f 607/1532/4 605/1533/4 606/1534/4 608/1535/4 -f 605/1536/3 601/1537/3 602/1538/3 606/1539/3 -f 603/1540/6 601/1541/6 605/1542/6 607/1543/6 -f 608/1544/2 606/1545/2 602/1546/2 604/1547/2 +f 97/212/11 98/213/11 100/214/11 99/215/11 +f 99/216/12 100/217/12 102/218/12 101/219/12 +f 101/220/13 102/221/13 104/222/13 103/223/13 +f 103/224/5 104/225/5 106/226/5 105/227/5 +f 105/228/14 106/229/14 108/230/14 107/231/14 +f 107/232/15 108/233/15 110/234/15 109/235/15 +f 109/236/16 110/237/16 112/238/16 111/239/16 +f 111/240/2 112/241/2 114/242/2 113/243/2 +f 113/244/17 114/245/17 116/246/17 115/247/17 +f 115/248/18 116/249/18 118/250/18 117/251/18 +f 117/252/19 118/253/19 120/254/19 119/255/19 +f 119/256/4 120/257/4 122/258/4 121/259/4 +f 121/260/20 122/261/20 124/262/20 123/263/20 +f 123/264/21 124/265/21 126/266/21 125/267/21 +f 125/268/22 126/269/22 128/270/22 127/271/22 +f 127/272/6 128/273/6 98/274/6 97/275/6 +f 130/276/17 129/277/17 132/278/17 131/279/17 +f 129/280/18 133/281/18 134/282/18 132/283/18 +f 133/284/19 135/285/19 136/286/19 134/287/19 +f 135/288/4 137/289/4 138/290/4 136/291/4 +f 137/292/20 139/293/20 140/294/20 138/295/20 +f 139/296/21 141/297/21 142/298/21 140/299/21 +f 141/300/22 143/301/22 144/302/22 142/303/22 +f 143/304/6 145/305/6 146/306/6 144/307/6 +f 145/308/11 147/309/11 148/310/11 146/311/11 +f 147/312/12 149/313/12 150/314/12 148/315/12 +f 149/316/13 151/317/13 152/318/13 150/319/13 +f 151/320/5 153/321/5 154/322/5 152/323/5 +f 153/324/14 155/325/14 156/326/14 154/327/14 +f 155/328/15 157/329/15 158/330/15 156/331/15 +f 157/332/16 159/333/16 160/334/16 158/335/16 +f 159/336/2 130/337/2 131/338/2 160/339/2 +f 110/340/3 108/233/3 140/341/3 142/342/3 +f 128/343/3 126/269/3 158/344/3 160/345/3 +f 99/216/1 101/346/1 133/347/1 129/348/1 +f 117/252/1 119/349/1 151/350/1 149/351/1 +f 102/352/3 100/217/3 132/353/3 134/354/3 +f 120/355/3 118/253/3 150/356/3 152/357/3 +f 109/236/1 111/358/1 143/359/1 141/360/1 +f 127/272/1 97/361/1 130/362/1 159/363/1 +f 112/364/3 110/237/3 142/365/3 144/366/3 +f 98/367/3 128/273/3 160/368/3 131/369/3 +f 101/220/1 103/370/1 135/371/1 133/372/1 +f 119/256/1 121/373/1 153/374/1 151/375/1 +f 104/376/3 102/221/3 134/377/3 136/378/3 +f 122/379/3 120/257/3 152/380/3 154/381/3 +f 111/240/1 113/382/1 145/383/1 143/384/1 +f 114/385/3 112/241/3 144/386/3 146/387/3 +f 103/224/1 105/388/1 137/389/1 135/390/1 +f 121/260/1 123/391/1 155/392/1 153/393/1 +f 106/394/3 104/225/3 136/395/3 138/396/3 +f 124/397/3 122/261/3 154/398/3 156/399/3 +f 113/244/1 115/400/1 147/401/1 145/402/1 +f 116/403/3 114/245/3 146/404/3 148/405/3 +f 105/228/1 107/406/1 139/407/1 137/408/1 +f 123/264/1 125/409/1 157/410/1 155/411/1 +f 97/212/1 99/412/1 129/413/1 130/414/1 +f 108/415/3 106/229/3 138/416/3 140/417/3 +f 126/418/3 124/265/3 156/419/3 158/420/3 +f 115/248/1 117/421/1 149/422/1 147/423/1 +f 100/424/3 98/213/3 131/425/3 132/426/3 +f 118/427/3 116/249/3 148/428/3 150/429/3 +f 107/232/1 109/430/1 141/431/1 139/432/1 +f 125/268/1 127/433/1 159/434/1 157/435/1 +f 164/436/6 165/437/6 171/438/6 175/439/6 +f 166/440/6 174/441/6 176/442/6 167/443/6 +f 163/444/5 174/445/5 166/446/5 161/447/5 +f 175/448/1 169/449/1 168/450/1 164/436/1 +f 177/451/5 184/452/5 178/453/5 180/454/5 +f 173/455/2 168/456/2 169/457/2 170/458/2 +f 164/459/5 168/460/5 173/461/5 165/462/5 +f 184/463/1 177/464/1 182/465/1 183/466/1 +f 172/467/4 167/468/4 176/469/4 162/470/4 +f 179/471/4 181/472/4 183/473/4 182/474/4 +f 165/437/3 173/475/3 170/476/3 171/477/3 +f 161/478/1 166/440/1 167/479/1 172/480/1 +f 180/481/3 178/482/3 181/483/3 179/484/3 +f 163/485/2 161/486/2 172/487/2 162/488/2 +f 171/489/4 170/490/4 169/491/4 175/492/4 +f 162/493/3 176/494/3 174/441/3 163/495/3 +f 188/496/11 189/497/11 195/498/11 199/499/11 +f 190/500/11 198/501/11 200/502/11 191/503/11 +f 187/504/14 198/505/14 190/506/14 185/507/14 +f 199/508/1 193/509/1 192/510/1 188/496/1 +f 201/511/14 208/512/14 202/513/14 204/514/14 +f 197/515/17 192/516/17 193/517/17 194/518/17 +f 188/519/14 192/520/14 197/521/14 189/522/14 +f 208/523/1 201/524/1 206/525/1 207/526/1 +f 196/527/20 191/528/20 200/529/20 186/530/20 +f 203/531/20 205/532/20 207/533/20 206/534/20 +f 189/497/3 197/535/3 194/536/3 195/537/3 +f 185/538/1 190/500/1 191/539/1 196/540/1 +f 204/541/3 202/542/3 205/543/3 203/544/3 +f 187/545/17 185/546/17 196/547/17 186/548/17 +f 195/549/20 194/550/20 193/551/20 199/552/20 +f 186/553/3 200/554/3 198/501/3 187/555/3 +f 212/556/17 213/557/17 219/558/17 223/559/17 +f 214/560/17 222/561/17 224/562/17 215/563/17 +f 211/564/20 222/565/20 214/566/20 209/567/20 +f 223/568/1 217/569/1 216/570/1 212/556/1 +f 225/571/20 232/572/20 226/573/20 228/574/20 +f 221/575/11 216/576/11 217/577/11 218/578/11 +f 212/579/20 216/580/20 221/581/20 213/582/20 +f 232/583/1 225/584/1 230/585/1 231/586/1 +f 220/587/14 215/588/14 224/589/14 210/590/14 +f 227/591/14 229/592/14 231/593/14 230/594/14 +f 213/557/3 221/595/3 218/596/3 219/597/3 +f 209/598/1 214/560/1 215/599/1 220/600/1 +f 228/601/3 226/602/3 229/603/3 227/604/3 +f 211/605/11 209/606/11 220/607/11 210/608/11 +f 219/609/14 218/610/14 217/611/14 223/612/14 +f 210/613/3 224/614/3 222/561/3 211/615/3 +f 236/616/14 237/617/14 243/618/14 247/619/14 +f 238/620/14 246/621/14 248/622/14 239/623/14 +f 235/624/17 246/625/17 238/626/17 233/627/17 +f 247/628/1 241/629/1 240/630/1 236/616/1 +f 249/631/17 256/632/17 250/633/17 252/634/17 +f 245/635/20 240/636/20 241/637/20 242/638/20 +f 236/639/17 240/640/17 245/641/17 237/642/17 +f 256/643/1 249/644/1 254/645/1 255/646/1 +f 244/647/11 239/648/11 248/649/11 234/650/11 +f 251/651/11 253/652/11 255/653/11 254/654/11 +f 237/617/3 245/655/3 242/656/3 243/657/3 +f 233/658/1 238/620/1 239/659/1 244/660/1 +f 252/661/3 250/662/3 253/663/3 251/664/3 +f 235/665/20 233/666/20 244/667/20 234/668/20 +f 243/669/11 242/670/11 241/671/11 247/672/11 +f 234/673/3 248/674/3 246/621/3 235/675/3 +f 260/676/20 261/677/20 267/678/20 271/679/20 +f 262/680/20 270/681/20 272/682/20 263/683/20 +f 259/684/11 270/685/11 262/686/11 257/687/11 +f 271/688/1 265/689/1 264/690/1 260/676/1 +f 273/691/11 280/692/11 274/693/11 276/694/11 +f 269/695/14 264/696/14 265/697/14 266/698/14 +f 260/699/11 264/700/11 269/701/11 261/702/11 +f 280/703/1 273/704/1 278/705/1 279/706/1 +f 268/707/17 263/708/17 272/709/17 258/710/17 +f 275/711/17 277/712/17 279/713/17 278/714/17 +f 261/677/3 269/715/3 266/716/3 267/717/3 +f 257/718/1 262/680/1 263/719/1 268/720/1 +f 276/721/3 274/722/3 277/723/3 275/724/3 +f 259/725/14 257/726/14 268/727/14 258/728/14 +f 267/729/17 266/730/17 265/731/17 271/732/17 +f 258/733/3 272/734/3 270/681/3 259/735/3 +f 284/736/19 285/737/19 291/738/19 295/739/19 +f 286/740/19 294/741/19 296/742/19 287/743/19 +f 283/744/22 294/745/22 286/746/22 281/747/22 +f 295/748/1 289/749/1 288/750/1 284/736/1 +f 297/751/22 304/752/22 298/753/22 300/754/22 +f 293/755/13 288/756/13 289/757/13 290/758/13 +f 284/759/22 288/760/22 293/761/22 285/762/22 +f 304/763/1 297/764/1 302/765/1 303/766/1 +f 292/767/16 287/768/16 296/769/16 282/770/16 +f 299/771/16 301/772/16 303/773/16 302/774/16 +f 285/737/3 293/775/3 290/776/3 291/777/3 +f 281/778/1 286/740/1 287/779/1 292/780/1 +f 300/781/3 298/782/3 301/783/3 299/784/3 +f 283/785/13 281/786/13 292/787/13 282/788/13 +f 291/789/16 290/790/16 289/791/16 295/792/16 +f 282/793/3 296/794/3 294/741/3 283/795/3 +f 308/796/13 309/797/13 315/798/13 319/799/13 +f 310/800/13 318/801/13 320/802/13 311/803/13 +f 307/804/16 318/805/16 310/806/16 305/807/16 +f 319/808/1 313/809/1 312/810/1 308/796/1 +f 321/811/16 328/812/16 322/813/16 324/814/16 +f 317/815/19 312/816/19 313/817/19 314/818/19 +f 308/819/16 312/820/16 317/821/16 309/822/16 +f 328/823/1 321/824/1 326/825/1 327/826/1 +f 316/827/22 311/828/22 320/829/22 306/830/22 +f 323/831/22 325/832/22 327/833/22 326/834/22 +f 309/797/3 317/835/3 314/836/3 315/837/3 +f 305/838/1 310/800/1 311/839/1 316/840/1 +f 324/841/3 322/842/3 325/843/3 323/844/3 +f 307/845/19 305/846/19 316/847/19 306/848/19 +f 315/849/22 314/850/22 313/851/22 319/852/22 +f 306/853/3 320/854/3 318/801/3 307/855/3 +f 332/856/16 333/857/16 339/858/16 343/859/16 +f 334/860/16 342/861/16 344/862/16 335/863/16 +f 331/864/19 342/865/19 334/866/19 329/867/19 +f 343/868/1 337/869/1 336/870/1 332/856/1 +f 345/871/19 352/872/19 346/873/19 348/874/19 +f 341/875/22 336/876/22 337/877/22 338/878/22 +f 332/879/19 336/880/19 341/881/19 333/882/19 +f 352/883/1 345/884/1 350/885/1 351/886/1 +f 340/887/13 335/888/13 344/889/13 330/890/13 +f 347/891/13 349/892/13 351/893/13 350/894/13 +f 333/857/3 341/895/3 338/896/3 339/897/3 +f 329/898/1 334/860/1 335/899/1 340/900/1 +f 348/901/3 346/902/3 349/903/3 347/904/3 +f 331/905/22 329/906/22 340/907/22 330/908/22 +f 339/909/13 338/910/13 337/911/13 343/912/13 +f 330/913/3 344/914/3 342/861/3 331/915/3 +f 356/916/22 357/917/22 363/918/22 367/919/22 +f 358/920/22 366/921/22 368/922/22 359/923/22 +f 355/924/13 366/925/13 358/926/13 353/927/13 +f 367/928/1 361/929/1 360/930/1 356/916/1 +f 369/931/13 376/932/13 370/933/13 372/934/13 +f 365/935/16 360/936/16 361/937/16 362/938/16 +f 356/939/13 360/940/13 365/941/13 357/942/13 +f 376/943/1 369/944/1 374/945/1 375/946/1 +f 364/947/19 359/948/19 368/949/19 354/950/19 +f 371/951/19 373/952/19 375/953/19 374/954/19 +f 357/917/3 365/955/3 362/956/3 363/957/3 +f 353/958/1 358/920/1 359/959/1 364/960/1 +f 372/961/3 370/962/3 373/963/3 371/964/3 +f 355/965/16 353/966/16 364/967/16 354/968/16 +f 363/969/19 362/970/19 361/971/19 367/972/19 +f 354/973/3 368/974/3 366/921/3 355/975/3 +f 380/976/21 381/977/21 387/978/21 391/979/21 +f 382/980/21 390/981/21 392/982/21 383/983/21 +f 379/984/12 390/985/12 382/986/12 377/987/12 +f 391/988/1 385/989/1 384/990/1 380/976/1 +f 393/991/12 400/992/12 394/993/12 396/994/12 +f 389/995/15 384/996/15 385/997/15 386/998/15 +f 380/999/12 384/1000/12 389/1001/12 381/1002/12 +f 400/1003/1 393/1004/1 398/1005/1 399/1006/1 +f 388/1007/18 383/1008/18 392/1009/18 378/1010/18 +f 395/1011/18 397/1012/18 399/1013/18 398/1014/18 +f 381/977/3 389/1015/3 386/1016/3 387/1017/3 +f 377/1018/1 382/980/1 383/1019/1 388/1020/1 +f 396/1021/3 394/1022/3 397/1023/3 395/1024/3 +f 379/1025/15 377/1026/15 388/1027/15 378/1028/15 +f 387/1029/18 386/1030/18 385/1031/18 391/1032/18 +f 378/1033/3 392/1034/3 390/981/3 379/1035/3 +f 404/1036/15 405/1037/15 411/1038/15 415/1039/15 +f 406/1040/15 414/1041/15 416/1042/15 407/1043/15 +f 403/1044/18 414/1045/18 406/1046/18 401/1047/18 +f 415/1048/1 409/1049/1 408/1050/1 404/1036/1 +f 417/1051/18 424/1052/18 418/1053/18 420/1054/18 +f 413/1055/21 408/1056/21 409/1057/21 410/1058/21 +f 404/1059/18 408/1060/18 413/1061/18 405/1062/18 +f 424/1063/1 417/1064/1 422/1065/1 423/1066/1 +f 412/1067/12 407/1068/12 416/1069/12 402/1070/12 +f 419/1071/12 421/1072/12 423/1073/12 422/1074/12 +f 405/1037/3 413/1075/3 410/1076/3 411/1077/3 +f 401/1078/1 406/1040/1 407/1079/1 412/1080/1 +f 420/1081/3 418/1082/3 421/1083/3 419/1084/3 +f 403/1085/21 401/1086/21 412/1087/21 402/1088/21 +f 411/1089/12 410/1090/12 409/1091/12 415/1092/12 +f 402/1093/3 416/1094/3 414/1041/3 403/1095/3 +f 428/1096/12 429/1097/12 435/1098/12 439/1099/12 +f 430/1100/12 438/1101/12 440/1102/12 431/1103/12 +f 427/1104/15 438/1105/15 430/1106/15 425/1107/15 +f 439/1108/1 433/1109/1 432/1110/1 428/1096/1 +f 441/1111/15 448/1112/15 442/1113/15 444/1114/15 +f 437/1115/18 432/1116/18 433/1117/18 434/1118/18 +f 428/1119/15 432/1120/15 437/1121/15 429/1122/15 +f 448/1123/1 441/1124/1 446/1125/1 447/1126/1 +f 436/1127/21 431/1128/21 440/1129/21 426/1130/21 +f 443/1131/21 445/1132/21 447/1133/21 446/1134/21 +f 429/1097/3 437/1135/3 434/1136/3 435/1137/3 +f 425/1138/1 430/1100/1 431/1139/1 436/1140/1 +f 444/1141/3 442/1142/3 445/1143/3 443/1144/3 +f 427/1145/18 425/1146/18 436/1147/18 426/1148/18 +f 435/1149/21 434/1150/21 433/1151/21 439/1152/21 +f 426/1153/3 440/1154/3 438/1101/3 427/1155/3 +f 452/1156/18 453/1157/18 459/1158/18 463/1159/18 +f 454/1160/18 462/1161/18 464/1162/18 455/1163/18 +f 451/1164/21 462/1165/21 454/1166/21 449/1167/21 +f 463/1168/1 457/1169/1 456/1170/1 452/1156/1 +f 465/1171/21 472/1172/21 466/1173/21 468/1174/21 +f 461/1175/12 456/1176/12 457/1177/12 458/1178/12 +f 452/1179/21 456/1180/21 461/1181/21 453/1182/21 +f 472/1183/1 465/1184/1 470/1185/1 471/1186/1 +f 460/1187/15 455/1188/15 464/1189/15 450/1190/15 +f 467/1191/15 469/1192/15 471/1193/15 470/1194/15 +f 453/1157/3 461/1195/3 458/1196/3 459/1197/3 +f 449/1198/1 454/1160/1 455/1199/1 460/1200/1 +f 468/1201/3 466/1202/3 469/1203/3 467/1204/3 +f 451/1205/12 449/1206/12 460/1207/12 450/1208/12 +f 459/1209/15 458/1210/15 457/1211/15 463/1212/15 +f 450/1213/3 464/1214/3 462/1161/3 451/1215/3 +f 476/1216/4 477/1217/4 483/1218/4 487/1219/4 +f 478/1220/4 486/1221/4 488/1222/4 479/1223/4 +f 475/1224/6 486/1225/6 478/1226/6 473/1227/6 +f 487/1228/1 481/1229/1 480/1230/1 476/1216/1 +f 489/1231/6 496/1232/6 490/1233/6 492/1234/6 +f 485/1235/5 480/1236/5 481/1237/5 482/1238/5 +f 476/1239/6 480/1240/6 485/1241/6 477/1242/6 +f 496/1243/1 489/1244/1 494/1245/1 495/1246/1 +f 484/1247/2 479/1248/2 488/1249/2 474/1250/2 +f 491/1251/2 493/1252/2 495/1253/2 494/1254/2 +f 477/1217/3 485/1255/3 482/1256/3 483/1257/3 +f 473/1258/1 478/1220/1 479/1259/1 484/1260/1 +f 492/1261/3 490/1262/3 493/1263/3 491/1264/3 +f 475/1265/5 473/1266/5 484/1267/5 474/1268/5 +f 483/1269/2 482/1270/2 481/1271/2 487/1272/2 +f 474/1273/3 488/1274/3 486/1221/3 475/1275/3 +f 500/1276/5 501/1277/5 507/1278/5 511/1279/5 +f 502/1280/5 510/1281/5 512/1282/5 503/1283/5 +f 499/1284/2 510/1285/2 502/1286/2 497/1287/2 +f 511/1288/1 505/1289/1 504/1290/1 500/1276/1 +f 513/1291/2 520/1292/2 514/1293/2 516/1294/2 +f 509/1295/4 504/1296/4 505/1297/4 506/1298/4 +f 500/1299/2 504/1300/2 509/1301/2 501/1302/2 +f 520/1303/1 513/1304/1 518/1305/1 519/1306/1 +f 508/1307/6 503/1308/6 512/1309/6 498/1310/6 +f 515/1311/6 517/1312/6 519/1313/6 518/1314/6 +f 501/1277/3 509/1315/3 506/1316/3 507/1317/3 +f 497/1318/1 502/1280/1 503/1319/1 508/1320/1 +f 516/1321/3 514/1322/3 517/1323/3 515/1324/3 +f 499/1325/4 497/1326/4 508/1327/4 498/1328/4 +f 507/1329/6 506/1330/6 505/1331/6 511/1332/6 +f 498/1333/3 512/1334/3 510/1281/3 499/1335/3 +f 524/1336/2 525/1337/2 531/1338/2 535/1339/2 +f 526/1340/2 534/1341/2 536/1342/2 527/1343/2 +f 523/1344/4 534/1345/4 526/1346/4 521/1347/4 +f 535/1348/1 529/1349/1 528/1350/1 524/1336/1 +f 537/1351/4 544/1352/4 538/1353/4 540/1354/4 +f 533/1355/6 528/1356/6 529/1357/6 530/1358/6 +f 524/1359/4 528/1360/4 533/1361/4 525/1362/4 +f 544/1363/1 537/1364/1 542/1365/1 543/1366/1 +f 532/1367/5 527/1368/5 536/1369/5 522/1370/5 +f 539/1371/5 541/1372/5 543/1373/5 542/1374/5 +f 525/1337/3 533/1375/3 530/1376/3 531/1377/3 +f 521/1378/1 526/1340/1 527/1379/1 532/1380/1 +f 540/1381/3 538/1382/3 541/1383/3 539/1384/3 +f 523/1385/6 521/1386/6 532/1387/6 522/1388/6 +f 531/1389/5 530/1390/5 529/1391/5 535/1392/5 +f 522/1393/3 536/1394/3 534/1341/3 523/1395/3 +f 550/1396/6 552/1397/6 548/1398/6 546/1399/6 +f 545/1400/2 547/1401/2 551/1402/2 549/1403/2 +f 552/1404/5 550/1405/5 549/1406/5 551/1407/5 +f 550/1408/1 546/1409/1 545/1410/1 549/1411/1 +f 546/1399/4 548/1398/4 547/1401/4 545/1400/4 +f 548/1412/3 552/1413/3 551/1414/3 547/1415/3 +f 558/1416/6 554/1417/6 556/1418/6 560/1419/6 +f 553/1420/2 557/1421/2 559/1422/2 555/1423/2 +f 560/1424/4 559/1425/4 557/1426/4 558/1427/4 +f 558/1428/1 557/1429/1 553/1430/1 554/1431/1 +f 554/1417/5 553/1420/5 555/1423/5 556/1418/5 +f 556/1432/3 555/1433/3 559/1434/3 560/1435/3 +f 561/1436/5 563/1437/5 564/1438/5 562/1439/5 +f 563/1440/1 567/1441/1 568/1442/1 564/1443/1 +f 567/1444/4 565/1445/4 566/1446/4 568/1447/4 +f 565/1448/3 561/1449/3 562/1450/3 566/1451/3 +f 563/1452/6 561/1453/6 565/1454/6 567/1455/6 +f 568/1456/2 566/1457/2 562/1458/2 564/1459/2 +f 577/1460/1 578/1461/1 575/1462/1 571/1463/1 +f 578/1464/23 579/1465/23 573/1466/23 575/1467/23 +f 579/1468/3 576/1469/3 569/1470/3 573/1471/3 +f 570/1472/1 583/1473/1 584/1474/1 574/1475/1 +f 575/1467/2 573/1466/2 569/1476/2 571/1477/2 +f 572/1478/24 580/1479/24 576/1469/24 579/1468/24 +f 574/1480/4 572/1481/4 579/1465/4 578/1464/4 +f 570/1472/25 574/1475/25 578/1461/25 577/1460/25 +f 574/1480/4 584/1482/4 582/1483/4 572/1481/4 +f 572/1478/3 582/1484/3 581/1485/3 580/1479/3 +f 587/1486/4 582/1483/4 584/1482/4 586/1487/4 +f 585/1488/5 583/1489/5 581/1490/5 588/1491/5 +f 581/1485/3 582/1484/3 587/1492/3 588/1493/3 +f 584/1474/1 583/1473/1 585/1494/1 586/1495/1 +f 597/1496/1 591/1497/1 595/1498/1 598/1499/1 +f 598/1500/26 595/1501/26 593/1502/26 599/1503/26 +f 599/1504/3 593/1505/3 589/1506/3 596/1507/3 +f 590/1508/1 594/1509/1 604/1510/1 603/1511/1 +f 595/1501/2 591/1512/2 589/1513/2 593/1502/2 +f 592/1514/24 599/1504/24 596/1507/24 600/1515/24 +f 594/1516/5 598/1500/5 599/1503/5 592/1517/5 +f 590/1508/25 597/1496/25 598/1499/25 594/1509/25 +f 594/1516/5 592/1517/5 602/1518/5 604/1519/5 +f 592/1514/3 600/1515/3 601/1520/3 602/1521/3 +f 607/1522/5 606/1523/5 604/1519/5 602/1518/5 +f 605/1524/4 608/1525/4 601/1526/4 603/1527/4 +f 601/1520/3 608/1528/3 607/1529/3 602/1521/3 +f 604/1510/1 606/1530/1 605/1531/1 603/1511/1 From 952d3591e406e62e4ca21a511d9d32ea5ff75e0e Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sat, 9 Dec 2023 00:00:47 +0100 Subject: [PATCH 08/13] Fully implemented power generation --- .../tileentity/UniversalMotorTileEntity.java | 149 ++++++++++++++++-- .../tileentity/CustomKineticBlockEntity.java | 52 ------ 2 files changed, 133 insertions(+), 68 deletions(-) diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index 2b11a31..6f0aced 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -3,16 +3,24 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.function.Supplier; import com.mojang.datafixers.util.Pair; +import com.simibubi.create.foundation.utility.Lang; import blusunrize.immersiveengineering.api.energy.AveragingEnergyStorage; +import blusunrize.immersiveengineering.api.energy.WrappingEnergyStorage; import blusunrize.immersiveengineering.api.utils.shapes.CachedShapesWithTransform; import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces; import blusunrize.immersiveengineering.common.util.MultiblockCapability; +import blusunrize.immersiveengineering.common.util.ResettableCapability; +import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; +import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; @@ -44,7 +52,7 @@ public class UniversalMotorTileEntity extends KineticMultiblockPartTileEntity REDSTONE_POS = Set.of(new BlockPos(0, 1, 2)); public static final BlockPos ENERGY_POS = new BlockPos(0, 1, 2); - public static final BlockPos STATOR_ENERGY_POS = new BlockPos(2, 0, 2); + public static final BlockPos ENERGY_POS_STATOR = new BlockPos(2, 0, 2); protected Mode mode = Mode.MOTOR; @@ -61,28 +69,47 @@ public UniversalMotorTileEntity(BlockEntityType type, this.energyMain = new AveragingEnergyStorage(4096); this.energyMainCap = MultiblockCapability.make( - this, be -> be.energyMainCap, KineticMultiblockPartTileEntity::master, registerEnergyIO(this.energyMain, this::isMotor, this::isGenerator) + this, be -> be.energyMainCap, UniversalMotorTileEntity::master, registerEnergyIO(this.energyMain, this) ); this.energyStator = new AveragingEnergyStorage(1024); this.energyStatorCap = MultiblockCapability.make( - this, be -> be.energyStatorCap, KineticMultiblockPartTileEntity::master, registerEnergyInput(this.energyStator) + this, be -> be.energyStatorCap, UniversalMotorTileEntity::master, registerEnergyInput(this.energyStator) ); } + private ResettableCapability registerEnergyIO(IEnergyStorage directStorage, UniversalMotorTileEntity te){ + final LazyOptional lazy = LazyOptional.of(te::master); + + Supplier isMotor = () -> { + UniversalMotorTileEntity master = lazy.orElseGet(null); + if(master == null) + return false; + return master.isMotor(); + }; + + Runnable setChanged = () -> { + UniversalMotorTileEntity master = lazy.orElseGet(null); + if(master == null) + return; + + master.setChanged(); + }; + + return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, isMotor, () -> false, setChanged)); + } + @Override public LazyOptional getCapability(Capability cap, Direction side){ - if(cap == CapabilityEnergy.ENERGY && (side == null || isEnergyPos(ENERGY_POS, side))){ - return this.energyMainCap.getAndCast(); - } - if(cap == CapabilityEnergy.ENERGY && (side == null || isEnergyPos(STATOR_ENERGY_POS, side))){ - return this.energyStatorCap.getAndCast(); + if(cap == CapabilityEnergy.ENERGY){ + if(isEnergyPos(ENERGY_POS, side)) return this.energyMainCap.getAndCast(); + if(isEnergyPos(ENERGY_POS_STATOR, side)) return this.energyStatorCap.getAndCast(); } return super.getCapability(cap, side); } public boolean isEnergyPos(BlockPos pos, Direction side){ - return this.posInMultiblock.equals(pos) && side == Direction.UP; + return this.posInMultiblock.equals(pos) && (side == null || side == Direction.UP); } @Override @@ -92,6 +119,7 @@ public void readCustom(CompoundTag tag, boolean clientPacket){ CompoundTag energy = tag.getCompound("energy"); this.energyMain.deserializeNBT(energy.get("main")); this.energyStator.deserializeNBT(energy.get("stator")); + this.lastEnergyUsed = energy.getFloat("lastused"); this.mode = Mode.values()[tag.getInt("mode")]; } @@ -103,6 +131,7 @@ public void writeCustom(CompoundTag tag, boolean clientPacket){ CompoundTag energy = new CompoundTag(); energy.put("main", this.energyMain.serializeNBT()); energy.put("stator", this.energyStator.serializeNBT()); + energy.putFloat("lastused", this.lastEnergyUsed); tag.put("energy", energy); tag.putInt("mode", this.mode.id()); @@ -117,12 +146,20 @@ public void changeMode(Mode newMode){ if(newMode == null || newMode == this.mode) return; + if(this.mode == Mode.MOTOR && newMode == Mode.GENERATOR){ + if(this.generatedSpeed != 0){ + this.generatedSpeed = 0; + updateGeneratedRotation(); + } + } + this.mode = newMode; // Dump energy on mode switch this.energyMain.setStoredEnergy(0); setChanged(); + updateMasterBlock(null, true); } public Mode getMode(){ @@ -157,20 +194,53 @@ public void tickServer(){ changeMode(isRSDisabled() ? Mode.GENERATOR : Mode.MOTOR); } + private int energyGeneration(float baseFE, float energyUsed){ + return Mth.floor(baseFE * (getSpeed() * energyUsed)); + } + + private float lastEnergyUsed = 0.0F; private void asGenerator(){ - if(this.generatedSpeed != 0){ - this.generatedSpeed = 0; - updateGeneratedRotation(); - } + float energyUsed = this.energyStator.extractEnergy(this.energyStator.getMaxEnergyStored(), false) / (float) this.energyStator.getMaxEnergyStored(); - @SuppressWarnings("unused") - int amount = this.energyStator.extractEnergy(this.energyStator.getMaxEnergyStored(), false); + int energy = energyGeneration(14F, energyUsed); + if(this.lastEnergyUsed != energyUsed) + updateMasterBlock(null, true); + this.lastEnergyUsed = energyUsed; - // TODO Rotation dependant power generation + BlockEntity te = getLevelNonnull().getBlockEntity(getBlockPosForPos(ENERGY_POS.relative(Direction.UP))); + if(te != null){ + te.getCapability(CapabilityEnergy.ENERGY, Direction.DOWN).ifPresent(s -> { + s.receiveEnergy(energy, false); + }); + } setChanged(); } + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking){ + boolean superAdded = super.addToGoggleTooltip(tooltip, isPlayerSneaking); + + if(!isMaster() || !isGenerator()) + return superAdded; + + int energy = energyGeneration(14F, this.lastEnergyUsed); + + Lang.text("Energy Generation") + .style(ChatFormatting.GRAY) + .forGoggles(tooltip); + + Lang.number(energy) + .text("IF") + .space() + .style(ChatFormatting.AQUA) + .add(Lang.translate("gui.goggles.at_current_speed") + .style(ChatFormatting.DARK_GRAY)) + .forGoggles(tooltip, 1); + + return true; + } + private void asMotor(){ int amount = this.energyMain.extractEnergy(this.energyMain.getMaxEnergyStored(), false); @@ -329,4 +399,51 @@ public int id(){ return this.ordinal(); } } + + + /** This is a modified variant of IE-{@link WrappingEnergyStorage} */ + public static record ModeSupportedWrappingEnergyStorage(IEnergyStorage storage, Supplier allowInsert, Supplier allowExtract, Runnable afterTransfer) implements IEnergyStorage{ + + @Override + public int receiveEnergy(int maxReceive, boolean simulate){ + if(!allowInsert.get()) + return 0; + + return postTransfer(storage.receiveEnergy(maxReceive, simulate), simulate); + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate){ + if(!allowExtract.get()) + return 0; + + return postTransfer(storage.extractEnergy(maxExtract, simulate), simulate); + } + + @Override + public int getEnergyStored(){ + return storage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(){ + return storage.getMaxEnergyStored(); + } + + @Override + public boolean canExtract(){ + return allowExtract.get(); + } + + @Override + public boolean canReceive(){ + return allowInsert.get(); + } + + private int postTransfer(int transferred, boolean simulate){ + if(!simulate && transferred > 0) + afterTransfer.run(); + return transferred; + } + } } diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java index c03b0e7..cac352f 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java @@ -4,7 +4,6 @@ import java.util.EnumMap; import java.util.List; import java.util.Objects; -import java.util.function.Supplier; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -60,10 +59,6 @@ protected void write(CompoundTag compound, boolean clientPacket){ public abstract void readCustom(CompoundTag tag, boolean clientPacket); public abstract void writeCustom(CompoundTag tag, boolean clientPacket); - protected ResettableCapability registerEnergyIO(IEnergyStorage directStorage, Supplier allowInsert, Supplier allowExtract){ - return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, allowInsert, allowExtract, this::setChanged)); - } - // ------------------------------------------------------------ // Everything copied from IEBaseBlockEntity is below this point // ------------------------------------------------------------ @@ -246,51 +241,4 @@ public final void remove(){ public void setRemovedOE(){ } - - - /** This is a modified variant of IE-{@link WrappingEnergyStorage} */ - public static record ModeSupportedWrappingEnergyStorage(IEnergyStorage storage, Supplier allowInsert, Supplier allowExtract, Runnable afterTransfer) implements IEnergyStorage{ - - @Override - public int receiveEnergy(int maxReceive, boolean simulate){ - if(!allowInsert.get()) - return 0; - - return postTransfer(storage.receiveEnergy(maxReceive, simulate), simulate); - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate){ - if(!allowExtract.get()) - return 0; - - return postTransfer(storage.extractEnergy(maxExtract, simulate), simulate); - } - - @Override - public int getEnergyStored(){ - return storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(){ - return storage.getMaxEnergyStored(); - } - - @Override - public boolean canExtract(){ - return allowExtract.get(); - } - - @Override - public boolean canReceive(){ - return allowInsert.get(); - } - - private int postTransfer(int transferred, boolean simulate){ - if(!simulate && transferred > 0) - afterTransfer.run(); - return transferred; - } - } } From 31b05bc48874ecedb46ac2dec1a4481c00bc2d97 Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sat, 9 Dec 2023 03:28:19 +0100 Subject: [PATCH 09/13] Fix create goggles not showing SU capacity. (Motor Mode) --- .../tileentity/UniversalMotorTileEntity.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index 6f0aced..82ba0f7 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -122,6 +122,7 @@ public void readCustom(CompoundTag tag, boolean clientPacket){ this.lastEnergyUsed = energy.getFloat("lastused"); this.mode = Mode.values()[tag.getInt("mode")]; + this.generatedSpeed = tag.getInt("generatedspeed"); } @Override @@ -135,6 +136,7 @@ public void writeCustom(CompoundTag tag, boolean clientPacket){ tag.put("energy", energy); tag.putInt("mode", this.mode.id()); + tag.putInt("generatedspeed", this.generatedSpeed); } @Override @@ -203,9 +205,10 @@ private void asGenerator(){ float energyUsed = this.energyStator.extractEnergy(this.energyStator.getMaxEnergyStored(), false) / (float) this.energyStator.getMaxEnergyStored(); int energy = energyGeneration(14F, energyUsed); - if(this.lastEnergyUsed != energyUsed) - updateMasterBlock(null, true); - this.lastEnergyUsed = energyUsed; + if(this.lastEnergyUsed != energyUsed){ + this.lastEnergyUsed = energyUsed; + setChanged(); + } BlockEntity te = getLevelNonnull().getBlockEntity(getBlockPosForPos(ENERGY_POS.relative(Direction.UP))); if(te != null){ @@ -213,8 +216,6 @@ private void asGenerator(){ s.receiveEnergy(energy, false); }); } - - setChanged(); } @Override @@ -244,9 +245,9 @@ public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneak private void asMotor(){ int amount = this.energyMain.extractEnergy(this.energyMain.getMaxEnergyStored(), false); - float f = maxSpeed * (amount / (float) this.energyMain.getMaxEnergyStored()); - if(this.generatedSpeed != (int) f){ - this.generatedSpeed = (int) f; + int speed = (int) (maxSpeed * (amount / (float) this.energyMain.getMaxEnergyStored())); + if(this.generatedSpeed != speed){ + this.generatedSpeed = speed; updateGeneratedRotation(); } From af44000908c64a0b23629b394d72d93a345567e4 Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sat, 9 Dec 2023 03:59:18 +0100 Subject: [PATCH 10/13] Add universal to pickaxe-tool tag --- .../twistedgate/overengineered/common/data/OEBlockTags.java | 6 +++++- src/generated/resources/.cache/cache | 1 + .../data/minecraft/tags/blocks/mineable/pickaxe.json | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json diff --git a/src/datagen/java/twistedgate/overengineered/common/data/OEBlockTags.java b/src/datagen/java/twistedgate/overengineered/common/data/OEBlockTags.java index b0ef423..49a8aa1 100644 --- a/src/datagen/java/twistedgate/overengineered/common/data/OEBlockTags.java +++ b/src/datagen/java/twistedgate/overengineered/common/data/OEBlockTags.java @@ -4,8 +4,10 @@ import net.minecraft.data.DataGenerator; import net.minecraft.data.tags.BlockTagsProvider; +import net.minecraft.tags.BlockTags; import net.minecraftforge.common.data.ExistingFileHelper; import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.common.OEContent; public class OEBlockTags extends BlockTagsProvider{ public OEBlockTags(DataGenerator pGenerator, @Nullable ExistingFileHelper existingFileHelper){ @@ -14,6 +16,8 @@ public OEBlockTags(DataGenerator pGenerator, @Nullable ExistingFileHelper existi @Override protected void addTags(){ - + tag(BlockTags.MINEABLE_WITH_PICKAXE).add( + OEContent.Multiblock.UNIVERSAL_MOTOR.get() + ); } } diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 0f8e735..d219a7e 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -2,3 +2,4 @@ ad9c892823ca17a89e7a83e00e81977bbed3186f assets/overengineered/models/item/universal_motor.json a7cc436670b3e3b5998a4565da4ad57254c0426b assets/overengineered/models/multiblock/universal_motor_mirrored_split.json bd210bf65b62269477bac798b659190efaa3e705 assets/overengineered/models/multiblock/universal_motor_split.json +09393cf4a1c6326719b0cbaa91989e310dfa800b data/minecraft/tags/blocks/mineable/pickaxe.json diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 0000000..504c273 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "overengineered:universal_motor" + ] +} \ No newline at end of file From f98d3aa14c144bc760b5411832e02a0397eaecdc Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sat, 9 Dec 2023 06:46:52 +0100 Subject: [PATCH 11/13] Breaking a multiblock block drops original block --- .../common/data/OEDataGenerator.java | 2 + .../data/loot/MBOriginalBlockLootEntry.java | 58 ++++++++++++++++++ .../common/data/loot/OEBlockLoot.java | 60 +++++++++++++++++++ .../common/data/loot/OELootFunctions.java | 27 +++++++++ .../common/data/loot/OELootGenerator.java | 40 +++++++++++++ src/generated/resources/.cache/cache | 1 + .../loot_tables/blocks/universal_motor.json | 19 ++++++ .../common/blocks/OEMetalMultiblock.java | 2 +- .../common/blocks/UniversalMotorBlock.java | 2 +- .../tileentity/UniversalMotorTileEntity.java | 10 +--- .../CustomHorizontalAxisKineticBlock.java | 2 +- 11 files changed, 211 insertions(+), 12 deletions(-) create mode 100644 src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java create mode 100644 src/datagen/java/twistedgate/overengineered/common/data/loot/OEBlockLoot.java create mode 100644 src/datagen/java/twistedgate/overengineered/common/data/loot/OELootFunctions.java create mode 100644 src/datagen/java/twistedgate/overengineered/common/data/loot/OELootGenerator.java create mode 100644 src/generated/resources/data/overengineered/loot_tables/blocks/universal_motor.json diff --git a/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java b/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java index 425bb7c..358e8e9 100644 --- a/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java +++ b/src/datagen/java/twistedgate/overengineered/common/data/OEDataGenerator.java @@ -11,6 +11,7 @@ import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; import twistedgate.overengineered.OverEngineered; +import twistedgate.overengineered.common.data.loot.OELootGenerator; @EventBusSubscriber(modid = OverEngineered.MODID, bus = Bus.MOD) public class OEDataGenerator{ @@ -26,6 +27,7 @@ public static void generate(GatherDataEvent event){ OEBlockTags blockTags = new OEBlockTags(generator, exhelper); generator.addProvider(blockTags); generator.addProvider(new OEItemTags(generator, blockTags, exhelper)); + generator.addProvider(new OELootGenerator(generator)); generator.addProvider(new OERecipes(generator)); } diff --git a/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java b/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java new file mode 100644 index 0000000..c844157 --- /dev/null +++ b/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java @@ -0,0 +1,58 @@ +package twistedgate.overengineered.common.data.loot; + +import java.util.function.Consumer; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonObject; + +import blusunrize.immersiveengineering.common.util.Utils; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.entries.LootPoolEntryType; +import net.minecraft.world.level.storage.loot.entries.LootPoolSingletonContainer; +import net.minecraft.world.level.storage.loot.functions.LootItemFunction; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; +import twistedgate.overengineered.utils.ResourceUtils; + +public class MBOriginalBlockLootEntry extends LootPoolSingletonContainer{ + public static final ResourceLocation ID = ResourceUtils.oe("multiblock_original_block"); + + protected MBOriginalBlockLootEntry(int pWeight, int pQuality, LootItemCondition[] pConditions, LootItemFunction[] pFunctions){ + super(pWeight, pQuality, pConditions, pFunctions); + } + + @Override + protected void createItemStack(Consumer pStackConsumer, LootContext pLootContext){ + if(pLootContext.hasParam(LootContextParams.BLOCK_ENTITY)) + { + BlockEntity te = pLootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY); + if(te instanceof KineticMultiblockPartTileEntity mbTile){ + Utils.getDrops(mbTile.getOriginalBlock(), + new LootContext.Builder(pLootContext.getLevel()) + .withOptionalParameter(LootContextParams.TOOL, pLootContext.getParamOrNull(LootContextParams.TOOL)) + .withOptionalParameter(LootContextParams.ORIGIN, pLootContext.getParamOrNull(LootContextParams.ORIGIN)) + ).forEach(pStackConsumer); + } + } + } + + public static LootPoolSingletonContainer.Builder builder(){ + return simpleBuilder(MBOriginalBlockLootEntry::new); + } + + @Override + public LootPoolEntryType getType(){ + return OELootFunctions.multiblockOriginalBlock; + } + + public static class Serializer extends LootPoolSingletonContainer.Serializer{ + @Override + protected MBOriginalBlockLootEntry deserialize(JsonObject pObject, JsonDeserializationContext pContext, int pWeight, int pQuality, LootItemCondition[] pConditions, LootItemFunction[] pFunctions){ + return new MBOriginalBlockLootEntry(pWeight, pQuality, pConditions, pFunctions); + } + } +} diff --git a/src/datagen/java/twistedgate/overengineered/common/data/loot/OEBlockLoot.java b/src/datagen/java/twistedgate/overengineered/common/data/loot/OEBlockLoot.java new file mode 100644 index 0000000..df73926 --- /dev/null +++ b/src/datagen/java/twistedgate/overengineered/common/data/loot/OEBlockLoot.java @@ -0,0 +1,60 @@ +package twistedgate.overengineered.common.data.loot; + +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.storage.loot.LootPool; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.LootTable.Builder; +import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition; +import twistedgate.overengineered.common.OEContent; + +public class OEBlockLoot implements Consumer>{ + private BiConsumer out; + + @Override + public void accept(BiConsumer out){ + this.out = out; + + registerMultiblock(OEContent.Multiblock.UNIVERSAL_MOTOR.get()); + } + + private void registerMultiblock(Block b){ + register(b, dropOriginalBlock()); + } + + private LootPool.Builder dropOriginalBlock(){ + return createPoolBuilder().add(MBOriginalBlockLootEntry.builder()); + } + + /* + private LootPool.Builder dropInv(){ + return createPoolBuilder().add(DropInventoryLootEntry.builder()); + } + */ + + private void register(Block b, LootPool.Builder... pools){ + LootTable.Builder builder = LootTable.lootTable(); + for(LootPool.Builder pool:pools) + builder.withPool(pool); + register(b, builder); + } + + private void register(Block b, LootTable.Builder table){ + register(b.getRegistryName(), table); + } + + private void register(ResourceLocation name, LootTable.Builder table){ + out.accept(toTableLoc(name), table); + } + + private LootPool.Builder createPoolBuilder(){ + return LootPool.lootPool().when(ExplosionCondition.survivesExplosion()); + } + + private ResourceLocation toTableLoc(ResourceLocation in){ + return new ResourceLocation(in.getNamespace(), "blocks/" + in.getPath()); + } +} diff --git a/src/datagen/java/twistedgate/overengineered/common/data/loot/OELootFunctions.java b/src/datagen/java/twistedgate/overengineered/common/data/loot/OELootFunctions.java new file mode 100644 index 0000000..41a2ad3 --- /dev/null +++ b/src/datagen/java/twistedgate/overengineered/common/data/loot/OELootFunctions.java @@ -0,0 +1,27 @@ +package twistedgate.overengineered.common.data.loot; + +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.storage.loot.Serializer; +import net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer; +import net.minecraft.world.level.storage.loot.entries.LootPoolEntryType; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; +import twistedgate.overengineered.OverEngineered; + +@EventBusSubscriber(modid = OverEngineered.MODID, bus = Bus.MOD) +public class OELootFunctions{ + public static LootPoolEntryType multiblockOriginalBlock; + + @SubscribeEvent + public static void register(RegistryEvent.Register event){ + multiblockOriginalBlock = registerEntry(MBOriginalBlockLootEntry.ID, new MBOriginalBlockLootEntry.Serializer()); + } + + private static LootPoolEntryType registerEntry(ResourceLocation id, Serializer serializer){ + return Registry.register(Registry.LOOT_POOL_ENTRY_TYPE, id, new LootPoolEntryType(serializer)); + } +} diff --git a/src/datagen/java/twistedgate/overengineered/common/data/loot/OELootGenerator.java b/src/datagen/java/twistedgate/overengineered/common/data/loot/OELootGenerator.java new file mode 100644 index 0000000..9bbd49e --- /dev/null +++ b/src/datagen/java/twistedgate/overengineered/common/data/loot/OELootGenerator.java @@ -0,0 +1,40 @@ +package twistedgate.overengineered.common.data.loot; + +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Supplier; + +import com.mojang.datafixers.util.Pair; + +import net.minecraft.data.DataGenerator; +import net.minecraft.data.loot.LootTableProvider; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.LootTable.Builder; +import net.minecraft.world.level.storage.loot.LootTables; +import net.minecraft.world.level.storage.loot.ValidationContext; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; + +public class OELootGenerator extends LootTableProvider{ + + public OELootGenerator(DataGenerator pGenerator){ + super(pGenerator); + } + + @Override + protected List>>, LootContextParamSet>> getTables(){ + return List.of( + Pair.of(OEBlockLoot::new, LootContextParamSets.BLOCK) + ); + } + + @Override + protected void validate(Map map, ValidationContext validationtracker){ + map.forEach((p_218436_2_, p_218436_3_) -> { + LootTables.validate(validationtracker, p_218436_2_, p_218436_3_); + }); + } +} diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index d219a7e..5385cf5 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -3,3 +3,4 @@ ad9c892823ca17a89e7a83e00e81977bbed3186f assets/overengineered/models/item/unive a7cc436670b3e3b5998a4565da4ad57254c0426b assets/overengineered/models/multiblock/universal_motor_mirrored_split.json bd210bf65b62269477bac798b659190efaa3e705 assets/overengineered/models/multiblock/universal_motor_split.json 09393cf4a1c6326719b0cbaa91989e310dfa800b data/minecraft/tags/blocks/mineable/pickaxe.json +66b1aac1bfde046d0ecdadcb5427d2f2b9cb12dc data/overengineered/loot_tables/blocks/universal_motor.json diff --git a/src/generated/resources/data/overengineered/loot_tables/blocks/universal_motor.json b/src/generated/resources/data/overengineered/loot_tables/blocks/universal_motor.json new file mode 100644 index 0000000..09da081 --- /dev/null +++ b/src/generated/resources/data/overengineered/loot_tables/blocks/universal_motor.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "overengineered:multiblock_original_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java index 44dc55b..2c9ca89 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java @@ -17,7 +17,7 @@ public abstract class OEMetalMultiblock multiblockBEType; public OEMetalMultiblock(MultiblockBEType entityType, Block.Properties props){ - super(props.requiresCorrectToolForDrops().isViewBlocking((state, blockReader, pos) -> false).noOcclusion(), entityType); + super(entityType, props.strength(3, 15).requiresCorrectToolForDrops().isViewBlocking((state, blockReader, pos) -> false).noOcclusion()); this.multiblockBEType = entityType; } diff --git a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java index 1b902c1..aa33c5e 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/UniversalMotorBlock.java @@ -8,6 +8,6 @@ public class UniversalMotorBlock extends OEMetalMultiblock{ public UniversalMotorBlock(){ - super(OETileTypes.UNIVERSAL_MOTOR, Block.Properties.of(Material.METAL).sound(SoundType.METAL).strength(3, 15)); + super(OETileTypes.UNIVERSAL_MOTOR, Block.Properties.of(Material.METAL).sound(SoundType.METAL)); } } diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index 82ba0f7..a19bc9d 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -88,15 +88,7 @@ private ResettableCapability registerEnergyIO(IEnergyStorage dir return master.isMotor(); }; - Runnable setChanged = () -> { - UniversalMotorTileEntity master = lazy.orElseGet(null); - if(master == null) - return; - - master.setChanged(); - }; - - return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, isMotor, () -> false, setChanged)); + return registerCapability(new ModeSupportedWrappingEnergyStorage(directStorage, isMotor, () -> false, this::setChanged)); } @Override diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java index bb37e48..ad2ad87 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java +++ b/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java @@ -53,7 +53,7 @@ public abstract class CustomHorizontalAxisKineticBlock makeEntity; protected final boolean notNormalBlock; - public CustomHorizontalAxisKineticBlock(Properties props, MultiblockBEType entityType){ + public CustomHorizontalAxisKineticBlock(MultiblockBEType entityType, Properties props){ super(props); this.makeEntity = entityType; this.notNormalBlock = !defaultBlockState().canOcclude(); From b7c89404807e6d41a82ac5c8dd4f54de6fed5945 Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sat, 9 Dec 2023 23:22:15 +0100 Subject: [PATCH 12/13] Moving everything out of experimental package --- .../common/data/loot/MBOriginalBlockLootEntry.java | 2 +- .../common/blocks/CustomHorizontalAxisKineticBlock.java | 6 +++--- .../overengineered/common/blocks/OEMetalMultiblock.java | 3 +-- .../common/blocks/tileentity/CustomKineticBlockEntity.java | 2 +- .../blocks/tileentity/KineticMultiblockPartTileEntity.java | 2 +- .../common/blocks/tileentity/UniversalMotorTileEntity.java | 1 - .../common/multiblock/OETemplateMultiblock.java | 2 +- 7 files changed, 8 insertions(+), 10 deletions(-) rename src/main/java/twistedgate/overengineered/{experimental => }/common/blocks/CustomHorizontalAxisKineticBlock.java (97%) rename src/main/java/twistedgate/overengineered/{experimental => }/common/blocks/tileentity/CustomKineticBlockEntity.java (99%) rename src/main/java/twistedgate/overengineered/{experimental => }/common/blocks/tileentity/KineticMultiblockPartTileEntity.java (99%) diff --git a/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java b/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java index c844157..3230819 100644 --- a/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java +++ b/src/datagen/java/twistedgate/overengineered/common/data/loot/MBOriginalBlockLootEntry.java @@ -15,7 +15,7 @@ import net.minecraft.world.level.storage.loot.functions.LootItemFunction; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; -import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; +import twistedgate.overengineered.common.blocks.tileentity.KineticMultiblockPartTileEntity; import twistedgate.overengineered.utils.ResourceUtils; public class MBOriginalBlockLootEntry extends LootPoolSingletonContainer{ diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java b/src/main/java/twistedgate/overengineered/common/blocks/CustomHorizontalAxisKineticBlock.java similarity index 97% rename from src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java rename to src/main/java/twistedgate/overengineered/common/blocks/CustomHorizontalAxisKineticBlock.java index ad2ad87..7041978 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/CustomHorizontalAxisKineticBlock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/CustomHorizontalAxisKineticBlock.java @@ -1,4 +1,4 @@ -package twistedgate.overengineered.experimental.common.blocks; +package twistedgate.overengineered.common.blocks; import java.util.List; import java.util.function.BiFunction; @@ -41,8 +41,8 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.common.util.LazyOptional; -import twistedgate.overengineered.experimental.common.blocks.tileentity.CustomKineticBlockEntity; -import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; +import twistedgate.overengineered.common.blocks.tileentity.CustomKineticBlockEntity; +import twistedgate.overengineered.common.blocks.tileentity.KineticMultiblockPartTileEntity; /** * This has a lot of things copied-pasted from {@link IEMultiblockBlock} and {@link IEEntityBlock}, but only the important bits. diff --git a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java index 2c9ca89..6817a95 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/OEMetalMultiblock.java @@ -10,8 +10,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition.Builder; import twistedgate.overengineered.common.blocks.ticking.OECommonTickableTile; -import twistedgate.overengineered.experimental.common.blocks.CustomHorizontalAxisKineticBlock; -import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; +import twistedgate.overengineered.common.blocks.tileentity.KineticMultiblockPartTileEntity; public abstract class OEMetalMultiblock & OECommonTickableTile> extends CustomHorizontalAxisKineticBlock{ private final MultiblockBEType multiblockBEType; diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/CustomKineticBlockEntity.java similarity index 99% rename from src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java rename to src/main/java/twistedgate/overengineered/common/blocks/tileentity/CustomKineticBlockEntity.java index cac352f..797a3ba 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/CustomKineticBlockEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/CustomKineticBlockEntity.java @@ -1,4 +1,4 @@ -package twistedgate.overengineered.experimental.common.blocks.tileentity; +package twistedgate.overengineered.common.blocks.tileentity; import java.util.ArrayList; import java.util.EnumMap; diff --git a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/KineticMultiblockPartTileEntity.java similarity index 99% rename from src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java rename to src/main/java/twistedgate/overengineered/common/blocks/tileentity/KineticMultiblockPartTileEntity.java index 92882e7..7a403a3 100644 --- a/src/main/java/twistedgate/overengineered/experimental/common/blocks/tileentity/KineticMultiblockPartTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/KineticMultiblockPartTileEntity.java @@ -1,4 +1,4 @@ -package twistedgate.overengineered.experimental.common.blocks.tileentity; +package twistedgate.overengineered.common.blocks.tileentity; import java.util.Collection; import java.util.Set; diff --git a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java index a19bc9d..55c5ab7 100644 --- a/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java +++ b/src/main/java/twistedgate/overengineered/common/blocks/tileentity/UniversalMotorTileEntity.java @@ -32,7 +32,6 @@ import net.minecraftforge.energy.IEnergyStorage; import twistedgate.overengineered.common.blocks.ticking.OECommonTickableTile; import twistedgate.overengineered.common.multiblock.UniversalMotorMultiblock; -import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; import twistedgate.overengineered.utils.AABBUtils; /** diff --git a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java index 51ddaa9..89d9aa4 100644 --- a/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java +++ b/src/main/java/twistedgate/overengineered/common/multiblock/OETemplateMultiblock.java @@ -15,7 +15,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import twistedgate.overengineered.OverEngineered; -import twistedgate.overengineered.experimental.common.blocks.tileentity.KineticMultiblockPartTileEntity; +import twistedgate.overengineered.common.blocks.tileentity.KineticMultiblockPartTileEntity; public abstract class OETemplateMultiblock extends IETemplateMultiblock{ private final Supplier baseState; From 84707bfd5f9c4627eaa934a725a9612a8db367c8 Mon Sep 17 00:00:00 2001 From: TwistedGate <31029668+TwistedGate@users.noreply.github.com> Date: Sun, 10 Dec 2023 07:58:19 +0100 Subject: [PATCH 13/13] Bump IE to `1.18.2-8.4.0-161` --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index e944a37..fff49ce 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,11 +5,11 @@ version_minecraft=1.18.2 version_forge=40.2.4 version_fml_mappings=1.18.2 version_parchment=1.18.1-2022.03.06-1.18.2 -version_ie=1.18.2-8.1.0-150 +version_ie=1.18.2-8.4.0-161 create_version=0.5.1.e-318 flywheel_version=0.6.10-105 registrate_version=MC1.18.2-1.1.3 version_jei=9.7.0.195 -version_ct=9.1.156 \ No newline at end of file +version_ct=9.1.156