From d306cb6d474ace77725537783e4a9600767d0322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=BCbner?= Date: Wed, 24 May 2017 16:21:35 +0200 Subject: [PATCH] Add Stl sevices tests --- app/config/config_test.yml | 16 +- .../Service/Stl/StlConverterService.php | 4 +- src/AppBundle/Service/Stl/StlFixerService.php | 15 +- tests/Service/BaseTest.php | 48 + .../Stl/StlConvertor/StlConvertorTest.php | 57 + .../StlConvertor/fixtures/ldraw/p/2-4edge.dat | 20 + .../StlConvertor/fixtures/ldraw/p/3-4edge.dat | 24 + .../StlConvertor/fixtures/ldraw/p/4-4edge.dat | 30 + .../fixtures/ldraw/parts/3820.dat | 318 +++ .../StlConvertor/fixtures/ldraw/parts/983.dat | 12 + tests/Service/Stl/StlFixer/StlFixerTest.php | 39 + tests/Service/Stl/StlFixer/fixtures/ascii.stl | 1710 +++++++++++++++++ .../Service/Stl/StlFixer/fixtures/binary.stl | 106 + .../Stl/StlRenderer/StlRendererTest.php | 36 + .../Stl/StlRenderer/fixtures/973c00.png | Bin 0 -> 50740 bytes .../Stl/StlRenderer/fixtures/973c00.stl | Bin 0 -> 96984 bytes 16 files changed, 2427 insertions(+), 8 deletions(-) create mode 100644 tests/Service/BaseTest.php create mode 100644 tests/Service/Stl/StlConvertor/StlConvertorTest.php create mode 100644 tests/Service/Stl/StlConvertor/fixtures/ldraw/p/2-4edge.dat create mode 100644 tests/Service/Stl/StlConvertor/fixtures/ldraw/p/3-4edge.dat create mode 100644 tests/Service/Stl/StlConvertor/fixtures/ldraw/p/4-4edge.dat create mode 100644 tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/3820.dat create mode 100644 tests/Service/Stl/StlConvertor/fixtures/ldraw/parts/983.dat create mode 100644 tests/Service/Stl/StlFixer/StlFixerTest.php create mode 100644 tests/Service/Stl/StlFixer/fixtures/ascii.stl create mode 100644 tests/Service/Stl/StlFixer/fixtures/binary.stl create mode 100644 tests/Service/Stl/StlRenderer/StlRendererTest.php create mode 100644 tests/Service/Stl/StlRenderer/fixtures/973c00.png create mode 100644 tests/Service/Stl/StlRenderer/fixtures/973c00.stl 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�>��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�{� �������� t��$:鍿 An�G>t��0�{� ���������!�>t��$:鍿�!�>�̙�:鍿 A��T�d�/�>?�8Y�؛o$�8Y?:鍿��$�!�>:鍿B�꿂!�> A��T� �>?�8Y�؛o$�8Y?:鍿B�꿂!�>�8Y�����8Y? A�{�;u/c�G>:鍿��$�!�>���� �����r��z� A�{� d�G>:鍿��$�!�>����r��z�:鍿B�꿂!�> A�{�� �d�G����� �:鍿��$�!�:鍿�+̿�!� A�{��K�#c�G����� �:鍿�+̿�!뾙���r��z� A��T��ET1�>�:鍿��$�!뾂!k�{ R$Ll>��!k�c�Ll>� A��T� ��>�:鍿��$�!뾂!k�c�Ll>�:鍿�+̿�!� A��T� @?��!k�c�Ll>��!k�{ R$Ll>��8Y�؛o$�8Y� A��T����0@?��!k�c�Ll>��8Y�؛o$�8Y��8Y��,���8Y� A�>���\���T��8Y�؛o$�8Y��!�t��$:鍿�!뾸̙�:鍿 A�>� ���T��8Y�؛o$�8Y��!뾸̙�:鍿�8Y��,���8Y� Ad�G�(V�3�{��!�t��$:鍿 :�?��$C�> A �?11�� �? �:�?��$C�>���? � AI�Θ �?41���l?+ �#���>�5?��G$�5?�8Y?؛o$�8Y? AS �?21���l?+ �#���>�8Y?؛o$�8Y?:�?��$C�> A�aИ �?31���5?��G$�5?���>Ds�$�l?�0?21�$ �? Ak� �?21���5?��G$�5?�0?21�$ �?�8Y?؛o$�8Y? A`�  �?21����þDs�$�l?�5���G$�5?�8Y�؛o$�8Y? AR� + �?41����þDs�$�l?�8Y�؛o$�8Y?�0�21�$ �? A�Y� �?21���5���G$�5?�l�+ �#���>:鍿��$C�> A9� �?31���5���G$�5?:鍿��$C�>�8Y�؛o$�8Y? AHy� �?11���l�+ �#���> �� ����� � A/Qg �?11���l�+ �#���>���� �:鍿��$C�> A˗_� �?11�$ �� ��l�+ �#��þ:鍿��$C� A �?11�$ �� �:鍿��$C뾙��� � A��r� �?31�$�l�+ �#��þ�5��G$25��8Y�؛o$�8Y� AS� �?21�$�l�+ �#��þ�8Y�؛o$�8Y�:鍿��$C� Aώ �?31�$�5��G$25���þDs�$�l�C�t��$:鍿 A�W� �?21�$�5��G$25�C�t��$:鍿�8Y�؛o$�8Y� A�Q�� �?21�$��þDs�$�l� 21�$ �� Ds�$�l�C�>t��$:鍿 A j1 �?31�$ 21�$ ��C�>t��$:鍿 Ds�$�l��5?�G$25��8Y?؛o$�8Y� A<� �?31�$���>Ds�$�l��8Y?؛o$�8Y�C�>t��$:鍿 A� �?21�$�5?�G$25��l?+ �#��þ:�?��$C� AQ`E �?21�$�5?�G$25�:�?��$C뾜8Y?؛o$�8Y� AHy�� �?11�$�l?+ �#��þ �? ����? � A/Qg� �?11�$�l?+ �#��þ���? �:�?��$C� A��0�6����w?�0�21�$ �?�8Y�����8Y?�8Y?����8Y? A �6����w?�0�21�$ �?�8Y?����8Y?�0?21�$ �? A ������w? ����8Y?�8Y�����8Y?�!k�~�ܿB� ? As�B9㥁��w? ����8Y?�!k�~�ܿB� ? �,ƿ(�? A�m1������w?�!k?~�ܿB� ?�8Y?����8Y? ����8Y? A��B�㥁��w?�!k?~�ܿB� ? ����8Y? �,ƿ(�? A�{��hA>�H=����Z���濙��B}��*6@h� +�n���D@ A�{��hA>�H=����Z����h� +�n���D@h� +�'!�Iɿ Ao�T��� ?1q>h� +�'!�Iɿh� +�n���D@C9ٿo�=��[Q@ Aq�T��� ?2q>h� +�'!�IɿC9ٿo�=��[Q@C9ٿ���)�� A�9��N?�.U>C9ٿ���)��C9ٿo�=��[Q@�k�$��-�Y@ A�9��N?�.U>C9ٿ���)���k�$��-�Y@�k�dX��zp�� A��G�Ws?w{>�k�dX��zp���k�$��-�Y@ NE���\@ A��G�Xs?w{>�k�dX��zp�� NE���\@ �������� A��G>Xs?w{> �������� NE���\@�k?$��-�Y@ A��G>Xs?w{> ���������k?$��-�Y@�k?dX��zp�� A�9?�N?�.U>�k?dX��zp���k?$��-�Y@C9�?o�=��[Q@ A�9?�N?�.U>�k?dX��zp��C9�?o�=��[Q@C9�?���)�� Ao�T?�� ?4q>C9�?���)��C9�?o�=��[Q@h� +@n���D@ Aq�T?�� ?/q>C9�?���)��h� +@n���D@h� +@'!�Iɿ A�{?�hA>�H=h� +@'!�Iɿh� +@n���D@��@B}��*6@ A�{?�hA>�H=h� +@'!�Iɿ��@B}��*6@��@�Z���� A�{��gA�H����?�Z�������?B}��*6@�5�?�����?@ A�{��gA�H����?�Z�����5�?�����?@�5�?K4�G�ҿ A?�T�� �|q��5�?K4�G�ҿ�5�?�����?@�А?v�`�3KH@ A@�T� � �{q��5�?K4�G�ҿ�А?v�`�3KH@�А?���l>¿ A�9��N��.U��А?���l>¿�А?v�`�3KH@ +�?�bK���M@ A�9��N��.U��А?���l>¿ +�?�bK���M@ +�?����� �� A?�G�is�,w{� +�?����� �� +�?�bK���M@ +�C���O@ A<�G�is�+w{� +�?����� �� +�C���O@ 0���9�� A=�G>is�+w{� 0���9�� +�C���O@ +���bK���M@ A;�G>is�+w{� 0���9�� +���bK���M@ +������� �� A�9?�N��.U� +������� �� +���bK���M@�А�v�`�3KH@ A�9?�N��.U� +������� ���А�v�`�3KH@�А����l>¿ A@�T?� �|q��А����l>¿�А�v�`�3KH@�5�������?@ A@�T? � �{q��А����l>¿�5�������?@�5��K4�G�ҿ A�{?�gA�H��5��K4�G�ҿ�5�������?@��̿B}��*6@ A�{?�gA�H��5��K4�G�ҿ��̿B}��*6@��̿�Z���� A t4�>/�w���̿�Z���濙���Z����h� +�'!��ɿ A���5�4�>*�w���̿�Z����h� +�'!��ɿ�5��K4���ҿ A���i3�>Q�w��5��K4���ҿh� +�'!��ɿC9ٿ���.�� A��)7�3�>G�w��5��K4���ҿC9ٿ���.���А����p=¿ A�֨63�>\�w��А����p=¿C9ٿ���.���k�dX��~o�� A�<�}3�>O�w��А����p=¿�k�dX��~o�� +��������� A�ء6S4�>3�w� +����������k�dX��~o�� ����\��� A92�614�>7�w� +��������� ����\��� 0��r8�� Ahڨ�24�>7�w� 0��r8�� ����\����k?dX��~o�� A��̶e4�>0�w� 0��r8���k?dX��~o�� +�?������� A\V#44�>;�w� +�?��������k?dX��~o��C9�?���.�� A<�e62�>��w� +�?�������C9�?���.���А?���p=¿ A +�v��2�>b�w��А?���p=¿C9�?���.��h� +@'!��ɿ A!ڨ�z4�>.�w��А?���p=¿h� +@'!��ɿ�5�?K4���ҿ A��m4�>/�w��5�?K4���ҿh� +@'!��ɿ��@�Z���� A�(�1�4�>)�w��5�?K4���ҿ��@�Z�������?�Z���� A l4��0�w?���?J{��l+6@��@J{��l+6@h� +@n�h�D@ Aо�5�4��+�w?���?J{��l+6@h� +@n�h�D@�5�?'���j�?@ A����3��F�w?�5�?'���j�?@h� +@n�h�D@C9�?��=��]Q@ At. 7�3��>�w?�5�?'���j�?@C9�?��=��]Q@�А?��`�MH@ A���5,3��Y�w?�А?��`�MH@C9�?��=��]Q@�k?7����Y@ A�~?�}3��N�w?�А?��`�MH@�k?7����Y@ +�?�^K���M@ ABq�6W4��2�w? +�?�^K���M@�k?7����Y@ _A���\@ A��674��6�w? +�?�^K���M@ _A���\@ �C���O@ A�1��74��6�w? �C���O@ _A���\@�k�7����Y@ A��˶h4��0�w? �C���O@�k�7����Y@ +���^K���M@ A:�86�3��@�w? +���^K���M@�k�7����Y@C9ٿ��=��]Q@ A |�6T2��u�w? +���^K���M@C9ٿ��=��]Q@�А���`�MH@ A+�M�d3��R�w?�А���`�MH@C9ٿ��=��]Q@h� +�n�h�D@ AS����4��-�w?�А���`�MH@h� +�n�h�D@�5��'���j�?@ A�ʅ�f4��0�w?�5��'���j�?@h� +�n�h�D@���J{��l+6@ AgB���4��*�w?�5��'���j�?@���J{��l+6@��̿J{��l+6@ A \ No newline at end of file diff --git a/tests/Service/Stl/StlRenderer/StlRendererTest.php b/tests/Service/Stl/StlRenderer/StlRendererTest.php new file mode 100644 index 0000000..c55c41e --- /dev/null +++ b/tests/Service/Stl/StlRenderer/StlRendererTest.php @@ -0,0 +1,36 @@ +stlRenderer = $this->get('service.stl.renderer'); + } + + public function tearDown() + { + $this->filesystem->delete('973c00.png'); + } + + public function testRendering() + { + $this->stlRenderer->render(__DIR__.'/fixtures/973c00.stl',$this->filesystem->getAdapter()->getPathPrefix()); + $this->assertTrue($this->filesystem->has('973c00.png')); + } +} \ No newline at end of file diff --git a/tests/Service/Stl/StlRenderer/fixtures/973c00.png b/tests/Service/Stl/StlRenderer/fixtures/973c00.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8c9bb52e6b438862b6bba0de2373f3341f5967 GIT binary patch literal 50740 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