diff --git a/app/config/config_test.yml b/app/config/config_test.yml index c18ccd3..bb23b1c 100644 --- a/app/config/config_test.yml +++ b/app/config/config_test.yml @@ -21,4 +21,18 @@ doctrine: connections: default: driver: pdo_sqlite - path: "%kernel.cache_dir%/test.db" \ No newline at end of file + path: "%kernel.cache_dir%/test.db" + +liip_functional_test: + cache_sqlite_db: true + +oneup_flysystem: + adapters: + myadapter: + local: + directory: "%kernel.cache_dir%/filesystem" + + filesystems: + myfilesystem: + adapter: myadapter + mount: prefix \ No newline at end of file diff --git a/src/AppBundle/Service/Stl/StlConverterService.php b/src/AppBundle/Service/Stl/StlConverterService.php index 8b6511f..ec6c526 100644 --- a/src/AppBundle/Service/Stl/StlConverterService.php +++ b/src/AppBundle/Service/Stl/StlConverterService.php @@ -6,6 +6,7 @@ use AppBundle\Exception\ConvertingFailedException; use AppBundle\Exception\Stl\LDLibraryMissingException; use League\Flysystem\File; use League\Flysystem\Filesystem; +use League\Flysystem\FilesystemInterface; use Symfony\Component\Process\Exception\ProcessFailedException; use Symfony\Component\Process\ProcessBuilder; @@ -38,7 +39,8 @@ class StlConverterService * StlConverterService constructor. * * @param string $ldview Path to LDView OSMesa binary file - * @param Filesystem $mediaFilesystem Filesystem for generated web assets + * @param FilesystemInterface $mediaFilesystem Filesystem for generated web assets + * @param StlFixerService $stlFixer */ public function __construct($ldview, $mediaFilesystem, $stlFixer) { diff --git a/src/AppBundle/Service/Stl/StlFixerService.php b/src/AppBundle/Service/Stl/StlFixerService.php index c8c2e1f..78bf26a 100644 --- a/src/AppBundle/Service/Stl/StlFixerService.php +++ b/src/AppBundle/Service/Stl/StlFixerService.php @@ -23,22 +23,25 @@ class StlFixerService /** * Rotate, scale stl file and save in binary format. * - * @param $file + * @param $input + * @param $output * * @throws FileNotFoundException */ - public function fix($file) + public function fix($input, $output = null) { - if (file_exists($file)) { + $output = $output ? $output : $input; + + if (file_exists($input)) { $this->runADMesh([ - $file, + $input, '--x-rotate=-90', '--scale=10', '--no-check', - "--write-binary-stl={$file}", + "--write-binary-stl={$output}", ]); } else { - throw new FileNotFoundException($file); + throw new FileNotFoundException($input); } } diff --git a/tests/Service/BaseTest.php b/tests/Service/BaseTest.php new file mode 100644 index 0000000..5f0a3b6 --- /dev/null +++ b/tests/Service/BaseTest.php @@ -0,0 +1,48 @@ +_container = self::$kernel->getContainer(); + parent::__construct(); + + $this->filesystem = $this->get('oneup_flysystem.myfilesystem_filesystem'); + } + + public function prime(KernelInterface $kernel) + { + // Make sure we are in the test environment + if ('test' !== $kernel->getEnvironment()) { + throw new \LogicException('Primer must be executed in the test environment'); + } + + // Get the entity manager from the service container + $entityManager = $kernel->getContainer()->get('doctrine.orm.entity_manager'); + + // Run the schema update tool using our entity metadata + $metadatas = $entityManager->getMetadataFactory()->getAllMetadata(); + $schemaTool = new SchemaTool($entityManager); + $schemaTool->updateSchema($metadatas); + + // If you are using the Doctrine Fixtures Bundle you could load these here + } + + protected function get($service) + { + return $this->_container->get($service); + } +} diff --git a/tests/Service/Stl/StlConvertor/StlConvertorTest.php b/tests/Service/Stl/StlConvertor/StlConvertorTest.php new file mode 100644 index 0000000..e678c9e --- /dev/null +++ b/tests/Service/Stl/StlConvertor/StlConvertorTest.php @@ -0,0 +1,57 @@ +_container->getParameter('ldview_bin'); + + $this->stlConverter = new StlConverterService($ldview, $this->filesystem ); + + $adapter = new Local(__DIR__.'/fixtures/ldraw'); + $ldrawLibraryContext = new Filesystem($adapter); + $this->stlConverter->setLDrawLibraryContext($ldrawLibraryContext); + } + + public function testConvertToStl() + { + $this->assertNotNull($this->stlConverter->datToStl(__DIR__.'/fixtures/ldraw/parts/983.dat')); + + $this->assertTrue($this->filesystem->has('models/983.stl')); + + $this->filesystem->delete('models/983.stl'); + } + + /** + * @expectedException AppBundle\Exception\Stl\LDLibraryMissingException + */ + public function testLDContextMissing() + { + $this->stlConverter->setLDrawLibraryContext(null); + $this->stlConverter->datToStl(__DIR__.'/fixtures/ldraw/parts/983.dat'); + } + + public function testConvertToPng() + { + $this->assertNotNull($this->stlConverter->datToPng(__DIR__.'/fixtures/ldraw/parts/983.dat')); + + $this->assertTrue($this->filesystem->has('images/983.png')); + + $this->filesystem->delete('images/983.png'); + } +} \ No newline at end of file diff --git a/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/2-4edge.dat b/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/2-4edge.dat new file mode 100644 index 0000000..5e10d8b --- /dev/null +++ b/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/2-4edge.dat @@ -0,0 +1,20 @@ +0 Circle 0.5 +0 Name: 2-4edge.dat +0 Author: James Jessiman +0 !LDRAW_ORG Unofficial_Primitive +0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt + +0 BFC CERTIFY CCW + +0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement +0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01 +0 !HISTORY 2017-01-15 [Steffen] BFCed + +2 24 1 0 0 0.9239 0 0.3827 +2 24 0.9239 0 0.3827 0.7071 0 0.7071 +2 24 0.7071 0 0.7071 0.3827 0 0.9239 +2 24 0.3827 0 0.9239 0 0 1 +2 24 0 0 1 -0.3827 0 0.9239 +2 24 -0.3827 0 0.9239 -0.7071 0 0.7071 +2 24 -0.7071 0 0.7071 -0.9239 0 0.3827 +2 24 -0.9239 0 0.3827 -1 0 0 diff --git a/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/3-4edge.dat b/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/3-4edge.dat new file mode 100644 index 0000000..57c036e --- /dev/null +++ b/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/3-4edge.dat @@ -0,0 +1,24 @@ +0 Circle 0.75 +0 Name: 3-4edge.dat +0 Author: James Jessiman +0 !LDRAW_ORG Unofficial_Primitive +0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt + +0 BFC CERTIFY CCW + +0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement +0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01 +0 !HISTORY 2017-01-15 [Steffen] BFCed + +2 24 1 0 0 0.9239 0 0.3827 +2 24 0.9239 0 0.3827 0.7071 0 0.7071 +2 24 0.7071 0 0.7071 0.3827 0 0.9239 +2 24 0.3827 0 0.9239 0 0 1 +2 24 0 0 1 -0.3827 0 0.9239 +2 24 -0.3827 0 0.9239 -0.7071 0 0.7071 +2 24 -0.7071 0 0.7071 -0.9239 0 0.3827 +2 24 -0.9239 0 0.3827 -1 0 0 +2 24 -1 0 -0 -0.9239 0 -0.3827 +2 24 -0.9239 0 -0.3827 -0.7071 0 -0.7071 +2 24 -0.7071 0 -0.7071 -0.3827 0 -0.9239 +2 24 -0.3827 0 -0.9239 0 0 -1 diff --git a/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/4-4edge.dat b/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/4-4edge.dat new file mode 100644 index 0000000..83800c4 --- /dev/null +++ b/tests/Service/Stl/StlConvertor/fixtures/ldraw/p/4-4edge.dat @@ -0,0 +1,30 @@ +0 Circle 1.0 +0 Name: 4-4edge.dat +0 Author: James Jessiman +0 !LDRAW_ORG Unofficial_Primitive +0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt + +0 BFC CERTIFY CCW + +0 !HISTORY 1998-12-15 [PTadmin] Official Update 1998-10 +0 !HISTORY 2005-12-28 [PTadmin] Official Update 2005-01 +0 !HISTORY 2007-06-24 [PTadmin] Header formatted for Contributor Agreement +0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01 +0 !HISTORY 2017-01-15 [Steffen] BFCed + +2 24 1 0 0 0.9239 0 0.3827 +2 24 0.9239 0 0.3827 0.7071 0 0.7071 +2 24 0.7071 0 0.7071 0.3827 0 0.9239 +2 24 0.3827 0 0.9239 0 0 1 +2 24 0 0 1 -0.3827 0 0.9239 +2 24 -0.3827 0 0.9239 -0.7071 0 0.7071 +2 24 -0.7071 0 0.7071 -0.9239 0 0.3827 +2 24 -0.9239 0 0.3827 -1 0 -0 +2 24 -1 0 -0 -0.9239 0 -0.3827 +2 24 -0.9239 0 -0.3827 -0.7071 0 -0.7071 +2 24 -0.7071 0 -0.7071 -0.3827 0 -0.9239 +2 24 -0.3827 0 -0.9239 0 0 -1 +2 24 0 0 -1 0.3827 0 -0.9239 +2 24 0.3827 0 -0.9239 0.7071 0 -0.7071 +2 24 0.7071 0 -0.7071 0.9239 0 -0.3827 +2 24 0.9239 0 -0.3827 1 0 0 diff --git a/tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/3820.dat b/tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/3820.dat new file mode 100644 index 0000000..29f88bb --- /dev/null +++ b/tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/3820.dat @@ -0,0 +1,318 @@ +0 Minifig Hand +0 Name: 3820.dat +0 Author: Orion Pobursky [OrionP] +0 !LDRAW_ORG Part UPDATE 2009-03 +0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt + +0 !HELP The Hand angle is 14.5 degrees +0 !HELP To rotate the hand to 90 degrees horizontal use the following rotation +0 !HELP matrix: 1 0 0 0 0.968148 0.25038 0 -0.25038 0.968148 +0 !HELP After the rotation matrix is applied: +0 !HELP The center of the bottom of the hand will be x, y+2.2259, z-9.3739 +0 !HELP The center of the top of the hand will be x, y-9.7741, z-9.3739 +0 !HELP where x, y, and z are the origin coordinates of the part +0 !HELP Example: for the following DAT line: +0 !HELP 1 16 1 1 1 1 0 0 0 0.968148 0.25038 0 -0.25038 0.968148 3820.dat +0 !HELP The origin of the part is 1,1,1 +0 !HELP The center of the bottom of the hand is 1, 3.2259, -8.3739 + +0 BFC CERTIFY CCW + +0 !HISTORY 2002-11-30 [PTadmin] Official Update 2002-05 +0 !HISTORY 2002-12-31 [PTadmin] Official Update 2002-06 +0 !HISTORY 2007-07-29 [PTadmin] Header formatted for Contributor Agreement +0 !HISTORY 2008-07-01 [PTadmin] Official Update 2008-01 +0 !HISTORY 2008-07-07 [DeannaEarley] Removed erroneous BFC CERTIFY entries (2005-08-29 +0 !HISTORY 2008-07-07 [WilliamH] Added conditional lines to underside (2006-08-17) +0 !HISTORY 2009-08-24 [PTadmin] Moved from 983 +0 !HISTORY 2009-12-29 [PTadmin] Official Update 2009-03 + +0 // Post + + +1 16 0 0 0 2.5 0 0 0 0 -2.5 0 13 0 4-4cyli.dat +1 16 0 0 13 2.5 0 0 0 0 -2.5 0 16 0 4-4edge.dat +1 16 0 0 0 2.5 0 0 0 0 -2.5 0 16 0 4-4edge.dat +0 BFC INVERTNEXT +1 16 0 0 13 2.5 0 0 0 0 -2.5 0 16 0 4-4disc.dat +0 Hand +1 16 0 4.502 -8.518 -6 0 0 0 -11.6178 -1.5023 0 -3.0046 5.8089 2-4cyli.dat +0 BFC INVERTNEXT +1 16 0 4.502 -8.518 -4 0 0 0 -11.6178 -1.0015 0 -3.0046 3.8726 2-4cyli.dat +1 16 0 4.502 -8.518 -2 0 0 0 -0.9681 -0.5008 0 -0.2504 1.9363 2-4ring2.dat +0 BFC INVERTNEXT +1 16 0 -7.116 -11.522 -2 0 0 0 -0.9681 -0.5008 0 -0.2504 1.9363 2-4ring2.dat +1 16 0 -7.116 -11.522 -4.2426 0 -4.2426 1.0623 -0.9681 -1.0623 -4.1075 -0.2504 4.1075 3-4edge.dat +1 16 0 -7.116 -11.522 -2.8284 0 -2.8284 0.7082 -0.9681 -0.7082 -2.7383 -0.2504 2.7383 3-4edge.dat +1 16 0 4.502 -8.518 -6 0 0 0 -0.9681 -1.5023 0 -0.2504 5.8089 2-4edge.dat +1 16 0 4.502 -8.518 -4 0 0 0 -0.9681 -1.0015 0 -0.2504 3.8726 2-4edge.dat +3 16 6 4.5023 -8.5179 6 -7.1155 -11.5224 5.543 -6.5406 -13.7453 +3 16 -5.543 -6.5406 -13.7453 -6 -7.1155 -11.5224 -6 4.5023 -8.5179 +4 16 5.767 4.6838 -9.6794 6 4.5023 -8.5179 5.543 -6.5406 -13.7453 5.543 4.635 -10.8551 +4 16 -5.543 -6.5406 -13.7453 -6 4.5023 -8.5179 -5.767 4.6838 -9.6794 -5.543 4.635 -10.8551 +2 24 6 4.5023 -8.5179 5.767 4.6838 -9.6794 +2 24 -6 4.5023 -8.5179 -5.767 4.6838 -9.6794 +2 24 -5.767 4.6838 -9.6794 -5.543 4.635 -10.8551 +2 24 5.767 4.6838 -9.6794 5.543 4.635 -10.8551 +4 16 3.847 4.6472 -9.2773 3.696 4.6934 -10.0498 3.696 -6.7322 -13.0047 4 4.5023 -8.5179 +4 16 -3.696 -6.7322 -13.0047 -3.696 4.6934 -10.0498 -3.847 4.6472 -9.2773 -4 4.5023 -8.5179 +2 24 3.847 4.6472 -9.2773 3.696 4.6934 -10.0498 +2 24 -3.847 4.6472 -9.2773 -3.696 4.6934 -10.0498 +2 24 3.847 4.6472 -9.2773 4 4.5023 -8.5179 +2 24 -3.847 4.6472 -9.2773 -4 4.5023 -8.5179 +3 16 4 -7.1155 -11.5224 4 4.5023 -8.5179 3.696 -6.7322 -13.0047 +5 24 6 4.5023 -8.5179 6 -7.1155 -11.5224 5.543 -6.5406 -13.7453 5.5434 -7.69097 -9.29893 +5 24 4 -7.1155 -11.5224 4 4.5023 -8.5179 3.696 -6.7322 -13.0047 3.6956 -7.49931 -10.04 +5 24 -6 4.5023 -8.5179 -6 -7.1155 -11.5224 -5.543 -6.5406 -13.7453 -5.5434 -7.69097 -9.29893 +5 24 -4 -7.1155 -11.5224 -4 4.5023 -8.5179 -3.696 -6.7322 -13.0047 -3.6956 -7.49931 -10.04 +3 16 -3.696 -6.7322 -13.0047 -4 4.5023 -8.5179 -4 -7.1155 -11.5224 +4 16 -5.543 4.635 -10.8551 -4.861 4.3639 -11.9808 -4.243 -6.0531 -15.6303 -5.543 -6.5406 -13.7453 +4 16 4.243 -6.0531 -15.6303 4.861 4.3639 -11.9808 5.543 4.635 -10.8551 5.543 -6.5406 -13.7453 +3 16 -4.861 4.3639 -11.9808 -4.243 3.8636 -13.0657 -4.243 -6.0531 -15.6303 +3 16 4.243 -6.0531 -15.6303 4.243 3.8636 -13.0657 4.861 4.3639 -11.9808 +2 24 -5.543 4.635 -10.8551 -4.861 4.3639 -11.9808 +2 24 5.543 4.635 -10.8551 4.861 4.3639 -11.9808 +2 24 -4.861 4.3639 -11.9808 -4.243 3.8636 -13.0657 +2 24 4.861 4.3639 -11.9808 4.243 3.8636 -13.0657 +3 16 -2.828 -6.4074 -14.2604 -2.828 4.5244 -11.4332 -3.255 4.6497 -10.7418 +3 16 3.255 4.6497 -10.7418 2.828 4.5244 -11.4332 2.828 -6.4074 -14.2604 +4 16 -3.255 4.6497 -10.7418 -3.696 4.6934 -10.0498 -3.696 -6.7322 -13.0047 -2.828 -6.4074 -14.2604 +4 16 3.696 -6.7322 -13.0047 3.696 4.6934 -10.0498 3.255 4.6497 -10.7418 2.828 -6.4074 -14.2604 +2 24 2.828 4.5244 -11.4332 3.255 4.6497 -10.7418 +2 24 -2.828 4.5244 -11.4332 -3.255 4.6497 -10.7418 +2 24 3.255 4.6497 -10.7418 3.696 4.6934 -10.0498 +2 24 -3.255 4.6497 -10.7418 -3.696 4.6934 -10.0498 +4 16 2 4.3383 -12.0536 2 -6.2687 -14.7967 2.828 -6.4074 -14.2604 2.828 4.5244 -11.4332 +4 16 -2.828 -6.4074 -14.2604 -2 -6.2687 -14.7967 -2 4.3383 -12.0536 -2.828 4.5244 -11.4332 +2 24 -2 4.3383 -12.0536 -2.828 4.5244 -11.4332 +2 24 2 4.3383 -12.0536 2.828 4.5244 -11.4332 +4 16 -2.712 2.7973 -14.3981 -2.296 2.3041 -14.8117 -2.296 -5.7276 -16.8889 -2.712 -5.797 -16.6207 +4 16 2.296 -5.7276 -16.8889 2.296 2.3041 -14.8117 2.712 2.7973 -14.3981 2.712 -5.797 -16.6207 +2 24 -2.712 2.7973 -14.3981 -2.296 2.3041 -14.8117 +2 24 2.712 2.7973 -14.3981 2.296 2.3041 -14.8117 +4 16 -3.187 3.2182 -13.9608 -2.712 2.7973 -14.3981 -2.712 -5.797 -16.6207 -3.187 -5.8766 -16.3128 +4 16 2.712 -5.797 -16.6207 2.712 2.7973 -14.3981 3.187 3.2182 -13.9608 3.187 -5.8766 -16.3128 +2 24 3.187 3.2182 -13.9608 2.712 2.7973 -14.3981 +2 24 -3.187 3.2182 -13.9608 -2.712 2.7973 -14.3981 +4 16 -3.703 3.5723 -13.5128 -3.187 3.2182 -13.9608 -3.187 -5.8766 -16.3128 -3.703 -5.963 -15.9788 +4 16 3.187 -5.8766 -16.3128 3.187 3.2182 -13.9608 3.703 3.5723 -13.5128 3.703 -5.963 -15.9788 +2 24 3.703 3.5723 -13.5128 3.187 3.2182 -13.9608 +2 24 -3.703 3.5723 -13.5128 -3.187 3.2182 -13.9608 +4 16 -4.243 -6.0531 -15.6303 -4.243 3.8636 -13.0657 -3.703 3.5723 -13.5128 -3.703 -5.963 -15.9788 +4 16 3.703 3.5723 -13.5128 4.243 3.8636 -13.0657 4.243 -6.0531 -15.6303 3.703 -5.963 -15.9788 +2 24 4.243 3.8636 -13.0657 3.703 3.5723 -13.5128 +2 24 -4.243 3.8636 -13.0657 -3.703 3.5723 -13.5128 +4 16 -2.296 -5.7276 -16.8889 -2.296 2.3041 -14.8117 -2 2.1756 -14.9059 -2 -5.7129 -16.946 +4 16 2.296 -5.7276 -16.8889 2 -5.7129 -16.946 2 2.1756 -14.9059 2.296 2.3041 -14.8117 +2 24 -2.296 2.3041 -14.8117 -2 2.1756 -14.9059 +2 24 2.296 2.3041 -14.8117 2 2.1756 -14.9059 +3 16 2 2.1756 -14.9059 2 2.8733 -14.3247 2.296 2.3041 -14.8117 +5 24 2 2.8733 -14.3247 2.296 2.3041 -14.8117 2 2.1756 -14.9059 2.712 2.7973 -14.3981 +3 16 2.296 2.3041 -14.8117 2 2.8733 -14.3247 2.712 2.7973 -14.3981 +5 24 2 2.8733 -14.3247 2.712 2.7973 -14.3981 2.296 2.3041 -14.8117 2 3.4727 -13.647 +3 16 2 3.4727 -13.647 2.712 2.7973 -14.3981 2 2.8733 -14.3247 +5 24 2 3.4727 -13.647 2.712 2.7973 -14.3981 2 2.8733 -14.3247 3.187 3.2182 -13.9608 +3 16 2.712 2.7973 -14.3981 2 3.4727 -13.647 3.187 3.2182 -13.9608 +5 24 2 3.4727 -13.647 3.187 3.2182 -13.9608 2.712 2.7973 -14.3981 2 3.965 -12.8866 +3 16 2 3.965 -12.8866 3.187 3.2182 -13.9608 2 3.4727 -13.647 +5 24 2 3.965 -12.8866 3.187 3.2182 -13.9608 2 3.4727 -13.647 3.703 3.5723 -13.5128 +3 16 3.187 3.2182 -13.9608 2 3.965 -12.8866 3.703 3.5723 -13.5128 +5 24 2 3.965 -12.8866 3.703 3.5723 -13.5128 3.187 3.2182 -13.9608 2.828 4.5244 -11.4332 +3 16 2.828 4.5244 -11.4332 3.703 3.5723 -13.5128 2 3.965 -12.8866 +5 24 2.828 4.5244 -11.4332 2 3.965 -12.8866 2 4.3383 -12.0536 3.703 3.5723 -13.5128 +3 16 2.828 4.5244 -11.4332 2 3.965 -12.8866 2 4.3383 -12.0536 +5 24 3.703 3.5723 -13.5128 2.828 4.5244 -11.4332 4.243 3.8636 -13.0657 2 3.965 -12.8866 +3 16 3.703 3.5723 -13.5128 2.828 4.5244 -11.4332 4.243 3.8636 -13.0657 +5 24 2.828 4.5244 -11.4332 4.243 3.8636 -13.0657 3.703 3.5723 -13.5128 3.255 4.6497 -10.7418 +3 16 3.255 4.6497 -10.7418 4.243 3.8636 -13.0657 2.828 4.5244 -11.4332 +5 24 3.255 4.6497 -10.7418 4.243 3.8636 -13.0657 2.828 4.5244 -11.4332 4.861 4.3639 -11.9808 +3 16 4.243 3.8636 -13.0657 3.255 4.6497 -10.7418 4.861 4.3639 -11.9808 +5 24 3.255 4.6497 -10.7418 4.861 4.3639 -11.9808 4.243 3.8636 -13.0657 3.696 4.6934 -10.0498 +3 16 3.696 4.6934 -10.0498 4.861 4.3639 -11.9808 3.255 4.6497 -10.7418 +5 24 3.696 4.6934 -10.0498 4.861 4.3639 -11.9808 3.255 4.6497 -10.7418 5.543 4.635 -10.8551 +3 16 4.861 4.3639 -11.9808 3.696 4.6934 -10.0498 5.543 4.635 -10.8551 +5 24 3.696 4.6934 -10.0498 5.543 4.635 -10.8551 4.861 4.3639 -11.9808 3.847 4.6472 -9.2773 +3 16 3.847 4.6472 -9.2773 5.543 4.635 -10.8551 3.696 4.6934 -10.0498 +5 24 3.847 4.6472 -9.2773 5.543 4.635 -10.8551 3.696 4.6934 -10.0498 5.767 4.6838 -9.6794 +3 16 5.543 4.635 -10.8551 3.847 4.6472 -9.2773 5.767 4.6838 -9.6794 +5 24 3.847 4.6472 -9.2773 5.767 4.6838 -9.6794 5.543 4.635 -10.8551 5 4.5023 -8.5179 +3 16 5.767 4.6838 -9.6794 3.847 4.6472 -9.2773 5 4.5023 -8.5179 +5 24 3.847 4.6472 -9.2773 5 4.5023 -8.5179 5.767 4.6838 -9.6794 4 4.5023 -8.5179 +3 16 4 4.5023 -8.5179 5 4.5023 -8.5179 3.847 4.6472 -9.2773 +5 24 5.767 4.6838 -9.6794 5 4.5023 -8.5179 6 4.5023 -8.5179 3.847 4.6472 -9.2773 +3 16 5.767 4.6838 -9.6794 5 4.5023 -8.5179 6 4.5023 -8.5179 +5 24 4 4.5023 -8.5179 6 4.5023 -8.5179 5.767 4.6838 -9.6794 5.5434 3.92703 -6.29493 +5 24 -2 2.8733 -14.3247 -2.296 2.3041 -14.8117 -2 2.1756 -14.9059 -2.712 2.7973 -14.3981 +5 24 -2 2.8733 -14.3247 -2.712 2.7973 -14.3981 -2.296 2.3041 -14.8117 -2 3.4727 -13.647 +5 24 -2 3.4727 -13.647 -2.712 2.7973 -14.3981 -2 2.8733 -14.3247 -3.187 3.2182 -13.9608 +5 24 -2 3.4727 -13.647 -3.187 3.2182 -13.9608 -2.712 2.7973 -14.3981 -2 3.965 -12.8866 +5 24 -2 3.965 -12.8866 -3.187 3.2182 -13.9608 -2 3.4727 -13.647 -3.703 3.5723 -13.5128 +5 24 -2 3.965 -12.8866 -3.703 3.5723 -13.5128 -3.187 3.2182 -13.9608 -2.828 4.5244 -11.4332 +5 24 -2.828 4.5244 -11.4332 -2 3.965 -12.8866 -2 4.3383 -12.0536 -3.703 3.5723 -13.5128 +5 24 -3.703 3.5723 -13.5128 -2.828 4.5244 -11.4332 -4.243 3.8636 -13.0657 -2 3.965 -12.8866 +5 24 -2.828 4.5244 -11.4332 -4.243 3.8636 -13.0657 -3.703 3.5723 -13.5128 -3.255 4.6497 -10.7418 +5 24 -3.255 4.6497 -10.7418 -4.243 3.8636 -13.0657 -2.828 4.5244 -11.4332 -4.861 4.3639 -11.9808 +5 24 -3.255 4.6497 -10.7418 -4.861 4.3639 -11.9808 -4.243 3.8636 -13.0657 -3.696 4.6934 -10.0498 +5 24 -3.696 4.6934 -10.0498 -4.861 4.3639 -11.9808 -3.255 4.6497 -10.7418 -5.543 4.635 -10.8551 +5 24 -3.696 4.6934 -10.0498 -5.543 4.635 -10.8551 -4.861 4.3639 -11.9808 -3.847 4.6472 -9.2773 +5 24 -3.847 4.6472 -9.2773 -5.543 4.635 -10.8551 -3.696 4.6934 -10.0498 -5.767 4.6838 -9.6794 +5 24 -3.847 4.6472 -9.2773 -5.767 4.6838 -9.6794 -5.543 4.635 -10.8551 -5 4.5023 -8.5179 +5 24 -3.847 4.6472 -9.2773 -5 4.5023 -8.5179 -5.767 4.6838 -9.6794 -4 4.5023 -8.5179 +5 24 -5.767 4.6838 -9.6794 -5 4.5023 -8.5179 -6 4.5023 -8.5179 -3.847 4.6472 -9.2773 +5 24 -4 4.5023 -8.5179 -6 4.5023 -8.5179 -5.767 4.6838 -9.6794 -5.5434 3.92703 -6.29493 +3 16 -3.703 3.5723 -13.5128 -2 3.965 -12.8866 -3.187 3.2182 -13.9608 +3 16 -3.187 3.2182 -13.9608 -2 3.4727 -13.647 -2.712 2.7973 -14.3981 +3 16 -2.712 2.7973 -14.3981 -2 2.8733 -14.3247 -2.296 2.3041 -14.8117 +3 16 -2.828 4.5244 -11.4332 -2 3.965 -12.8866 -3.703 3.5723 -13.5128 +3 16 -2.828 4.5244 -11.4332 -4.243 3.8636 -13.0657 -3.255 4.6497 -10.7418 +3 16 -4.243 3.8636 -13.0657 -2.828 4.5244 -11.4332 -3.703 3.5723 -13.5128 +3 16 -4.861 4.3639 -11.9808 -3.255 4.6497 -10.7418 -4.243 3.8636 -13.0657 +3 16 -3.255 4.6497 -10.7418 -4.861 4.3639 -11.9808 -3.696 4.6934 -10.0498 +3 16 -5.543 4.635 -10.8551 -3.696 4.6934 -10.0498 -4.861 4.3639 -11.9808 +3 16 -3.696 4.6934 -10.0498 -5.543 4.635 -10.8551 -3.847 4.6472 -9.2773 +3 16 -3.847 4.6472 -9.2773 -5 4.5023 -8.5179 -4 4.5023 -8.5179 +3 16 -5 4.5023 -8.5179 -3.847 4.6472 -9.2773 -5.767 4.6838 -9.6794 +3 16 -5.767 4.6838 -9.6794 -3.847 4.6472 -9.2773 -5.543 4.635 -10.8551 +3 16 -6 4.5023 -8.5179 -5 4.5023 -8.5179 -5.767 4.6838 -9.6794 +4 16 -2.8284 -6.4073 -14.2608 -3.6956 -6.7322 -13.0044 -5.5433 -6.5406 -13.7453 -4.2426 -6.0532 -15.6299 +4 16 -3.6956 -6.7322 -13.0044 -4 -7.1155 -11.5224 -5.9999 -7.1155 -11.5224 -5.5433 -6.5406 -13.7453 +4 16 4 -7.1155 -11.5224 3.6956 -6.7322 -13.0044 5.5433 -6.5406 -13.7453 5.9999 -7.1155 -11.5224 +4 16 3.6956 -6.7322 -13.0044 2.8284 -6.4073 -14.2608 4.2426 -6.0532 -15.6299 5.5433 -6.5406 -13.7453 +5 24 5.543 -6.5406 -13.7453 5.543 4.635 -10.8551 6 -7.1155 -11.5224 4.243 -6.0531 -15.6303 +5 24 -5.543 -6.5406 -13.7453 -5.543 4.635 -10.8551 -6 -7.1155 -11.5224 -4.243 -6.0531 -15.6303 +5 24 -4.243 -6.0531 -15.6303 -4.243 3.8636 -13.0657 -5.543 -6.5406 -13.7453 -2.296 -5.7276 -16.8889 +5 24 4.243 -6.0531 -15.6303 4.243 3.8636 -13.0657 5.543 -6.5406 -13.7453 2.296 -5.7276 -16.8889 +5 24 -2.296 -5.7276 -16.8889 -2.296 2.3041 -14.8117 -4.243 -6.0531 -15.6303 -2 -5.7129 -16.946 +5 24 2.296 -5.7276 -16.8889 2.296 2.3041 -14.8117 4.243 -6.0531 -15.6303 2 -5.7129 -16.946 +4 16 -4.243 -6.0531 -15.6303 -2.296 -5.7276 -16.8889 -2 -6.2687 -14.7967 -2.828 -6.4074 -14.2604 +4 16 2 -6.2687 -14.7967 2.296 -5.7276 -16.8889 4.243 -6.0531 -15.6303 2.828 -6.4074 -14.2604 +2 24 4.243 -6.0531 -15.6303 2.296 -5.7276 -16.8889 +2 24 -4.243 -6.0531 -15.6303 -2.296 -5.7276 -16.8889 +2 24 -2 -6.2687 -14.7967 -2.828 -6.4074 -14.2604 +2 24 2 -6.2687 -14.7967 2.828 -6.4074 -14.2604 +3 16 -2 -5.7129 -16.946 -2 -6.2687 -14.7967 -2.296 -5.7276 -16.8889 +3 16 2.296 -5.7276 -16.8889 2 -6.2687 -14.7967 2 -5.7129 -16.946 +2 24 2 -5.7129 -16.946 2 -6.2687 -14.7967 +2 24 -2 -5.7129 -16.946 -2 -6.2687 -14.7967 +2 24 2 -5.7129 -16.946 2.296 -5.7276 -16.8889 +2 24 -2 -5.7129 -16.946 -2.296 -5.7276 -16.8889 +5 24 -2.828 -6.4074 -14.2604 -2.828 4.5244 -11.4332 -3.696 -6.7322 -13.0047 -2 -6.2687 -14.7967 +5 24 2.828 -6.4074 -14.2604 2.828 4.5244 -11.4332 3.696 -6.7322 -13.0047 2 -6.2687 -14.7967 +5 24 3.696 -6.7322 -13.0047 3.696 4.6934 -10.0498 4 -7.1155 -11.5224 2.828 -6.4074 -14.2604 +5 24 -3.696 -6.7322 -13.0047 -3.696 4.6934 -10.0498 -4 -7.1155 -11.5224 -2.828 -6.4074 -14.2604 +4 16 -2 1.6198 -12.7566 -2 -6.2687 -14.7967 -2 -5.7129 -16.946 -2 2.1756 -14.9059 +4 16 2 -5.7129 -16.946 2 -6.2687 -14.7967 2 1.6198 -12.7566 2 2.1756 -14.9059 +3 16 -2.296 2.3041 -14.8117 -2 2.8733 -14.3247 -2 2.1756 -14.9059 +3 16 -2 2.8733 -14.3247 -2.712 2.7973 -14.3981 -2 3.4727 -13.647 +3 16 -2 3.4727 -13.647 -3.187 3.2182 -13.9608 -2 3.965 -12.8866 +3 16 -2 4.3383 -12.0536 -2 3.965 -12.8866 -2.828 4.5244 -11.4332 +4 16 -2 2.1756 -14.9059 -2 2.8733 -14.3247 -2 3.4727 -13.647 -2 1.6198 -12.7566 +4 16 -2 4.3383 -12.0536 -2 1.6198 -12.7566 -2 3.4727 -13.647 -2 3.965 -12.8866 +4 16 2 3.4727 -13.647 2 2.8733 -14.3247 2 2.1756 -14.9059 2 1.6198 -12.7566 +4 16 2 3.4727 -13.647 2 1.6198 -12.7566 2 4.3383 -12.0536 2 3.965 -12.8866 +2 24 -2 2.1756 -14.9059 -2 2.8733 -14.3247 +2 24 -2 2.8733 -14.3247 -2 3.4727 -13.647 +2 24 -2 3.4727 -13.647 -2 3.965 -12.8866 +2 24 -2 4.3383 -12.0536 -2 3.965 -12.8866 +2 24 2 2.1756 -14.9059 2 2.8733 -14.3247 +2 24 2 2.8733 -14.3247 2 3.4727 -13.647 +2 24 2 3.4727 -13.647 2 3.965 -12.8866 +2 24 2 4.3383 -12.0536 2 3.965 -12.8866 +2 24 -2 2.1756 -14.9059 -2 -5.7129 -16.946 +2 24 -2 4.3383 -12.0536 -2 -6.2687 -14.7967 +2 24 2 2.1756 -14.9059 2 -5.7129 -16.946 +2 24 2 4.3383 -12.0536 2 -6.2687 -14.7967 +0 Cuff +3 16 2.1213 -2.1213 0 1.5546 -2.5 0 2.1213 -2.1213 -1.4641 +5 24 2.1213 -2.1213 0 2.1213 -2.1213 -1.4641 2.7717 -1.1481 0 1.5546 -2.5 0 +4 16 2.7717 -1.1481 -4.5817 2.7717 -1.1481 0 2.1213 -2.1213 0 2.1213 -2.1213 -1.4641 +3 16 2.6602 -1.3149 -4.5478 2.7717 -1.1481 -4.5817 2.1213 -2.1213 -1.4641 +5 24 2.7717 -1.1481 0 2.7717 -1.1481 -4.5817 3 0 0 2.1213 -2.1213 0 +4 16 3 0 -4.4423 3 0 0 2.7717 -1.1481 0 2.7717 -1.1481 -4.5817 +5 24 3 0 0 3 0 -4.4423 2.7717 1.1481 0 2.7717 -1.1481 0 +4 16 2.7717 1.1481 -3.9877 2.7717 1.1481 0 3 0 0 3 0 -4.4423 +5 24 2.7717 1.1481 0 2.7717 1.1481 -3.9877 2.1213 2.1213 0 3 0 0 +4 16 2.2962 1.8596 -3.4756 2.2962 1.8596 0 2.7717 1.1481 0 2.7717 1.1481 -3.9877 +4 16 2.1213 2.1213 0 2.2962 1.8596 0 2.2962 1.8596 -3.4756 2.1213 2.1213 -3.4995 +5 24 2.1213 2.1213 0 2.1213 2.1213 -3.4995 1.1481 2.7717 0 2.7717 1.1481 0 +4 16 1.1481 2.7717 -3.0039 1.1481 2.7717 0 2.1213 2.1213 0 2.1213 2.1213 -3.4995 +5 24 1.1481 2.7717 -3.0039 1.1481 2.7717 0 2.1213 2.1213 0 0 3 0 +4 16 0 3 -2.7094 0 3 0 1.1481 2.7717 0 1.1481 2.7717 -3.0039 +5 24 0 3 -2.7094 0 3 0 1.1481 2.7717 0 -1.1481 2.7717 0 +3 16 -2.1213 -2.1213 -1.4641 -1.5546 -2.5 0 -2.1213 -2.1213 0 +5 24 -2.1213 -2.1213 0 -2.1213 -2.1213 -1.4641 -2.7717 -1.1481 0 -1.5546 -2.5 0 +4 16 -2.1213 -2.1213 0 -2.7717 -1.1481 0 -2.7717 -1.1481 -4.5817 -2.1213 -2.1213 -1.4641 +3 16 -2.1213 -2.1213 -1.4641 -2.7717 -1.1481 -4.5817 -2.6602 -1.3149 -4.5478 +5 24 -2.7717 -1.1481 0 -2.7717 -1.1481 -4.5817 -3 0 0 -2.1213 -2.1213 0 +4 16 -2.7717 -1.1481 0 -3 0 0 -3 0 -4.4423 -2.7717 -1.1481 -4.5817 +5 24 -3 0 0 -3 0 -4.4423 -2.7717 1.1481 0 -2.7717 -1.1481 0 +4 16 -3 0 0 -2.7717 1.1481 0 -2.7717 1.1481 -3.9877 -3 0 -4.4423 +5 24 -2.7717 1.1481 0 -2.7717 1.1481 -3.9877 -2.1213 2.1213 0 -3 0 0 +4 16 -2.7717 1.1481 0 -2.2962 1.8596 0 -2.2962 1.8596 -3.4756 -2.7717 1.1481 -3.9877 +4 16 -2.2962 1.8596 -3.4756 -2.2962 1.8596 0 -2.1213 2.1213 0 -2.1213 2.1213 -3.4995 +5 24 -2.1213 2.1213 0 -2.1213 2.1213 -3.4995 -1.1481 2.7717 0 -2.7717 1.1481 0 +4 16 -2.1213 2.1213 0 -1.1481 2.7717 0 -1.1481 2.7717 -3.0039 -2.1213 2.1213 -3.4995 +5 24 -1.1481 2.7717 -3.0039 -1.1481 2.7717 0 -2.1213 2.1213 0 0 3 0 +4 16 -1.1481 2.7717 0 0 3 0 0 3 -2.7094 -1.1481 2.7717 -3.0039 +0 Cuff Intersect Lines +2 24 0 3 -2.7094 -1.1481 2.7717 -3.0039 +2 24 -2.2962 1.8596 -3.4756 -2.1213 2.1213 -3.4995 +2 24 -2.7717 1.1481 -3.9877 -3 0 -4.4423 +2 24 -2.2962 1.8596 -3.4756 -2.7717 1.1481 -3.9877 +2 24 -3 0 -4.4423 -2.7717 -1.1481 -4.5817 +2 24 -2.7717 -1.1481 -4.5817 -2.6602 -1.3149 -4.5478 +2 24 -2.1213 -2.1213 -1.4641 -2.6602 -1.3149 -4.5478 +2 24 -2.1213 -2.1213 -1.4641 -1.5546 -2.5 0 +2 24 -1.1481 2.7717 -3.0039 -2.1213 2.1213 -3.4995 +2 24 0 3 -2.7094 1.1481 2.7717 -3.0039 +2 24 2.2962 1.8596 -3.4756 2.1213 2.1213 -3.4995 +2 24 2.7717 1.1481 -3.9877 3 0 -4.4423 +2 24 2.2962 1.8596 -3.4756 2.7717 1.1481 -3.9877 +2 24 3 0 -4.4423 2.7717 -1.1481 -4.5817 +2 24 2.7717 -1.1481 -4.5817 2.6602 -1.3149 -4.5478 +2 24 2.1213 -2.1213 -1.4641 2.6602 -1.3149 -4.5478 +2 24 2.1213 -2.1213 -1.4641 1.5546 -2.5 0 +2 24 1.1481 2.7717 -3.0039 2.1213 2.1213 -3.4995 +2 24 -1.5546 -2.5 0 1.5546 -2.5 0 +0 Cuff Ring +3 16 0 -2.5 0 -0.9567 -2.3098 0 -1.5546 -2.5 0 +3 16 1.5546 -2.5 0 0.9567 -2.3098 0 0 -2.5 0 +4 16 2.5 0 0 2.3098 -0.9567 0 2.7717 -1.148 0 3 0 0 +4 16 2.3098 -0.9567 0 1.7678 -1.7678 0 2.1213 -2.1213 0 2.7717 -1.148 0 +4 16 1.7678 -1.7678 0 0.9567 -2.3098 0 1.5546 -2.5 0 2.1213 -2.1213 0 +4 16 -0.9567 -2.3098 0 -1.7678 -1.7678 0 -2.1213 -2.1213 0 -1.5546 -2.5 0 +4 16 -1.7678 -1.7678 0 -2.3098 -0.9567 0 -2.7717 -1.148 0 -2.1213 -2.1213 0 +4 16 -2.3098 -0.9567 0 -2.5 0 0 -3 0 0 -2.7717 -1.148 0 +4 16 -2.5 0 0 -2.3098 0.9567 0 -2.7717 1.148 0 -3 0 0 +4 16 -2.3098 0.9567 0 -1.7678 1.7677 0 -2.1213 2.1213 0 -2.7717 1.148 0 +4 16 -1.7678 1.7677 0 -0.9567 2.3098 0 -1.148 2.7717 0 -2.1213 2.1213 0 +4 16 -0.9567 2.3098 0 0 2.5 0 0 3 0 -1.148 2.7717 0 +4 16 0 2.5 0 0.9567 2.3098 0 1.148 2.7717 0 0 3 0 +4 16 0.9567 2.3098 0 1.7678 1.7677 0 2.1213 2.1213 0 1.148 2.7717 0 +4 16 1.7678 1.7677 0 2.3098 0.9567 0 2.7717 1.148 0 2.1213 2.1213 0 +4 16 2.3098 0.9567 0 2.5 0 0 3 0 0 2.7717 1.148 0 +2 24 2.1213 -2.1213 0 1.5546 -2.5 0 +2 24 -2.1213 -2.1213 0 -1.5546 -2.5 0 +2 24 3 0 0 2.7717 -1.1481 0 +2 24 2.7717 -1.1481 0 2.1213 -2.1213 0 +2 24 -2.1213 -2.1213 0 -2.7717 -1.1481 0 +2 24 -2.7717 -1.1481 0 -3 0 0 +2 24 -3 0 0 -2.7717 1.1481 0 +2 24 -2.7717 1.1481 0 -2.1213 2.1213 0 +2 24 -2.1213 2.1213 0 -1.1481 2.7717 0 +2 24 -1.1481 2.7717 0 0 3 0 +2 24 0 3 0 1.1481 2.7717 0 +2 24 1.1481 2.7717 0 2.1213 2.1213 0 +2 24 2.1213 2.1213 0 2.7717 1.1481 0 +2 24 2.7717 1.1481 0 3 0 0 +0 Flat part of Cuff +4 16 -1.5546 -2.5 0 -2.1213 -2.1213 -1.4641 2.1213 -2.1213 -1.4641 1.5546 -2.5 0 +4 16 0 -2.1213 -1.4641 -2.1213 -2.1213 -1.4641 -2.2962 -1.3762 -4.3124 0 -1.4914 -3.8706 +3 16 -2.1213 -2.1213 -1.4641 -2.6602 -1.3149 -4.5478 -2.2962 -1.3762 -4.3124 +4 16 2.2962 -1.3762 -4.3124 2.1213 -2.1213 -1.4641 0 -2.1213 -1.4641 0 -1.4914 -3.8706 +3 16 2.2962 -1.3762 -4.3124 2.6602 -1.3149 -4.5478 2.1213 -2.1213 -1.4641 +2 24 -2.6602 -1.3149 -4.5478 -2.2962 -1.3762 -4.3124 +2 24 2.2962 -1.3762 -4.3124 0 -1.4914 -3.8706 +2 24 2.6602 -1.3149 -4.5478 2.2962 -1.3762 -4.3124 +2 24 -2.2962 -1.3762 -4.3124 0 -1.4914 -3.8706 +0 diff --git a/tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/983.dat b/tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/983.dat new file mode 100644 index 0000000..37e0dfe --- /dev/null +++ b/tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/983.dat @@ -0,0 +1,12 @@ +0 ~Moved to 3820 +0 Name: 983.dat +0 Author: [PTadmin] +0 !LDRAW_ORG Part UPDATE 2009-03 +0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt + +0 BFC CERTIFY CCW + +0 !HISTORY 2009-12-29 [PTadmin] Official Update 2009-03 + +0 // Minifig Hand +1 16 0 0 0 1 0 0 0 1 0 0 0 1 3820.dat diff --git a/tests/Service/Stl/StlFixer/StlFixerTest.php b/tests/Service/Stl/StlFixer/StlFixerTest.php new file mode 100644 index 0000000..0ed990f --- /dev/null +++ b/tests/Service/Stl/StlFixer/StlFixerTest.php @@ -0,0 +1,39 @@ +stlFixer = $this->get('service.stl.fixer'); + $this->input = __DIR__.'/fixtures/ascii.stl'; + } + + public function tearDown() + { + $this->filesystem->delete('output.stl'); + } + + public function testFixing() + { + $this->stlFixer->fix($this->input,$this->filesystem->getAdapter()->getPathPrefix().'/output.stl'); + + $this->assertTrue($this->filesystem->has('output.stl')); + } +} \ No newline at end of file diff --git a/tests/Service/Stl/StlFixer/fixtures/ascii.stl b/tests/Service/Stl/StlFixer/fixtures/ascii.stl new file mode 100644 index 0000000..5e93177 --- /dev/null +++ b/tests/Service/Stl/StlFixer/fixtures/ascii.stl @@ -0,0 +1,1710 @@ +solid MYSOLID created by LDView, original data in 983.dat + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.240000 0.180092 -0.340716 + vertex 0.240000 -0.284620 -0.460896 + vertex 0.221720 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221720 -0.261624 -0.549812 + vertex -0.240000 -0.284620 -0.460896 + vertex -0.240000 0.180092 -0.340716 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 -0.284620 -0.460896 + vertex 0.160000 0.180092 -0.340716 + vertex 0.147840 -0.269288 -0.520188 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147840 -0.269288 -0.520188 + vertex -0.160000 0.180092 -0.340716 + vertex -0.160000 -0.284620 -0.460896 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.194440 0.174556 -0.479232 + vertex -0.169720 0.154544 -0.522628 + vertex -0.169720 -0.242124 -0.625212 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.169720 -0.242124 -0.625212 + vertex 0.169720 0.154544 -0.522628 + vertex 0.194440 0.174556 -0.479232 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113120 -0.256296 -0.570416 + vertex -0.113120 0.180976 -0.457328 + vertex -0.130200 0.185988 -0.429672 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.130200 0.185988 -0.429672 + vertex 0.113120 0.180976 -0.457328 + vertex 0.113120 -0.256296 -0.570416 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.087024 -0.596236 + vertex 0.080000 0.114932 -0.572988 + vertex 0.091840 0.092164 -0.592468 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091840 0.092164 -0.592468 + vertex 0.080000 0.114932 -0.572988 + vertex 0.108480 0.111892 -0.575924 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.138908 -0.545880 + vertex 0.108480 0.111892 -0.575924 + vertex 0.080000 0.114932 -0.572988 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.108480 0.111892 -0.575924 + vertex 0.080000 0.138908 -0.545880 + vertex 0.127480 0.128728 -0.558432 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.158600 -0.515464 + vertex 0.127480 0.128728 -0.558432 + vertex 0.080000 0.138908 -0.545880 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.127480 0.128728 -0.558432 + vertex 0.080000 0.158600 -0.515464 + vertex 0.148120 0.142892 -0.540512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113120 0.180976 -0.457328 + vertex 0.148120 0.142892 -0.540512 + vertex 0.080000 0.158600 -0.515464 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113120 0.180976 -0.457328 + vertex 0.080000 0.158600 -0.515464 + vertex 0.080000 0.173532 -0.482144 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.148120 0.142892 -0.540512 + vertex 0.113120 0.180976 -0.457328 + vertex 0.169720 0.154544 -0.522628 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.130200 0.185988 -0.429672 + vertex 0.169720 0.154544 -0.522628 + vertex 0.113120 0.180976 -0.457328 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.169720 0.154544 -0.522628 + vertex 0.130200 0.185988 -0.429672 + vertex 0.194440 0.174556 -0.479232 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147840 0.187736 -0.401992 + vertex 0.194440 0.174556 -0.479232 + vertex 0.130200 0.185988 -0.429672 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.194440 0.174556 -0.479232 + vertex 0.147840 0.187736 -0.401992 + vertex 0.221720 0.185400 -0.434204 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.153880 0.185888 -0.371092 + vertex 0.221720 0.185400 -0.434204 + vertex 0.147840 0.187736 -0.401992 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.221720 0.185400 -0.434204 + vertex 0.153880 0.185888 -0.371092 + vertex 0.230680 0.187352 -0.387176 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.230680 0.187352 -0.387176 + vertex 0.153880 0.185888 -0.371092 + vertex 0.200000 0.180092 -0.340716 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 0.180092 -0.340716 + vertex 0.200000 0.180092 -0.340716 + vertex 0.153880 0.185888 -0.371092 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.230680 0.187352 -0.387176 + vertex 0.200000 0.180092 -0.340716 + vertex 0.240000 0.180092 -0.340716 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.148120 0.142892 -0.540512 + vertex -0.080000 0.158600 -0.515464 + vertex -0.127480 0.128728 -0.558432 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.127480 0.128728 -0.558432 + vertex -0.080000 0.138908 -0.545880 + vertex -0.108480 0.111892 -0.575924 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.108480 0.111892 -0.575924 + vertex -0.080000 0.114932 -0.572988 + vertex -0.091840 0.092164 -0.592468 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113120 0.180976 -0.457328 + vertex -0.080000 0.158600 -0.515464 + vertex -0.148120 0.142892 -0.540512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113120 0.180976 -0.457328 + vertex -0.169720 0.154544 -0.522628 + vertex -0.130200 0.185988 -0.429672 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169720 0.154544 -0.522628 + vertex -0.113120 0.180976 -0.457328 + vertex -0.148120 0.142892 -0.540512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.194440 0.174556 -0.479232 + vertex -0.130200 0.185988 -0.429672 + vertex -0.169720 0.154544 -0.522628 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.130200 0.185988 -0.429672 + vertex -0.194440 0.174556 -0.479232 + vertex -0.147840 0.187736 -0.401992 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221720 0.185400 -0.434204 + vertex -0.147840 0.187736 -0.401992 + vertex -0.194440 0.174556 -0.479232 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147840 0.187736 -0.401992 + vertex -0.221720 0.185400 -0.434204 + vertex -0.153880 0.185888 -0.371092 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.153880 0.185888 -0.371092 + vertex -0.200000 0.180092 -0.340716 + vertex -0.160000 0.180092 -0.340716 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.200000 0.180092 -0.340716 + vertex -0.153880 0.185888 -0.371092 + vertex -0.230680 0.187352 -0.387176 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.230680 0.187352 -0.387176 + vertex -0.153880 0.185888 -0.371092 + vertex -0.221720 0.185400 -0.434204 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.240000 0.180092 -0.340716 + vertex -0.200000 0.180092 -0.340716 + vertex -0.230680 0.187352 -0.387176 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 -0.228516 -0.677840 + vertex -0.080000 -0.250748 -0.591868 + vertex -0.091840 -0.229104 -0.675556 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091840 -0.229104 -0.675556 + vertex 0.080000 -0.250748 -0.591868 + vertex 0.080000 -0.228516 -0.677840 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091840 0.092164 -0.592468 + vertex -0.080000 0.114932 -0.572988 + vertex -0.080000 0.087024 -0.596236 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.114932 -0.572988 + vertex -0.108480 0.111892 -0.575924 + vertex -0.080000 0.138908 -0.545880 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.138908 -0.545880 + vertex -0.127480 0.128728 -0.558432 + vertex -0.080000 0.158600 -0.515464 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.173532 -0.482144 + vertex -0.080000 0.158600 -0.515464 + vertex -0.113120 0.180976 -0.457328 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.084852 -0.084852 0.000000 + vertex 0.062184 -0.100000 0.000000 + vertex 0.084852 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.106408 -0.052596 -0.181912 + vertex 0.110868 -0.045924 -0.183268 + vertex 0.084852 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 -0.084852 -0.058564 + vertex -0.062184 -0.100000 0.000000 + vertex -0.084852 -0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 -0.084852 -0.058564 + vertex -0.110868 -0.045924 -0.183268 + vertex -0.106408 -0.052596 -0.181912 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 -0.100000 0.000000 + vertex -0.038268 -0.092392 0.000000 + vertex -0.062184 -0.100000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.062184 -0.100000 0.000000 + vertex 0.038268 -0.092392 0.000000 + vertex 0.000000 -0.100000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 -0.084852 -0.058564 + vertex -0.106408 -0.052596 -0.181912 + vertex -0.091848 -0.055048 -0.172496 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091848 -0.055048 -0.172496 + vertex 0.106408 -0.052596 -0.181912 + vertex 0.084852 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.230680 0.187352 -0.387176 + vertex 0.240000 0.180092 -0.340716 + vertex 0.221720 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.230680 0.187352 -0.387176 + vertex 0.221720 -0.261624 -0.549812 + vertex 0.221720 0.185400 -0.434204 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221720 -0.261624 -0.549812 + vertex -0.240000 0.180092 -0.340716 + vertex -0.230680 0.187352 -0.387176 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221720 -0.261624 -0.549812 + vertex -0.230680 0.187352 -0.387176 + vertex -0.221720 0.185400 -0.434204 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.153880 0.185888 -0.371092 + vertex 0.147840 0.187736 -0.401992 + vertex 0.147840 -0.269288 -0.520188 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.153880 0.185888 -0.371092 + vertex 0.147840 -0.269288 -0.520188 + vertex 0.160000 0.180092 -0.340716 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147840 -0.269288 -0.520188 + vertex -0.147840 0.187736 -0.401992 + vertex -0.153880 0.185888 -0.371092 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147840 -0.269288 -0.520188 + vertex -0.153880 0.185888 -0.371092 + vertex -0.160000 0.180092 -0.340716 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221720 0.185400 -0.434204 + vertex -0.194440 0.174556 -0.479232 + vertex -0.169720 -0.242124 -0.625212 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221720 0.185400 -0.434204 + vertex -0.169720 -0.242124 -0.625212 + vertex -0.221720 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.169720 -0.242124 -0.625212 + vertex 0.194440 0.174556 -0.479232 + vertex 0.221720 0.185400 -0.434204 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.169720 -0.242124 -0.625212 + vertex 0.221720 0.185400 -0.434204 + vertex 0.221720 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.130200 0.185988 -0.429672 + vertex -0.147840 0.187736 -0.401992 + vertex -0.147840 -0.269288 -0.520188 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.130200 0.185988 -0.429672 + vertex -0.147840 -0.269288 -0.520188 + vertex -0.113120 -0.256296 -0.570416 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147840 -0.269288 -0.520188 + vertex 0.147840 0.187736 -0.401992 + vertex 0.130200 0.185988 -0.429672 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147840 -0.269288 -0.520188 + vertex 0.130200 0.185988 -0.429672 + vertex 0.113120 -0.256296 -0.570416 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.173532 -0.482144 + vertex 0.080000 -0.250748 -0.591868 + vertex 0.113120 -0.256296 -0.570416 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.173532 -0.482144 + vertex 0.113120 -0.256296 -0.570416 + vertex 0.113120 0.180976 -0.457328 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113120 -0.256296 -0.570416 + vertex -0.080000 -0.250748 -0.591868 + vertex -0.080000 0.173532 -0.482144 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113120 -0.256296 -0.570416 + vertex -0.080000 0.173532 -0.482144 + vertex -0.113120 0.180976 -0.457328 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.108480 0.111892 -0.575924 + vertex -0.091840 0.092164 -0.592468 + vertex -0.091840 -0.229104 -0.675556 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.108480 0.111892 -0.575924 + vertex -0.091840 -0.229104 -0.675556 + vertex -0.108480 -0.231880 -0.664828 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091840 -0.229104 -0.675556 + vertex 0.091840 0.092164 -0.592468 + vertex 0.108480 0.111892 -0.575924 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091840 -0.229104 -0.675556 + vertex 0.108480 0.111892 -0.575924 + vertex 0.108480 -0.231880 -0.664828 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.127480 0.128728 -0.558432 + vertex -0.108480 0.111892 -0.575924 + vertex -0.108480 -0.231880 -0.664828 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.127480 0.128728 -0.558432 + vertex -0.108480 -0.231880 -0.664828 + vertex -0.127480 -0.235064 -0.652512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.108480 -0.231880 -0.664828 + vertex 0.108480 0.111892 -0.575924 + vertex 0.127480 0.128728 -0.558432 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.108480 -0.231880 -0.664828 + vertex 0.127480 0.128728 -0.558432 + vertex 0.127480 -0.235064 -0.652512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.148120 0.142892 -0.540512 + vertex -0.127480 0.128728 -0.558432 + vertex -0.127480 -0.235064 -0.652512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.148120 0.142892 -0.540512 + vertex -0.127480 -0.235064 -0.652512 + vertex -0.148120 -0.238520 -0.639152 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.127480 -0.235064 -0.652512 + vertex 0.127480 0.128728 -0.558432 + vertex 0.148120 0.142892 -0.540512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.127480 -0.235064 -0.652512 + vertex 0.148120 0.142892 -0.540512 + vertex 0.148120 -0.238520 -0.639152 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169720 -0.242124 -0.625212 + vertex -0.169720 0.154544 -0.522628 + vertex -0.148120 0.142892 -0.540512 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169720 -0.242124 -0.625212 + vertex -0.148120 0.142892 -0.540512 + vertex -0.148120 -0.238520 -0.639152 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.148120 0.142892 -0.540512 + vertex 0.169720 0.154544 -0.522628 + vertex 0.169720 -0.242124 -0.625212 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.148120 0.142892 -0.540512 + vertex 0.169720 -0.242124 -0.625212 + vertex 0.148120 -0.238520 -0.639152 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091840 -0.229104 -0.675556 + vertex -0.091840 0.092164 -0.592468 + vertex -0.080000 0.087024 -0.596236 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091840 -0.229104 -0.675556 + vertex -0.080000 0.087024 -0.596236 + vertex -0.080000 -0.228516 -0.677840 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091840 -0.229104 -0.675556 + vertex 0.080000 -0.228516 -0.677840 + vertex 0.080000 0.087024 -0.596236 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091840 -0.229104 -0.675556 + vertex 0.080000 0.087024 -0.596236 + vertex 0.091840 0.092164 -0.592468 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113136 -0.256292 -0.570432 + vertex -0.147824 -0.269288 -0.520176 + vertex -0.221732 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113136 -0.256292 -0.570432 + vertex -0.221732 -0.261624 -0.549812 + vertex -0.169704 -0.242128 -0.625196 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147824 -0.269288 -0.520176 + vertex -0.160000 -0.284620 -0.460896 + vertex -0.239996 -0.284620 -0.460896 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147824 -0.269288 -0.520176 + vertex -0.239996 -0.284620 -0.460896 + vertex -0.221732 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 -0.284620 -0.460896 + vertex 0.147824 -0.269288 -0.520176 + vertex 0.221732 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 -0.284620 -0.460896 + vertex 0.221732 -0.261624 -0.549812 + vertex 0.239996 -0.284620 -0.460896 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147824 -0.269288 -0.520176 + vertex 0.113136 -0.256292 -0.570432 + vertex 0.169704 -0.242128 -0.625196 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147824 -0.269288 -0.520176 + vertex 0.169704 -0.242128 -0.625196 + vertex 0.221732 -0.261624 -0.549812 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169720 -0.242124 -0.625212 + vertex -0.091840 -0.229104 -0.675556 + vertex -0.080000 -0.250748 -0.591868 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169720 -0.242124 -0.625212 + vertex -0.080000 -0.250748 -0.591868 + vertex -0.113120 -0.256296 -0.570416 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 -0.250748 -0.591868 + vertex 0.091840 -0.229104 -0.675556 + vertex 0.169720 -0.242124 -0.625212 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 -0.250748 -0.591868 + vertex 0.169720 -0.242124 -0.625212 + vertex 0.113120 -0.256296 -0.570416 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.064792 -0.510264 + vertex -0.080000 -0.250748 -0.591868 + vertex -0.080000 -0.228516 -0.677840 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.064792 -0.510264 + vertex -0.080000 -0.228516 -0.677840 + vertex -0.080000 0.087024 -0.596236 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 -0.228516 -0.677840 + vertex 0.080000 -0.250748 -0.591868 + vertex 0.080000 0.064792 -0.510264 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 -0.228516 -0.677840 + vertex 0.080000 0.064792 -0.510264 + vertex 0.080000 0.087024 -0.596236 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.087024 -0.596236 + vertex -0.080000 0.114932 -0.572988 + vertex -0.080000 0.138908 -0.545880 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.087024 -0.596236 + vertex -0.080000 0.138908 -0.545880 + vertex -0.080000 0.064792 -0.510264 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.173532 -0.482144 + vertex -0.080000 0.064792 -0.510264 + vertex -0.080000 0.138908 -0.545880 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.080000 0.173532 -0.482144 + vertex -0.080000 0.138908 -0.545880 + vertex -0.080000 0.158600 -0.515464 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.138908 -0.545880 + vertex 0.080000 0.114932 -0.572988 + vertex 0.080000 0.087024 -0.596236 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.138908 -0.545880 + vertex 0.080000 0.087024 -0.596236 + vertex 0.080000 0.064792 -0.510264 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.138908 -0.545880 + vertex 0.080000 0.064792 -0.510264 + vertex 0.080000 0.173532 -0.482144 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.080000 0.138908 -0.545880 + vertex 0.080000 0.173532 -0.482144 + vertex 0.080000 0.158600 -0.515464 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.110868 -0.045924 -0.183268 + vertex 0.110868 -0.045924 0.000000 + vertex 0.084852 -0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.110868 -0.045924 -0.183268 + vertex 0.084852 -0.084852 0.000000 + vertex 0.084852 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.120000 0.000000 -0.177692 + vertex 0.120000 0.000000 0.000000 + vertex 0.110868 -0.045924 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.120000 0.000000 -0.177692 + vertex 0.110868 -0.045924 0.000000 + vertex 0.110868 -0.045924 -0.183268 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.110868 0.045924 -0.159508 + vertex 0.110868 0.045924 0.000000 + vertex 0.120000 0.000000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.110868 0.045924 -0.159508 + vertex 0.120000 0.000000 0.000000 + vertex 0.120000 0.000000 -0.177692 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091848 0.074384 -0.139024 + vertex 0.091848 0.074384 0.000000 + vertex 0.110868 0.045924 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091848 0.074384 -0.139024 + vertex 0.110868 0.045924 0.000000 + vertex 0.110868 0.045924 -0.159508 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.084852 0.084852 0.000000 + vertex 0.091848 0.074384 0.000000 + vertex 0.091848 0.074384 -0.139024 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.084852 0.084852 0.000000 + vertex 0.091848 0.074384 -0.139024 + vertex 0.084852 0.084852 -0.139980 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.045924 0.110868 -0.120156 + vertex 0.045924 0.110868 0.000000 + vertex 0.084852 0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.045924 0.110868 -0.120156 + vertex 0.084852 0.084852 0.000000 + vertex 0.084852 0.084852 -0.139980 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.120000 -0.108376 + vertex 0.000000 0.120000 0.000000 + vertex 0.045924 0.110868 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.120000 -0.108376 + vertex 0.045924 0.110868 0.000000 + vertex 0.045924 0.110868 -0.120156 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 -0.084852 0.000000 + vertex -0.110868 -0.045924 0.000000 + vertex -0.110868 -0.045924 -0.183268 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 -0.084852 0.000000 + vertex -0.110868 -0.045924 -0.183268 + vertex -0.084852 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.110868 -0.045924 0.000000 + vertex -0.120000 0.000000 0.000000 + vertex -0.120000 0.000000 -0.177692 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.110868 -0.045924 0.000000 + vertex -0.120000 0.000000 -0.177692 + vertex -0.110868 -0.045924 -0.183268 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.120000 0.000000 0.000000 + vertex -0.110868 0.045924 0.000000 + vertex -0.110868 0.045924 -0.159508 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.120000 0.000000 0.000000 + vertex -0.110868 0.045924 -0.159508 + vertex -0.120000 0.000000 -0.177692 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.110868 0.045924 0.000000 + vertex -0.091848 0.074384 0.000000 + vertex -0.091848 0.074384 -0.139024 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.110868 0.045924 0.000000 + vertex -0.091848 0.074384 -0.139024 + vertex -0.110868 0.045924 -0.159508 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091848 0.074384 -0.139024 + vertex -0.091848 0.074384 0.000000 + vertex -0.084852 0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091848 0.074384 -0.139024 + vertex -0.084852 0.084852 0.000000 + vertex -0.084852 0.084852 -0.139980 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 0.084852 0.000000 + vertex -0.045924 0.110868 0.000000 + vertex -0.045924 0.110868 -0.120156 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.084852 0.084852 0.000000 + vertex -0.045924 0.110868 -0.120156 + vertex -0.084852 0.084852 -0.139980 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.045924 0.110868 0.000000 + vertex 0.000000 0.120000 0.000000 + vertex 0.000000 0.120000 -0.108376 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.045924 0.110868 0.000000 + vertex 0.000000 0.120000 -0.108376 + vertex -0.045924 0.110868 -0.120156 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.100000 0.000000 0.000000 + vertex 0.092392 -0.038268 0.000000 + vertex 0.110868 -0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.100000 0.000000 0.000000 + vertex 0.110868 -0.045920 0.000000 + vertex 0.120000 0.000000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.092392 -0.038268 0.000000 + vertex 0.070712 -0.070712 0.000000 + vertex 0.084852 -0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.092392 -0.038268 0.000000 + vertex 0.084852 -0.084852 0.000000 + vertex 0.110868 -0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.070712 -0.070712 0.000000 + vertex 0.038268 -0.092392 0.000000 + vertex 0.062184 -0.100000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.070712 -0.070712 0.000000 + vertex 0.062184 -0.100000 0.000000 + vertex 0.084852 -0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.038268 -0.092392 0.000000 + vertex -0.070712 -0.070712 0.000000 + vertex -0.084852 -0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.038268 -0.092392 0.000000 + vertex -0.084852 -0.084852 0.000000 + vertex -0.062184 -0.100000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.070712 -0.070712 0.000000 + vertex -0.092392 -0.038268 0.000000 + vertex -0.110868 -0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.070712 -0.070712 0.000000 + vertex -0.110868 -0.045920 0.000000 + vertex -0.084852 -0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.092392 -0.038268 0.000000 + vertex -0.100000 0.000000 0.000000 + vertex -0.120000 0.000000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.092392 -0.038268 0.000000 + vertex -0.120000 0.000000 0.000000 + vertex -0.110868 -0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.100000 0.000000 0.000000 + vertex -0.092392 0.038268 0.000000 + vertex -0.110868 0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.100000 0.000000 0.000000 + vertex -0.110868 0.045920 0.000000 + vertex -0.120000 0.000000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.092392 0.038268 0.000000 + vertex -0.070712 0.070708 0.000000 + vertex -0.084852 0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.092392 0.038268 0.000000 + vertex -0.084852 0.084852 0.000000 + vertex -0.110868 0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.070712 0.070708 0.000000 + vertex -0.038268 0.092392 0.000000 + vertex -0.045920 0.110868 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.070712 0.070708 0.000000 + vertex -0.045920 0.110868 0.000000 + vertex -0.084852 0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.038268 0.092392 0.000000 + vertex 0.000000 0.100000 0.000000 + vertex 0.000000 0.120000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.038268 0.092392 0.000000 + vertex 0.000000 0.120000 0.000000 + vertex -0.045920 0.110868 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.100000 0.000000 + vertex 0.038268 0.092392 0.000000 + vertex 0.045920 0.110868 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.100000 0.000000 + vertex 0.045920 0.110868 0.000000 + vertex 0.000000 0.120000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.038268 0.092392 0.000000 + vertex 0.070712 0.070708 0.000000 + vertex 0.084852 0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.038268 0.092392 0.000000 + vertex 0.084852 0.084852 0.000000 + vertex 0.045920 0.110868 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.070712 0.070708 0.000000 + vertex 0.092392 0.038268 0.000000 + vertex 0.110868 0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.070712 0.070708 0.000000 + vertex 0.110868 0.045920 0.000000 + vertex 0.084852 0.084852 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.092392 0.038268 0.000000 + vertex 0.100000 0.000000 0.000000 + vertex 0.120000 0.000000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.092392 0.038268 0.000000 + vertex 0.120000 0.000000 0.000000 + vertex 0.110868 0.045920 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.062184 -0.100000 0.000000 + vertex -0.084852 -0.084852 -0.058564 + vertex 0.084852 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.062184 -0.100000 0.000000 + vertex 0.084852 -0.084852 -0.058564 + vertex 0.062184 -0.100000 0.000000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 -0.084852 -0.058564 + vertex -0.084852 -0.084852 -0.058564 + vertex -0.091848 -0.055048 -0.172496 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 -0.084852 -0.058564 + vertex -0.091848 -0.055048 -0.172496 + vertex 0.000000 -0.059656 -0.154824 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091848 -0.055048 -0.172496 + vertex 0.084852 -0.084852 -0.058564 + vertex 0.000000 -0.084852 -0.058564 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091848 -0.055048 -0.172496 + vertex 0.000000 -0.084852 -0.058564 + vertex 0.000000 -0.059656 -0.154824 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.240000 0.180080 -0.340720 + vertex -0.240000 -0.284632 -0.460904 + vertex -0.221731 -0.307628 -0.371985 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.240000 0.180080 -0.340720 + vertex -0.221731 -0.307628 -0.371985 + vertex -0.221731 0.157084 -0.251801 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221731 0.157084 -0.251801 + vertex -0.221731 -0.307628 -0.371985 + vertex -0.169706 -0.327123 -0.296603 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.221731 0.157084 -0.251801 + vertex -0.169706 -0.327123 -0.296603 + vertex -0.169706 0.137589 -0.176419 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169706 0.137589 -0.176419 + vertex -0.169706 -0.327123 -0.296603 + vertex -0.091844 -0.340150 -0.246235 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.169706 0.137589 -0.176419 + vertex -0.091844 -0.340150 -0.246235 + vertex -0.091844 0.124562 -0.126051 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091844 0.124562 -0.126051 + vertex -0.091844 -0.340150 -0.246235 + vertex 0.000000 -0.344724 -0.228548 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.091844 0.124562 -0.126051 + vertex 0.000000 -0.344724 -0.228548 + vertex 0.000000 0.119988 -0.108364 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.119988 -0.108364 + vertex 0.000000 -0.344724 -0.228548 + vertex 0.091844 -0.340150 -0.246235 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.119988 -0.108364 + vertex 0.091844 -0.340150 -0.246235 + vertex 0.091844 0.124562 -0.126051 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091844 0.124562 -0.126051 + vertex 0.091844 -0.340150 -0.246235 + vertex 0.169706 -0.327123 -0.296603 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.091844 0.124562 -0.126051 + vertex 0.169706 -0.327123 -0.296603 + vertex 0.169706 0.137589 -0.176419 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.169706 0.137589 -0.176419 + vertex 0.169706 -0.327123 -0.296603 + vertex 0.221731 -0.307628 -0.371985 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.169706 0.137589 -0.176419 + vertex 0.221731 -0.307628 -0.371985 + vertex 0.221731 0.157084 -0.251801 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.221731 0.157084 -0.251801 + vertex 0.221731 -0.307628 -0.371985 + vertex 0.240000 -0.284632 -0.460904 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.221731 0.157084 -0.251801 + vertex 0.240000 -0.284632 -0.460904 + vertex 0.240000 0.180080 -0.340720 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 0.180080 -0.340720 + vertex 0.160000 -0.284632 -0.460904 + vertex 0.147821 -0.299962 -0.401625 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 0.180080 -0.340720 + vertex 0.147821 -0.299962 -0.401625 + vertex 0.147821 0.164750 -0.281441 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147821 0.164750 -0.281441 + vertex 0.147821 -0.299962 -0.401625 + vertex 0.113137 -0.312959 -0.351370 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147821 0.164750 -0.281441 + vertex 0.113137 -0.312959 -0.351370 + vertex 0.113137 0.151753 -0.231186 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113137 0.151753 -0.231186 + vertex 0.113137 -0.312959 -0.351370 + vertex 0.061229 -0.321643 -0.317791 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113137 0.151753 -0.231186 + vertex 0.061229 -0.321643 -0.317791 + vertex 0.061229 0.143069 -0.197607 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.061229 0.143069 -0.197607 + vertex 0.061229 -0.321643 -0.317791 + vertex 0.000000 -0.324692 -0.306000 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.061229 0.143069 -0.197607 + vertex 0.000000 -0.324692 -0.306000 + vertex 0.000000 0.140020 -0.185816 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.140020 -0.185816 + vertex 0.000000 -0.324692 -0.306000 + vertex -0.061229 -0.321643 -0.317791 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.140020 -0.185816 + vertex -0.061229 -0.321643 -0.317791 + vertex -0.061229 0.143069 -0.197607 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.061229 0.143069 -0.197607 + vertex -0.061229 -0.321643 -0.317791 + vertex -0.113137 -0.312959 -0.351370 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.061229 0.143069 -0.197607 + vertex -0.113137 -0.312959 -0.351370 + vertex -0.113137 0.151753 -0.231186 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113137 0.151753 -0.231186 + vertex -0.113137 -0.312959 -0.351370 + vertex -0.147821 -0.299962 -0.401625 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113137 0.151753 -0.231186 + vertex -0.147821 -0.299962 -0.401625 + vertex -0.147821 0.164750 -0.281441 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147821 0.164750 -0.281441 + vertex -0.147821 -0.299962 -0.401625 + vertex -0.160000 -0.284632 -0.460904 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147821 0.164750 -0.281441 + vertex -0.160000 -0.284632 -0.460904 + vertex -0.160000 0.180080 -0.340720 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.160000 0.180080 -0.340720 + vertex -0.240000 0.180080 -0.340720 + vertex -0.221731 0.157082 -0.251801 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.160000 0.180080 -0.340720 + vertex -0.221731 0.157082 -0.251801 + vertex -0.147821 0.164748 -0.281441 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147821 0.164748 -0.281441 + vertex -0.221731 0.157082 -0.251801 + vertex -0.169706 0.137586 -0.176419 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147821 0.164748 -0.281441 + vertex -0.169706 0.137586 -0.176419 + vertex -0.113137 0.151750 -0.231186 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113137 0.151750 -0.231186 + vertex -0.169706 0.137586 -0.176419 + vertex -0.091844 0.124559 -0.126051 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113137 0.151750 -0.231186 + vertex -0.091844 0.124559 -0.126051 + vertex -0.061229 0.143066 -0.197607 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.061229 0.143066 -0.197607 + vertex -0.091844 0.124559 -0.126051 + vertex 0.000000 0.119984 -0.108364 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.061229 0.143066 -0.197607 + vertex 0.000000 0.119984 -0.108364 + vertex 0.000000 0.140016 -0.185816 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.140016 -0.185816 + vertex 0.000000 0.119984 -0.108364 + vertex 0.091844 0.124559 -0.126051 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 0.140016 -0.185816 + vertex 0.091844 0.124559 -0.126051 + vertex 0.061229 0.143066 -0.197607 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.061229 0.143066 -0.197607 + vertex 0.091844 0.124559 -0.126051 + vertex 0.169706 0.137586 -0.176419 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.061229 0.143066 -0.197607 + vertex 0.169706 0.137586 -0.176419 + vertex 0.113137 0.151750 -0.231186 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113137 0.151750 -0.231186 + vertex 0.169706 0.137586 -0.176419 + vertex 0.221731 0.157082 -0.251801 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113137 0.151750 -0.231186 + vertex 0.221731 0.157082 -0.251801 + vertex 0.147821 0.164748 -0.281441 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147821 0.164748 -0.281441 + vertex 0.221731 0.157082 -0.251801 + vertex 0.240000 0.180080 -0.340720 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147821 0.164748 -0.281441 + vertex 0.240000 0.180080 -0.340720 + vertex 0.160000 0.180080 -0.340720 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 -0.284640 -0.460880 + vertex 0.240000 -0.284640 -0.460880 + vertex 0.221731 -0.307638 -0.371961 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.160000 -0.284640 -0.460880 + vertex 0.221731 -0.307638 -0.371961 + vertex 0.147821 -0.299972 -0.401601 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147821 -0.299972 -0.401601 + vertex 0.221731 -0.307638 -0.371961 + vertex 0.169706 -0.327134 -0.296580 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.147821 -0.299972 -0.401601 + vertex 0.169706 -0.327134 -0.296580 + vertex 0.113137 -0.312970 -0.351346 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113137 -0.312970 -0.351346 + vertex 0.169706 -0.327134 -0.296580 + vertex 0.091844 -0.340161 -0.246211 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.113137 -0.312970 -0.351346 + vertex 0.091844 -0.340161 -0.246211 + vertex 0.061229 -0.321654 -0.317767 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.061229 -0.321654 -0.317767 + vertex 0.091844 -0.340161 -0.246211 + vertex 0.000000 -0.344736 -0.228524 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.061229 -0.321654 -0.317767 + vertex 0.000000 -0.344736 -0.228524 + vertex 0.000000 -0.324704 -0.305976 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 -0.324704 -0.305976 + vertex 0.000000 -0.344736 -0.228524 + vertex -0.091844 -0.340161 -0.246211 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex 0.000000 -0.324704 -0.305976 + vertex -0.091844 -0.340161 -0.246211 + vertex -0.061229 -0.321654 -0.317767 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.061229 -0.321654 -0.317767 + vertex -0.091844 -0.340161 -0.246211 + vertex -0.169706 -0.327134 -0.296580 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.061229 -0.321654 -0.317767 + vertex -0.169706 -0.327134 -0.296580 + vertex -0.113137 -0.312970 -0.351346 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113137 -0.312970 -0.351346 + vertex -0.169706 -0.327134 -0.296580 + vertex -0.221731 -0.307638 -0.371961 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.113137 -0.312970 -0.351346 + vertex -0.221731 -0.307638 -0.371961 + vertex -0.147821 -0.299972 -0.401601 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147821 -0.299972 -0.401601 + vertex -0.221731 -0.307638 -0.371961 + vertex -0.240000 -0.284640 -0.460880 + endloop + endfacet + facet normal 0.000000 0.000000 0.000000 + outer loop + vertex -0.147821 -0.299972 -0.401601 + vertex -0.240000 -0.284640 -0.460880 + vertex -0.160000 -0.284640 -0.460880 + endloop + endfacet +endsolid MYSOLID diff --git a/tests/Service/Stl/StlFixer/fixtures/binary.stl b/tests/Service/Stl/StlFixer/fixtures/binary.stl new file mode 100644 index 0000000..1537f19 --- /dev/null +++ b/tests/Service/Stl/StlFixer/fixtures/binary.stl @@ -0,0 +1,106 @@ +Processed by ADMesh version 0.98.2 � 1{?�A��1H���@�Z���濙�@�|��$(6@�� +@���zp'@ A1{��A��1H��� +����zp'@����|��$(6@����Z���� A {�A>$�G=���?�|��$(6@���?�Z����6<�?�u��&X,@ A {?A>$�G=6<���u��&X,@��̿�Z������̿�|��$(6@ Al�T�v� ��k�����Z���n߿�=ٿ�=����ſ�=ٿ^����@ Am�T?u� ��k��=�?^����@�=�?�=����ſ��?�Z���n߿ A��T?� ?�>)ː�z����$@)ː�OX��8��𧦿�~���� A��T�� ?�>�?�~����)ː?OX��8��)ː?z����$@ A�|�ܕD���#���L?�˾� +�^���L?-[�����Ck?������k� A���"C���%�Ck?������k���L?-[������ڊ?�K���8�� A�>
��/Rt��?�~�����=�?�=����ſ)ː?OX��8�� A?��"����l��=�?�=����ſ�?�~������?�Z���n߿ Aŏ�=w��J}�6<�?/���VM���?�Z���n߿�?�~���� A�h���M�Yz���?�Z���n߿6<�?/���VM��
+@����O� A�/Y=>�I=T�f��?�m�����
+@����O�6<�?/���VM� A|lڼ��J����
+@����O�f��?�m�����@��w���� A�<�c(>�{|���@��w����f��?�m���� @�Z���� A ��?>�v{����?�Z���� @�Z����f��?�m���� A�j��X>:�|���@��w���� @�Z���濙�@�Z���� Am�
+=9o�~|M����������涿��L����˿�,�������Ť� A��<�).���;��,�������Ť���L�~���`ͱ��ڊ��K���8�� A��<"C���%��ڊ��K���8����L�-[�����Ck�������k� AHd��&�Ⱦ��j�)ː�OX��8����L����˿���������涿 A/���/Rt�)ː�OX��8���=ٿ�=����ſ𧦿�~���� A���=4��(�b��=ٿ�=����ſ)ː�OX��8�����������涿 A?�=�"����l�����Z���n߿𧦿�~�����=ٿ�=����ſ AƏ��w��J}�𧦿�~��������Z���n߿6<��/���VM� A�h=��M�Yz���
+�����O�6<��/���VM�����Z���n߿ A�/Y�?�I=T�6<��/���VM��
+�����O�f�Ŀ�m���� A����?>�v{�f�Ŀ�m���� ��Z������̿�Z���� A���c(>�{|� ��Z����f�Ŀ�m��������w���� A|l�<��J�������w����f�Ŀ�m�����
+�����O� A X>:�|�����Z���� ��Z���濝����w���� A�a�;/����w?��L�����@@��L��e���z @Ck��-��f�@ AÐa9;/����w?Ck?�-��f�@��L?�e���z @��L?����@@ A�|=ܕD���#�Ck�������k���L�-[�������L��˾�
+�^� A9�>�P�)���?���L�-[������ڊ��K���8����L�~���`ͱ� A��( ���V���L�~���`ͱ��,�������Ť���L����˿ Anν#Qо�lh���L��8Y?����8Y? A�<� G�T?�8Y�����8Y?�0�21�$ �?�8Y�؛o$�8Y? A��T�!�3�E?�8Y�����8Y?:鍿B�꿂!�>�3�����P�? A �?61�� 21�$ �?��þDs�$�l?�0�21�$ �? A �?61���0?21�$ �?���>Ds�$�l? 21�$ �? AʯJ:U�����w?�8Y�����8Y?�3�����P�?�!k�~�ܿB�? A��J�V�����w?�!k?~�ܿB�?�3�?���P�?�8Y?����8Y? A�{?áA�;eH���@��w����@�Z���濛�
+@���zp'@ A�{?�lA�lH���@��w���ᅴ�
+@���zp'@��
+@����O� A�{���A�:eH���
+����zp'@����Z���濝����w���� A�{��lA�mH���
+����zp'@�����w���ᅴ�
+�����O� A�{��SA>��G=f��?�m����6<�?/���VM�6<�?�u��&X,@ A{���@>�_G=f��?�m����6<�?�u��&X,@���?�Z���� A�{?�SA>��G=6<���u��&X,@6<��/���VM�f�Ŀ�m���� A{?��@>�_G=6<���u��&X,@f�Ŀ�m������̿�Z���� A%�T�+� ��B���
+�����O�����Z���n߿�=ٿ^����@ A��T�3� ��^���
+�����O��=ٿ^����@��
+����zp'@ A%�T?*� ��B��=�?^����@��?�Z���n߿��
+@����O� A��T?3� ��^��=�?^����@��
+@����O��
+@���zp'@ A�T?�� ?^�>𧦿�~����6<��/���VM�6<���u��&X,@ A��T?.� ?|�>𧦿�~����6<���u��&X,@)ː�z����$@ A�T��� ?]�>6<�?�u��&X,@6<�?/���VM��?�~���� A��T�.� ?}�>6<�?�u��&X,@�?�~����)ː?z����$@ AdY�,�M?�U>��L?��L?)ː�z����$@��L��e���z @��L�)ː�z����$@��L�:N�#VU��=ٿ^����@���������涿����U����@ A��
+?�;N��VU����?�����涿�=�?�=����ſ�=�?^����@ A��
+?<:N�"VU����?�����涿�=�?^����@���?U����@ A�?H�cs�!r{�Ck��-��f�@Ck�������k���L��˾�
+�^� A�H�s��r{�Ck��-��f�@��L��˾�
+�^���L�����@@ A�H>s��r{�Ck?�-��f�@��L?����@@��L?�˾�
+�^� A�?H>ds�"r{�Ck?�-��f�@��L?�˾�
+�^�Ck?������k� A���z/����w?hА�ʉ���$@�6���t��&X,@��
+����zp'@ A�{�3��[�w?hА�ʉ���$@��
+����zp'@�8ٿ��@�@ A���14��:�w?�6���t��&X,@��̿�|��$(6@���|��$(6@ A4�7�2��l�w?�6���t��&X,@���|��$(6@��
+����zp'@ A�nE��3��D�w?���?�|��$(6@�6�?�t��&X,@��
+@���zp'@ A �2��e�w?���?�|��$(6@��
+@���zp'@�@�|��$(6@ Ah��761����w?�6�?�t��&X,@hА?ʉ���$@�8�?��@�@ Ar]���1����w?�6�?�t��&X,@�8�?��@�@��
+@���zp'@ A/�w��2��b�w?�=ٿ^����@Ck��-��f�@��L��e���z @ A�K� 3��[�w?�=ٿ^����@��L��e���z @)ː�z����$@ AP�w6�2��b�w?��L?�e���z @Ck?�-��f�@�=�?^����@ A��K6 3��[�w?��L?�e���z @�=�?^����@)ː?z����$@ A �? ��L��H���%���L��e���z @��L�����@@ A �? ��L��H���%���L�����@@��L��˾�
+�^� A �� ��L?����@@��L?�e���z @��L?�H���%� A �� ��L?����@@��L?�H���%���L?�˾�
+�^� A �? ��L��˾�
+�^���L�-[�������L�~���`ͱ� A �? � ��L��˾�
+�^���L�~���`ͱ���L��H���%� A �? ��L�?:�?B�꿂!�>:�?��$�!�>�8Y?؛o$�8Y? A��T?$���>?:�?B�꿂!�>�8Y?؛o$�8Y?�8Y?����8Y? A�{?�Kܣc�G>���?r��z����? �:�?��$�!�> A�{?�d�G>���?r��z�:�?��$�!�>:�?B�꿂!�> A�{? d�G�:�?�+̿�!�:�?��$�!뾙��? � A�{?;u/c�G�:�?�+̿�!뾙��? ����?r��z� A��T? �>��!k?c�Ll>��!k?{R$Ll>�:�?��$�!� A��T?69��>��!k?c�Ll>�:�?��$�!�:�?�+̿�!� A��T?~;�@?��8Y?؛o$�8Y��!k?{R$Ll>��!k?c�Ll>� A��T? @?��8Y?؛o$�8Y��!k?c�Ll>��8Y?�,���8Y� A�>? ��T��!�>�̙�:鍿�!�>t��$:鍿�8Y?؛o$�8Y� A�>?ʇ=/��T��!�>�̙�:鍿�8Y?؛o$�8Y��8Y?�,���8Y� Ad�G>�̐3�{� ��������