Index: c/Actions/FillAction/FillSphericalSurfaceAction.cpp
===================================================================
--- src/Actions/FillAction/FillSphericalSurfaceAction.cpp	(revision 98d03bd3ced77f80f72da1e84e0d04c750719b66)
+++ 	(revision )
@@ -1,203 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * 
- *
- *   This file is part of MoleCuilder.
- *
- *    MoleCuilder is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation, either version 2 of the License, or
- *    (at your option) any later version.
- *
- *    MoleCuilder is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * FillSphericalSurfaceAction.cpp
- *
- *  Created on: Mar 29, 2012
- *      Author: heber, bollerhe
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "Actions/UndoRedoHelpers.hpp"
-#include "Atom/atom.hpp"
-#include "Atom/AtomicInfo.hpp"
-#include "Atom/CopyAtoms/CopyAtoms_withBonds.hpp"
-#include "CodePatterns/Log.hpp"
-#include "Filling/Cluster.hpp"
-#include "Filling/Filler.hpp"
-#include "Filling/Inserter/Inserter.hpp"
-#include "Filling/Inserter/SurfaceInserter.hpp"
-#include "Filling/Mesh/MeshAdaptor.hpp"
-#include "Filling/Predicates/IsVoidNode_FillPredicate.hpp"
-#include "molecule.hpp"
-#include "Shapes/BaseShapes.hpp"
-#include "World.hpp"
-
-
-#include <algorithm>
-#include <boost/foreach.hpp>
-#include <boost/function.hpp>
-#include <iostream>
-#include <string>
-#include <vector>
-
-#include "Actions/FillAction/FillSphericalSurfaceAction.hpp"
-
-using namespace MoleCuilder;
-
-// and construct the stuff
-#include "FillSphericalSurfaceAction.def"
-#include "Action_impl_pre.hpp"
-/** =========== define the function ====================== */
-Action::state_ptr FillSphericalSurfaceAction::performCall() {
-  // get the filler molecule
-  const std::vector< molecule *> molecules = World::getInstance().getSelectedMolecules();
-  std::vector<AtomicInfo> movedatoms;
-  if (molecules.size() != 1) {
-    ELOG(1, "No exactly one molecule selected, aborting,");
-    return Action::failure;
-  }
-  molecule *filler = *(molecules.begin());
-  for(molecule::const_iterator iter = filler->begin(); iter != filler->end(); ++iter)
-    movedatoms.push_back( AtomicInfo(*(*iter)) );
-  LOG(1, "INFO: Chosen molecule has " << filler->size() << " atoms.");
-
-  // center filler's tip at origin
-  Vector max;
-  filler->CenterEdge(&max);
-
-  // determine center with respect to alignment axis
-  Vector sum = zeroVec;
-  for (molecule::iterator it2=filler->begin();it2 !=filler->end();++it2) {
-    const Vector helper = (**it2).getPosition().partition(params.AlignedAxis.get()).second;
-    sum += helper;
-  }
-  sum *= 1./filler->size();
-
-  // translate molecule's closest atom to origin (such that is resides on the filler spot)
-  LOG(1, "DEBUG: molecule is off Alignment axis by " << sum << ", shifting ...");
-  {
-    Vector translater = -1.*sum;
-    filler->Translate(&translater);
-  }
-
-  // create predicate, mesh, and filler
-  FillSphericalSurfaceState *UndoState = NULL;
-  bool successflag = false;
-  {
-    FillPredicate *voidnode_predicate = new FillPredicate(
-        IsVoidNode_FillPredicate(
-            Sphere(zeroVec, params.mindistance.get())
-            )
-        );
-    Shape s = Sphere(params.center.get(), params.radius.get());
-    boost::function<const NodeSet ()> func = 
-        boost::bind(&Shape::getHomogeneousPointsOnSurface, boost::ref(s), params.N.get());
-    Mesh *mesh = new MeshAdaptor(func);
-    Inserter *inserter = new Inserter(
-        Inserter::impl_ptr(new SurfaceInserter(s, params.AlignedAxis.get())));
-
-    // fill
-    {
-      Filler *fillerFunction = new Filler(*mesh, *voidnode_predicate, *inserter);
-      ClusterInterface::Cluster_impl cluster( new Cluster( filler->getAtomIds(), filler->getBoundingShape() ) );
-      CopyAtoms_withBonds copyMethod;
-      Filler::ClusterVector_t ClonedClusters;
-      successflag = (*fillerFunction)(copyMethod, cluster, ClonedClusters);
-      delete fillerFunction;
-
-      // append each cluster's atoms to clonedatoms (however not selected ones)
-      std::vector<const atom *> clonedatoms;
-      std::vector<AtomicInfo> clonedatominfos;
-      for (Filler::ClusterVector_t::const_iterator iter = ClonedClusters.begin();
-          iter != ClonedClusters.end(); ++iter) {
-        const AtomIdSet &atoms = (*iter)->getAtomIds();
-        clonedatoms.reserve(clonedatoms.size()+atoms.size());
-        for (AtomIdSet::const_iterator atomiter = atoms.begin(); atomiter != atoms.end(); ++atomiter)
-          if (!filler->containsAtom(*atomiter)) {
-            clonedatoms.push_back( *atomiter );
-            clonedatominfos.push_back( AtomicInfo(*(*atomiter)) );
-          }
-      }
-      std::vector< BondInfo > clonedbonds;
-      StoreBondInformationFromAtoms(clonedatoms, clonedbonds);
-      LOG(2, "DEBUG: There are " << clonedatominfos.size() << " newly created atoms with "
-          << clonedbonds.size()/2 << " bonds.");
-
-      if (!successflag) {
-        ELOG(1, "Insertion failed, removing inserted clusters, translating original one back");
-        RemoveAtomsFromAtomicInfo(clonedatominfos);
-        clonedatoms.clear();
-        SetAtomsFromAtomicInfo(movedatoms);
-      } else {
-        std::vector<Vector> MovedToVector(filler->size(), zeroVec);
-        std::transform(filler->begin(), filler->end(), MovedToVector.begin(),
-            boost::bind(&AtomInfo::getPosition, _1) );
-        UndoState = new FillSphericalSurfaceState(clonedatominfos,clonedbonds,movedatoms,MovedToVector,params);
-      }
-    }
-
-    // remove
-    delete mesh;
-    delete inserter;
-    delete voidnode_predicate;
-  }
-
-  if (successflag)
-    return Action::state_ptr(UndoState);
-  else
-    return Action::failure;
-}
-
-Action::state_ptr FillSphericalSurfaceAction::performUndo(Action::state_ptr _state) {
-  FillSphericalSurfaceState *state = assert_cast<FillSphericalSurfaceState*>(_state.get());
-
-  // remove all created atoms
-  RemoveAtomsFromAtomicInfo(state->clonedatoms);
-  // add the original cluster
-  SetAtomsFromAtomicInfo(state->movedatoms);
-
-  return Action::state_ptr(_state);
-}
-
-Action::state_ptr FillSphericalSurfaceAction::performRedo(Action::state_ptr _state){
-  FillSphericalSurfaceState *state = assert_cast<FillSphericalSurfaceState*>(_state.get());
-
-  // place filler cluster again at new spot
-  ResetAtomPosition(state->movedatoms, state->MovedToVector);
-
-  // re-create all clusters
-  bool statusflag = AddAtomsFromAtomicInfo(state->clonedatoms);
-
-  // re-create the bonds
-  statusflag = statusflag && AddBondsFromBondInfo(state->clonedbonds);
-  if (statusflag)
-    return Action::state_ptr(_state);
-  else
-    return Action::failure;
-}
-
-bool FillSphericalSurfaceAction::canUndo() {
-  return true;
-}
-
-bool FillSphericalSurfaceAction::shouldUndo() {
-  return true;
-}
-/** =========== end of function ====================== */
Index: c/Actions/FillAction/FillSphericalSurfaceAction.def
===================================================================
--- src/Actions/FillAction/FillSphericalSurfaceAction.def	(revision 98d03bd3ced77f80f72da1e84e0d04c750719b66)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/*
- * FillRegularGridAction.def
- *
- *  Created on: Mar 29, 2012
- *      Author: heber, bollerhe
- */
-
-// all includes and forward declarations necessary for non-integral types below
-#include <vector>
-#include "Atom/AtomicInfo.hpp"
-#include "Bond/BondInfo.hpp"
-#include "types.hpp"
-
-#include "Parameters/Validators/DummyValidator.hpp"
-#include "Parameters/Validators/Specific/BoxLengthValidator.hpp"
-#include "Parameters/Validators/Specific/BoxVectorValidator.hpp"
-#include "Parameters/Validators/Specific/VectorNotZeroValidator.hpp"
-
-// i.e. there is an integer with variable name Z that can be found in
-// ValueStorage by the token "Z" -> first column: int, Z, "Z"
-// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (Vector)(double)(unsigned int)(double)(Vector)
-#define paramtokens ("center")("radius")("count")("min-distance")("Alignment-Axis")
-#define paramdescriptions ("center of the sphere")("sphere size")("number of instances to be added, changed according to geometric needs")("minimum distance between added instances")("The filler molecule is rotated relative to this alignment axis")
-#define paramdefaults (PARAM_DEFAULT(Vector(0.,0.,0.)))(NOPARAM_DEFAULT)(PARAM_DEFAULT(12))(PARAM_DEFAULT(1.))(NOPARAM_DEFAULT)
-#define paramreferences (center)(radius)(N)(mindistance)(AlignedAxis)
-#define paramvalids \
-(BoxVectorValidator()) \
-(BoxLengthValidator()) \
-(DummyValidator< unsigned int >()) \
-(BoxLengthValidator()) \
-(VectorNotZeroValidator())
-
-#define statetypes (std::vector<AtomicInfo>)(std::vector<BondInfo>)(std::vector<AtomicInfo>)(std::vector<Vector>)
-#define statereferences (clonedatoms)(clonedbonds)(movedatoms)(MovedToVector)
-
-// some defines for all the names, you may use ACTION, STATE and PARAMS
-#define CATEGORY Fill
-#define MENUNAME "fill"
-#define MENUPOSITION 1
-#define ACTIONNAME SphericalSurface
-#define TOKEN "fill-spherical-surface"
-
-
-// finally the information stored in the ActionTrait specialization
-#define DESCRIPTION "\
-fill homogenous points on a sphere surface with instances of the selected molecule."
-#undef SHORTFORM
Index: c/Actions/FillAction/FillSphericalSurfaceAction.hpp
===================================================================
--- src/Actions/FillAction/FillSphericalSurfaceAction.hpp	(revision 98d03bd3ced77f80f72da1e84e0d04c750719b66)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/*
- * FillSphericalSurfaceAction.hpp
- *
- *  Created on: Mar 29, 2012
- *      Author: heber
- */
-
-#ifndef FILLSPHERICALSURFACEACTION_HPP
-#define FILLSPHERICALSURFACEACTION_HPP
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "Actions/Action.hpp"
-
-#include "FillSphericalSurfaceAction.def"
-#include "Action_impl_header.hpp"
-
-#endif // FILLSPHERICALSURFACEACTION_HPP
Index: src/Actions/FillAction/FillSurfaceAction.cpp
===================================================================
--- src/Actions/FillAction/FillSurfaceAction.cpp	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
+++ src/Actions/FillAction/FillSurfaceAction.cpp	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
@@ -0,0 +1,206 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * 
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder is free software: you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation, either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * FillSurfaceAction.cpp
+ *
+ *  Created on: Mar 29, 2012
+ *      Author: heber, bollerhe
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Actions/UndoRedoHelpers.hpp"
+#include "Atom/atom.hpp"
+#include "Atom/AtomicInfo.hpp"
+#include "Atom/CopyAtoms/CopyAtoms_withBonds.hpp"
+#include "CodePatterns/Log.hpp"
+#include "Filling/Cluster.hpp"
+#include "Filling/Filler.hpp"
+#include "Filling/Inserter/Inserter.hpp"
+#include "Filling/Inserter/SurfaceInserter.hpp"
+#include "Filling/Mesh/MeshAdaptor.hpp"
+#include "Filling/Predicates/IsVoidNode_FillPredicate.hpp"
+#include "molecule.hpp"
+#include "Shapes/BaseShapes.hpp"
+#include "Shapes/ShapeFactory.hpp"
+#include "World.hpp"
+
+
+#include <algorithm>
+#include <boost/foreach.hpp>
+#include <boost/function.hpp>
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "Actions/FillAction/FillSurfaceAction.hpp"
+
+using namespace MoleCuilder;
+
+// and construct the stuff
+#include "FillSurfaceAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
+Action::state_ptr FillSurfaceAction::performCall() {
+  // get the filler molecule
+  const std::vector< molecule *> molecules = World::getInstance().getSelectedMolecules();
+  std::vector<AtomicInfo> movedatoms;
+  if (molecules.size() != 1) {
+    ELOG(1, "No exactly one molecule selected, aborting,");
+    return Action::failure;
+  }
+  molecule *filler = *(molecules.begin());
+  for(molecule::const_iterator iter = filler->begin(); iter != filler->end(); ++iter)
+    movedatoms.push_back( AtomicInfo(*(*iter)) );
+  LOG(1, "INFO: Chosen molecule has " << filler->size() << " atoms.");
+
+  // center filler's tip at origin
+  Vector max;
+  filler->CenterEdge(&max);
+
+  // determine center with respect to alignment axis
+  Vector sum = zeroVec;
+  for (molecule::iterator it2=filler->begin();it2 !=filler->end();++it2) {
+    const Vector helper = (**it2).getPosition().partition(params.AlignedAxis.get()).second;
+    sum += helper;
+  }
+  sum *= 1./filler->size();
+
+  // translate molecule's closest atom to origin (such that is resides on the filler spot)
+  LOG(1, "DEBUG: molecule is off Alignment axis by " << sum << ", shifting ...");
+  {
+    Vector translater = -1.*sum;
+    filler->Translate(&translater);
+  }
+
+  // create predicate, mesh, and filler
+  FillSurfaceState *UndoState = NULL;
+  bool successflag = false;
+  {
+    FillPredicate *voidnode_predicate = new FillPredicate(
+        IsVoidNode_FillPredicate(
+            Sphere(zeroVec, params.mindistance.get())
+            )
+        );
+
+    Shape s = ShapeFactory::getInstance().produce();
+
+    boost::function<const NodeSet ()> func = 
+        boost::bind(&Shape::getHomogeneousPointsOnSurface, boost::ref(s), params.N.get());
+    Mesh *mesh = new MeshAdaptor(func);
+    Inserter *inserter = new Inserter(
+        Inserter::impl_ptr(new SurfaceInserter(s, params.AlignedAxis.get())));
+
+    // fill
+    {
+      Filler *fillerFunction = new Filler(*mesh, *voidnode_predicate, *inserter);
+      ClusterInterface::Cluster_impl cluster( new Cluster( filler->getAtomIds(), filler->getBoundingShape() ) );
+      CopyAtoms_withBonds copyMethod;
+      Filler::ClusterVector_t ClonedClusters;
+      successflag = (*fillerFunction)(copyMethod, cluster, ClonedClusters);
+      delete fillerFunction;
+
+      // append each cluster's atoms to clonedatoms (however not selected ones)
+      std::vector<const atom *> clonedatoms;
+      std::vector<AtomicInfo> clonedatominfos;
+      for (Filler::ClusterVector_t::const_iterator iter = ClonedClusters.begin();
+          iter != ClonedClusters.end(); ++iter) {
+        const AtomIdSet &atoms = (*iter)->getAtomIds();
+        clonedatoms.reserve(clonedatoms.size()+atoms.size());
+        for (AtomIdSet::const_iterator atomiter = atoms.begin(); atomiter != atoms.end(); ++atomiter)
+          if (!filler->containsAtom(*atomiter)) {
+            clonedatoms.push_back( *atomiter );
+            clonedatominfos.push_back( AtomicInfo(*(*atomiter)) );
+          }
+      }
+      std::vector< BondInfo > clonedbonds;
+      StoreBondInformationFromAtoms(clonedatoms, clonedbonds);
+      LOG(2, "DEBUG: There are " << clonedatominfos.size() << " newly created atoms with "
+          << clonedbonds.size()/2 << " bonds.");
+
+      if (!successflag) {
+        ELOG(1, "Insertion failed, removing inserted clusters, translating original one back");
+        RemoveAtomsFromAtomicInfo(clonedatominfos);
+        clonedatoms.clear();
+        SetAtomsFromAtomicInfo(movedatoms);
+      } else {
+        std::vector<Vector> MovedToVector(filler->size(), zeroVec);
+        std::transform(filler->begin(), filler->end(), MovedToVector.begin(),
+            boost::bind(&AtomInfo::getPosition, _1) );
+        UndoState = new FillSurfaceState(clonedatominfos,clonedbonds,movedatoms,MovedToVector,params);
+      }
+    }
+
+    // remove
+    delete mesh;
+    delete inserter;
+    delete voidnode_predicate;
+  }
+
+  if (successflag)
+    return Action::state_ptr(UndoState);
+  else
+    return Action::failure;
+}
+
+Action::state_ptr FillSurfaceAction::performUndo(Action::state_ptr _state) {
+  FillSurfaceState *state = assert_cast<FillSurfaceState*>(_state.get());
+
+  // remove all created atoms
+  RemoveAtomsFromAtomicInfo(state->clonedatoms);
+  // add the original cluster
+  SetAtomsFromAtomicInfo(state->movedatoms);
+
+  return Action::state_ptr(_state);
+}
+
+Action::state_ptr FillSurfaceAction::performRedo(Action::state_ptr _state){
+  FillSurfaceState *state = assert_cast<FillSurfaceState*>(_state.get());
+
+  // place filler cluster again at new spot
+  ResetAtomPosition(state->movedatoms, state->MovedToVector);
+
+  // re-create all clusters
+  bool statusflag = AddAtomsFromAtomicInfo(state->clonedatoms);
+
+  // re-create the bonds
+  statusflag = statusflag && AddBondsFromBondInfo(state->clonedbonds);
+  if (statusflag)
+    return Action::state_ptr(_state);
+  else
+    return Action::failure;
+}
+
+bool FillSurfaceAction::canUndo() {
+  return true;
+}
+
+bool FillSurfaceAction::shouldUndo() {
+  return true;
+}
+/** =========== end of function ====================== */
Index: src/Actions/FillAction/FillSurfaceAction.def
===================================================================
--- src/Actions/FillAction/FillSurfaceAction.def	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
+++ src/Actions/FillAction/FillSurfaceAction.def	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
@@ -0,0 +1,46 @@
+/*
+ * FillSurfaceAction.def
+ *
+ *  Created on: Mar 29, 2012
+ *      Author: heber, bollerhe
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+#include <vector>
+#include "Atom/AtomicInfo.hpp"
+#include "Bond/BondInfo.hpp"
+#include "types.hpp"
+
+#include "Parameters/Validators/DummyValidator.hpp"
+#include "Parameters/Validators/Specific/BoxLengthValidator.hpp"
+#include "Parameters/Validators/Specific/BoxVectorValidator.hpp"
+#include "Parameters/Validators/Specific/VectorNotZeroValidator.hpp"
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
+#define paramtypes (unsigned int)(double)(Vector)
+#define paramtokens ("count")("min-distance")("Alignment-Axis")
+#define paramdescriptions ("number of instances to be added, changed according to geometric needs")("minimum distance between added instances")("The filler molecule is rotated relative to this alignment axis")
+#define paramdefaults (PARAM_DEFAULT(12))(PARAM_DEFAULT(1.))(NOPARAM_DEFAULT)
+#define paramreferences (N)(mindistance)(AlignedAxis)
+#define paramvalids \
+(DummyValidator< unsigned int >()) \
+(BoxLengthValidator()) \
+(VectorNotZeroValidator())
+
+#define statetypes (std::vector<AtomicInfo>)(std::vector<BondInfo>)(std::vector<AtomicInfo>)(std::vector<Vector>)
+#define statereferences (clonedatoms)(clonedbonds)(movedatoms)(MovedToVector)
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Fill
+#define MENUNAME "fill"
+#define MENUPOSITION 1
+#define ACTIONNAME Surface
+#define TOKEN "fill-surface"
+
+
+// finally the information stored in the ActionTrait specialization
+#define DESCRIPTION "\
+fill homogenous points on a shape's surface with instances of the selected molecule."
+#undef SHORTFORM
Index: src/Actions/FillAction/FillSurfaceAction.hpp
===================================================================
--- src/Actions/FillAction/FillSurfaceAction.hpp	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
+++ src/Actions/FillAction/FillSurfaceAction.hpp	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
@@ -0,0 +1,22 @@
+/*
+ * FillSurfaceAction.hpp
+ *
+ *  Created on: Mar 29, 2012
+ *      Author: heber
+ */
+
+#ifndef FILLSURFACEACTION_HPP
+#define FILLSURFACEACTION_HPP
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include "Actions/Action.hpp"
+
+#include "FillSurfaceAction.def"
+#include "Action_impl_header.hpp"
+
+#endif // FILLSURFACEACTION_HPP
Index: src/Actions/GlobalListOfActions.hpp
===================================================================
--- src/Actions/GlobalListOfActions.hpp	(revision 98d03bd3ced77f80f72da1e84e0d04c750719b66)
+++ src/Actions/GlobalListOfActions.hpp	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
@@ -117,5 +117,5 @@
   (FragmentationFragmentation) \
   (FillRegularGrid) \
