Index: src/Shapes/unittests/ShapeFactoryUnitTest.cpp
===================================================================
--- src/Shapes/unittests/ShapeFactoryUnitTest.cpp	(revision 1c95882265b58588cd99b3ea7195b86467099a6b)
+++ src/Shapes/unittests/ShapeFactoryUnitTest.cpp	(revision d893672e01f0e26c4741145555239bb97390622a)
@@ -71,31 +71,18 @@
 void ShapeFactoryTest::typeTest()
 {
-  ShapeFactory::getInstance().setAngle(0., 0., 0.);
-  ShapeFactory::getInstance().setStretch(Vector(1., 1., 1.));
-  ShapeFactory::getInstance().setTranslation(Vector(0., 0., 0.));
+  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce(NowhereType).getType(), NowhereType );
 
-  ShapeFactory::getInstance().setType(NowhereType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce().getType(), NowhereType );
+  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce(EverywhereType).getType(), EverywhereType );
 
-  ShapeFactory::getInstance().setType(EverywhereType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce().getType(), EverywhereType );
+  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce(SphereType).getType(), SphereType );
 
-  ShapeFactory::getInstance().setType(SphereType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce().getType(), SphereType );
+  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce(CuboidType).getType(), CuboidType );
 
-  ShapeFactory::getInstance().setType(CuboidType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce().getType(), CuboidType );
-
-  ShapeFactory::getInstance().setType(CylinderType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce().getType(), CylinderType );
+  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().produce(CylinderType).getType(), CylinderType );
 }
 
 void ShapeFactoryTest::resizeTest()
 {
-  ShapeFactory::getInstance().setType(SphereType);
-  ShapeFactory::getInstance().setAngle(0., 0., 0.);
-  ShapeFactory::getInstance().setStretch(Vector(2., 2., 2.));
-  ShapeFactory::getInstance().setTranslation(Vector(0., 0., 0.));
-  Shape s = ShapeFactory::getInstance().produce();
+  Shape s = ShapeFactory::getInstance().produce(SphereType, Vector(0., 0., 0.), Vector(2., 2., 2.));
 
   CPPUNIT_ASSERT( s.isInside( Vector(1.5,0.,0.) ) );
@@ -109,9 +96,5 @@
 void ShapeFactoryTest::translateTest()
 {
-  ShapeFactory::getInstance().setType(SphereType);
-  ShapeFactory::getInstance().setAngle(0., 0., 0.);
-  ShapeFactory::getInstance().setStretch(Vector(1., 1., 1.));
-  ShapeFactory::getInstance().setTranslation(Vector(1., 0., 0.));
-  Shape s = ShapeFactory::getInstance().produce();
+  Shape s = ShapeFactory::getInstance().produce(SphereType, Vector(1., 0., 0.));
 
   CPPUNIT_ASSERT( s.isInside( Vector(1.5,0.,0.) ) );
@@ -128,9 +111,5 @@
 void ShapeFactoryTest::stretchTest()
 {
-  ShapeFactory::getInstance().setType(SphereType);
-  ShapeFactory::getInstance().setAngle(0., 0., 0.);
-  ShapeFactory::getInstance().setStretch(Vector(2., 1., 1.));
-  ShapeFactory::getInstance().setTranslation(Vector(0., 0., 0.));
-  Shape s = ShapeFactory::getInstance().produce();
+  Shape s = ShapeFactory::getInstance().produce(SphereType, Vector(0., 0., 0.), Vector(2., 1., 1.));
 
   CPPUNIT_ASSERT( s.isInside( Vector(1.5,0.,0.) ) );
@@ -144,9 +123,5 @@
 void ShapeFactoryTest::transformTest()
 {
-  ShapeFactory::getInstance().setType(SphereType);
-  ShapeFactory::getInstance().setAngle(45., 0., 0.);
-  ShapeFactory::getInstance().setStretch(Vector(1., 1., 1.));
-  ShapeFactory::getInstance().setTranslation(Vector(0., 0., 0.));
-  Shape s = ShapeFactory::getInstance().produce();
+  Shape s = ShapeFactory::getInstance().produce(SphereType, Vector(0., 0., 0.), Vector(1., 1., 1.), 45., 0., 0.);
 
   CPPUNIT_ASSERT( s.isInside( Vector(.5,0.,0.) ) );
@@ -160,30 +135,15 @@
 void ShapeFactoryTest::getterSetterTest()
 {
-  ShapeFactory::getInstance().setType(SphereType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getType(), SphereType );
-  ShapeFactory::getInstance().setType(CuboidType);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getType(), CuboidType );
 #ifndef NDEBUG
-  CPPUNIT_ASSERT_THROW( ShapeFactory::getInstance().setType((ShapeType)-1), Assert::AssertionFailure );
+  CPPUNIT_ASSERT_THROW( ShapeFactory::getInstance().produce((ShapeType)-1), Assert::AssertionFailure );
 #endif
 
 
-  ShapeFactory::getInstance().setAngle(45., 60., 90.);
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getAngle()[0], 45. );
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getAngle()[1], 60. );
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getAngle()[2], 90. );
-
-
-  ShapeFactory::getInstance().setStretch(Vector(2., 3., 4.));
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getStretch(), Vector(2., 3., 4.) );
 #ifndef NDEBUG
-  CPPUNIT_ASSERT_THROW( ShapeFactory::getInstance().setStretch(Vector(0., 0., 0.)), Assert::AssertionFailure );
+  CPPUNIT_ASSERT_THROW( ShapeFactory::getInstance().produce(SphereType, Vector(0., 0., 0.), Vector(0., 0., 0.)), Assert::AssertionFailure );
 #endif
 #ifndef NDEBUG
-  CPPUNIT_ASSERT_THROW( ShapeFactory::getInstance().setStretch(Vector(1., 1., 0.)), Assert::AssertionFailure );
+  CPPUNIT_ASSERT_THROW( ShapeFactory::getInstance().produce(SphereType, Vector(0., 0., 0.), Vector(1., 1., 0.)), Assert::AssertionFailure );
 #endif
-
-  ShapeFactory::getInstance().setTranslation(Vector(1., 2., 3.));
-  CPPUNIT_ASSERT_EQUAL( ShapeFactory::getInstance().getTranslation(), Vector(1., 2., 3.) );
 }
 