-  (FillSphericalSurface) \
+  (FillSurface) \
   (ShapeSetShape)
 
Index: src/Actions/Makefile.am
===================================================================
--- src/Actions/Makefile.am	(revision 98d03bd3ced77f80f72da1e84e0d04c750719b66)
+++ src/Actions/Makefile.am	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
@@ -185,11 +185,11 @@
 FILLACTIONSOURCE = \
 	Actions/FillAction/FillRegularGridAction.cpp \
-	Actions/FillAction/FillSphericalSurfaceAction.cpp
+	Actions/FillAction/FillSurfaceAction.cpp
 FILLACTIONHEADER = \
 	Actions/FillAction/FillRegularGridAction.hpp \
-	Actions/FillAction/FillSphericalSurfaceAction.hpp
+	Actions/FillAction/FillSurfaceAction.hpp
 FILLACTIONDEFS = \
 	Actions/FillAction/FillRegularGridAction.def \
-	Actions/FillAction/FillSphericalSurfaceAction.def
+	Actions/FillAction/FillSurfaceAction.def
 
 
Index: tests/regression/Filling/SphericalSurface/testsuite-molecules-fill-spherical-surface.at
===================================================================
--- tests/regression/Filling/SphericalSurface/testsuite-molecules-fill-spherical-surface.at	(revision 98d03bd3ced77f80f72da1e84e0d04c750719b66)
+++ tests/regression/Filling/SphericalSurface/testsuite-molecules-fill-spherical-surface.at	(revision 09eaac759eb27466e27c56d0a6d29cceab152181)
@@ -42,5 +42,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/SphericalSurface/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i $file --select-all-molecules --rotate-to-principal-axis-system "0,0,-1" --fill-spherical-surface --center "0,0,0" --radius 20. --count 200 --min-distance 3.1 --Alignment-Axis "0,0,1"], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i $file --select-all-molecules --rotate-to-principal-axis-system "0,0,-1" --set-shape --shape-type "sphere" --translation "0,0,0" --stretch "20.,20.,20." --fill-surface --count 200 --min-distance 3.1 --Alignment-Axis "0,0,1"], 0, [stdout], [stderr])
 AT_CHECK([grep "200 out of 200 returned true from predicate" stdout], 0, [ignore], [ignore])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Filling/SphericalSurface/post/tensid.data], 0, [ignore], [ignore])
@@ -56,5 +56,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/SphericalSurface/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i $file --select-all-molecules --rotate-to-principal-axis-system "0,0,-1" --fill-spherical-surface --center "0,0,0" --radius 20. --count 200 --min-distance 3.1 --Alignment-Axis "0,0,1" --undo], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i $file --select-all-molecules --rotate-to-principal-axis-system "0,0,-1" --set-shape --shape-type "sphere" --translation "0,0,0" --stretch "20.,20.,20." --fill-surface --count 200 --min-distance 3.1 --Alignment-Axis "0,0,1" --undo], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Filling/SphericalSurface/post/$file], 0, [ignore], [ignore])
 
@@ -69,5 +69,5 @@
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Filling/SphericalSurface/pre/tensid.potentials .], 0)
 AT_CHECK([chmod u+w $file], 0)
-AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i $file --select-all-molecules --rotate-to-principal-axis-system "0,0,-1" --fill-spherical-surface --center "0,0,0" --radius 20. --count 200 --min-distance 3.1 --Alignment-Axis "0,0,1" --undo --redo], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --parse-tremolo-potentials tensid.potentials -i $file --select-all-molecules --rotate-to-principal-axis-system "0,0,-1" --set-shape --shape-type "sphere" --translation "0,0,0" --stretch "20.,20.,20." --fill-surface --count 200 --min-distance 3.1 --Alignment-Axis "0,0,1" --undo --redo], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/tests/regression/Filling/SphericalSurface/post/tensid.data], 0, [ignore], [ignore])
 
