Jelajahi Sumber

some changes

Bjoern Froehlich 13 tahun lalu
induk
melakukan
bc1b5f657f

+ 35 - 35
features/localfeatures/GenericLocalFeatureSelection.h

@@ -1,4 +1,4 @@
-/** 
+/**
 * @file GenericLocalFeatureSelection.h
 * @file GenericLocalFeatureSelection.h
 * @brief This class provides a generic chooser function for different descriptors, which are derived from LocalFeature.
 * @brief This class provides a generic chooser function for different descriptors, which are derived from LocalFeature.
 * @author Eric Bach
 * @author Eric Bach
@@ -23,42 +23,42 @@ namespace OBJREC {
 
 
 class GenericLocalFeatureSelection
 class GenericLocalFeatureSelection
 {
 {
-    public:
-      /** LocalFeature Selector
-      * @brief This methode switches between the different LocalFeature-Types. One has to set the "localfeature_type" on a valid value and the methode returns a LocalFeatureRepresentation derived Object.
-      * @param[in] Config* - A pointer to the given configfile, which must contain "section" - "localfeature_type"
-      * @param[in] string  - This string defines the value for "section" in the configfile.
-      * @return LocalFeatureRepresentation* - The LocalFeatureRepresentation which contains the selected LocalFeature-Type.
-      */
-      static LocalFeature *selectLocalFeature ( const NICE::Config *conf, std::string section = "Features" )
+  public:
+    /** LocalFeature Selector
+    * @brief This methode switches between the different LocalFeature-Types. One has to set the "localfeature_type" on a valid value and the methode returns a LocalFeatureRepresentation derived Object.
+    * @param[in] Config* - A pointer to the given configfile, which must contain "section" - "localfeature_type"
+    * @param[in] string  - This string defines the value for "section" in the configfile.
+    * @return LocalFeatureRepresentation* - The LocalFeatureRepresentation which contains the selected LocalFeature-Type.
+    */
+    static LocalFeature *selectLocalFeature ( const NICE::Config *conf, std::string section = "Features" )
+    {
+      // return Value
+      LocalFeature *lf = NULL;
+
+      // string which defines the localfeature_type (for Ex. RGB, OppSift, Sift...)
+      std::string localfeature_type = conf->gS ( section, "localfeature_type", "not defined" );
+
+      // The prefix NICE_* indicates that this implementation comes from a NICE-Developer.
+      // Extern implementations can be added without NICE_* in this selection-class.
+      if ( localfeature_type == "NICE_SIFT" )
+      {
+        lf = new LocalFeatureSift ( conf );
+      }
+      else if ( localfeature_type == "NICE_RGBSIFT" )
       {
       {
-	// return Value
-	LocalFeature *lf = NULL;
-      
-	// string which defines the localfeature_type (for Ex. RGB, OppSift, Sift...)
-	std::string localfeature_type = conf->gS(section, "localfeature_type", "not defined");
-	    
-	// The prefix NICE_* indicates that this implementation comes from a NICE-Developer.
-	// Extern implementations can be added without NICE_* in this selection-class.
-	if( localfeature_type == "NICE_SIFT" )
-	{
-	  lf = new LocalFeatureSift( conf );
-	}
-	else if( localfeature_type == "NICE_RGBSIFT" )
-	{
-	  lf = new LocalFeatureRGBSift( conf );
-	}
-	else if( localfeature_type == "NICE_OPPSIFT" )
-	{
-	  lf = new LocalFeatureOpponnentSift( conf );
-	}
-	
-	// no correct localfeature_type was given
-	if ( lf == NULL )
-	  fthrow(Exception, "Local feature type not found: " << localfeature_type );
-	
-	return lf;
+        lf = new LocalFeatureRGBSift ( conf );
       }
       }
+      else if ( localfeature_type == "NICE_OPPSIFT" )
+      {
+        lf = new LocalFeatureOpponnentSift ( conf );
+      }
+
+      // no correct localfeature_type was given
+      if ( lf == NULL )
+        fthrow ( Exception, "Local feature type not found: " << localfeature_type );
+
+      return lf;
+    }
 };
 };
 }
 }
 
 

+ 40 - 40
features/localfeatures/LFReadCache.cpp

@@ -1,4 +1,4 @@
-/** 
+/**
 * @file LFReadCache.cpp
 * @file LFReadCache.cpp
 * @brief read local features from file
 * @brief read local features from file
 * @author Erik Rodner
 * @author Erik Rodner
@@ -18,26 +18,26 @@ using namespace OBJREC;
 using namespace std;
 using namespace std;
 using namespace NICE;
 using namespace NICE;
 
 
-LFReadCache::LFReadCache( const Config *conf,
-			  const LocalFeatureRepresentation *_lfrep,
-			  int _numFeatures ) : lfrep(_lfrep)
+LFReadCache::LFReadCache ( const Config *conf,
+                           const LocalFeatureRepresentation *_lfrep,
+                           int _numFeatures ) : lfrep ( _lfrep )
 {
 {
-    //srand(time(NULL));
-    numFeatures = _numFeatures;
-    cachedir = conf->gS("cache", "root");
-    cachemode = Globals::getCacheMode ( conf->gS("cache", "mode", "cat") );
-    
-    std::string descFormat_s = conf->gS("cache", "descriptor_format", "binary_double");
-    if ( descFormat_s == "binary_double" )
-		descFormat = VVector::FILEFORMAT_BINARY_DOUBLE;
-    else if ( descFormat_s == "binary_uchar" )
-		descFormat = VVector::FILEFORMAT_BINARY_CHAR;
-    else if ( descFormat_s == "text_line" )
-		descFormat = VVector::FILEFORMAT_LINE;
-    else if ( (descFormat_s == "text_nice") || (descFormat_s == "text_ice"))
-		descFormat = VVector::FILEFORMAT_NICE;
-	else
-		fthrow(Exception, "Format " << descFormat_s << " is unknown.");
+  //srand(time(NULL));
+  numFeatures = _numFeatures;
+  cachedir = conf->gS ( "cache", "root" );
+  cachemode = Globals::getCacheMode ( conf->gS ( "cache", "mode", "cat" ) );
+
+  std::string descFormat_s = conf->gS ( "cache", "descriptor_format", "binary_double" );
+  if ( descFormat_s == "binary_double" )
+    descFormat = VVector::FILEFORMAT_BINARY_DOUBLE;
+  else if ( descFormat_s == "binary_uchar" )
+    descFormat = VVector::FILEFORMAT_BINARY_CHAR;
+  else if ( descFormat_s == "text_line" )
+    descFormat = VVector::FILEFORMAT_LINE;
+  else if ( ( descFormat_s == "text_nice" ) || ( descFormat_s == "text_ice" ) )
+    descFormat = VVector::FILEFORMAT_NICE;
+  else
+    fthrow ( Exception, "Format " << descFormat_s << " is unknown." );
 }
 }
 
 
 LFReadCache::~LFReadCache()
 LFReadCache::~LFReadCache()
@@ -46,39 +46,39 @@ LFReadCache::~LFReadCache()
 
 
 int LFReadCache::getDescSize () const
 int LFReadCache::getDescSize () const
 {
 {
-	if ( lfrep == NULL ) {
-		fthrow(Exception, "Unable to get descriptor size! (cache mode)");
-		return -1;
-	} else {
-    	return lfrep->getDescSize();
-	}
+  if ( lfrep == NULL ) {
+    fthrow ( Exception, "Unable to get descriptor size! (cache mode)" );
+    return -1;
+  } else {
+    return lfrep->getDescSize();
+  }
 }
 }
 
 
 
 
-int LFReadCache::extractFeatures ( const NICE::ColorImage & img, 
-				   VVector & features, 
-				   VVector & positions) const
+int LFReadCache::extractFeatures ( const NICE::ColorImage & img,
+                                   VVector & features,
+                                   VVector & positions ) const
 {
 {
-	return extractFeaturesTemplate<NICE::ColorImage> ( img, features, positions );
+  return extractFeaturesTemplate<NICE::ColorImage> ( img, features, positions );
 }
 }
 
 
-int LFReadCache::extractFeatures ( const NICE::Image & img, 
-				   VVector & features, 
-				   VVector & positions) const
+int LFReadCache::extractFeatures ( const NICE::Image & img,
+                                   VVector & features,
+                                   VVector & positions ) const
 {
 {
-	return extractFeaturesTemplate<NICE::Image> ( img, features, positions );
+  return extractFeaturesTemplate<NICE::Image> ( img, features, positions );
 }
 }
 
 
-void LFReadCache::visualize ( NICE::Image & img, 
-		 const NICE::Vector & feature ) const
+void LFReadCache::visualize ( NICE::Image & img,
+                              const NICE::Vector & feature ) const
 {
 {
-    lfrep->visualize ( img, feature );
+  lfrep->visualize ( img, feature );
 }
 }
 
 
 void LFReadCache::visualizeFeatures ( NICE::Image & mark,
 void LFReadCache::visualizeFeatures ( NICE::Image & mark,
-				 const VVector & positions,
-				 size_t color ) const
+                                      const VVector & positions,
+                                      size_t color ) const
 {
 {
-    lfrep->visualizeFeatures ( mark, positions, color );
+  lfrep->visualizeFeatures ( mark, positions, color );
 }
 }
 
 

+ 73 - 73
features/localfeatures/LFWriteCache.cpp

@@ -1,4 +1,4 @@
-/** 
+/**
 * @file LFWriteCache.cpp
 * @file LFWriteCache.cpp
 * @brief read local features from file
 * @brief read local features from file
 * @author Erik Rodner
 * @author Erik Rodner
@@ -28,21 +28,21 @@ using namespace NICE;
 
 
 
 
 
 
-LFWriteCache::LFWriteCache( const Config *conf,
-			    const LocalFeatureRepresentation *_lfrep) : lfrep(_lfrep)
+LFWriteCache::LFWriteCache ( const Config *conf,
+                             const LocalFeatureRepresentation *_lfrep ) : lfrep ( _lfrep )
 {
 {
-    cachedir = conf->gS("cache", "root");
-    cachemode = Globals::getCacheMode ( conf->gS("cache", "mode", "cat") );
-    
-    std::string descFormat_s = conf->gS("cache", "descriptor_format", "binary_double");
-    if ( descFormat_s == "binary_double" )
-		descFormat = VVector::FILEFORMAT_BINARY_DOUBLE;
-    else if ( descFormat_s == "binary_uchar" )
-		descFormat = VVector::FILEFORMAT_BINARY_CHAR;
-    else if ( descFormat_s == "text_line" )
-		descFormat = VVector::FILEFORMAT_LINE;
-    else if ( descFormat_s == "text_ice" )
-		descFormat = VVector::FILEFORMAT_NICE;
+  cachedir = conf->gS ( "cache", "root" );
+  cachemode = Globals::getCacheMode ( conf->gS ( "cache", "mode", "cat" ) );
+
+  std::string descFormat_s = conf->gS ( "cache", "descriptor_format", "binary_double" );
+  if ( descFormat_s == "binary_double" )
+    descFormat = VVector::FILEFORMAT_BINARY_DOUBLE;
+  else if ( descFormat_s == "binary_uchar" )
+    descFormat = VVector::FILEFORMAT_BINARY_CHAR;
+  else if ( descFormat_s == "text_line" )
+    descFormat = VVector::FILEFORMAT_LINE;
+  else if ( descFormat_s == "text_ice" )
+    descFormat = VVector::FILEFORMAT_NICE;
 
 
 }
 }
 
 
@@ -52,76 +52,76 @@ LFWriteCache::~LFWriteCache()
 
 
 int LFWriteCache::getDescSize () const
 int LFWriteCache::getDescSize () const
 {
 {
-    return lfrep->getDescSize();
+  return lfrep->getDescSize();
 }
 }
 
 
-int LFWriteCache::extractFeatures ( const NICE::Image & img, 
-		  VVector & features, 
-		  VVector & positions) const
+int LFWriteCache::extractFeatures ( const NICE::Image & img,
+                                    VVector & features,
+                                    VVector & positions ) const
 {
 {
-    std::string filename = Globals::getCacheFilename( cachedir, cachemode );
-
-    int ret = lfrep->extractFeatures ( img, features, positions );
-    std::string filename_desc = filename + ".desc";
-    std::string filename_pos = filename + ".key";
-
-    struct stat dummy;
-    if ( stat ( filename_desc.c_str(), &dummy ) < 0 )
-    {
-		fprintf (stderr, "features: %d, positions: %d\n", (int)features.size(),
-			(int)positions.size() );
-		if ( features.size() > 0 )
-			fprintf (stderr, "feature dimension: %d %d\n", features[0].size(), lfrep->getDescSize() );
-		features.save ( filename_desc, descFormat );
-		positions.save ( filename_pos, VVector::FILEFORMAT_LINE );
-    } else {
-		fprintf (stderr, "description file %s exists !\n", filename_desc.c_str());
-    }
-
-
-    return ret;
+  std::string filename = Globals::getCacheFilename ( cachedir, cachemode );
+
+  int ret = lfrep->extractFeatures ( img, features, positions );
+  std::string filename_desc = filename + ".desc";
+  std::string filename_pos = filename + ".key";
+
+  struct stat dummy;
+  if ( stat ( filename_desc.c_str(), &dummy ) < 0 )
+  {
+    fprintf ( stderr, "features: %d, positions: %d\n", ( int ) features.size(),
+              ( int ) positions.size() );
+    if ( features.size() > 0 )
+      fprintf ( stderr, "feature dimension: %d %d\n", features[0].size(), lfrep->getDescSize() );
+    features.save ( filename_desc, descFormat );
+    positions.save ( filename_pos, VVector::FILEFORMAT_LINE );
+  } else {
+    fprintf ( stderr, "description file %s exists !\n", filename_desc.c_str() );
+  }
+
+
+  return ret;
 }
 }
 
 
-int LFWriteCache::extractFeatures ( const NICE::ColorImage & img, 
-				    VVector & features, 
-				    VVector & positions) const
+int LFWriteCache::extractFeatures ( const NICE::ColorImage & img,
+                                    VVector & features,
+                                    VVector & positions ) const
 {
 {
-	std::string filename = Globals::getCacheFilename( cachedir, cachemode );
-
-	int ret = lfrep->extractFeatures ( img, features, positions );
-	std::string filename_desc = filename + ".desc";
-	std::string filename_pos = filename + ".key";
-	
-	struct stat dummy;
-	
-	if ( stat ( filename_desc.c_str(), &dummy ) < 0 )
-	{
-		fprintf (stderr, "features: %d, positions: %d\n", (int)features.size(),
-			 (int)positions.size() );
-		if ( features.size() > 0 )
-			fprintf (stderr, "feature dimension: %d %d\n", features[0].size(), lfrep->getDescSize() );
-		features.save ( filename_desc, descFormat );
-		positions.save ( filename_pos, VVector::FILEFORMAT_LINE );
-	} 
-	else 
-	{
-		fprintf (stderr, "description file %s exists !\n", filename_desc.c_str());
-	}
-
-
-	return ret;
+  std::string filename = Globals::getCacheFilename ( cachedir, cachemode );
+
+  int ret = lfrep->extractFeatures ( img, features, positions );
+  std::string filename_desc = filename + ".desc";
+  std::string filename_pos = filename + ".key";
+
+  struct stat dummy;
+
+  if ( stat ( filename_desc.c_str(), &dummy ) < 0 )
+  {
+    fprintf ( stderr, "features: %d, positions: %d\n", ( int ) features.size(),
+              ( int ) positions.size() );
+    if ( features.size() > 0 )
+      fprintf ( stderr, "feature dimension: %d %d\n", features[0].size(), lfrep->getDescSize() );
+    features.save ( filename_desc, descFormat );
+    positions.save ( filename_pos, VVector::FILEFORMAT_LINE );
+  }
+  else
+  {
+    fprintf ( stderr, "description file %s exists !\n", filename_desc.c_str() );
+  }
+
+
+  return ret;
 }
 }
 
 
-void LFWriteCache::visualize ( NICE::Image & img, 
-		 const NICE::Vector & feature ) const
+void LFWriteCache::visualize ( NICE::Image & img,
+                               const NICE::Vector & feature ) const
 {
 {
-    lfrep->visualize ( img, feature );
+  lfrep->visualize ( img, feature );
 }
 }
 
 
 void LFWriteCache::visualizeFeatures ( NICE::Image & mark,
 void LFWriteCache::visualizeFeatures ( NICE::Image & mark,
-				 const VVector & positions,
-				 size_t color ) const
+                                       const VVector & positions,
+                                       size_t color ) const
 {
 {
-    lfrep->visualizeFeatures ( mark, positions, color );
+  lfrep->visualizeFeatures ( mark, positions, color );
 }
 }
 
 

+ 83 - 77
features/localfeatures/LFonHSG.cpp

@@ -1,4 +1,4 @@
-/** 
+/**
 * @file LFonHSG.cpp
 * @file LFonHSG.cpp
 * @brief Implementation of the LocalFeatureHSG.h. See description there.
 * @brief Implementation of the LocalFeatureHSG.h. See description there.
 * @author Eric Bach
 * @author Eric Bach
@@ -13,115 +13,121 @@ using namespace OBJREC;
 using namespace NICE;
 using namespace NICE;
 using namespace std;
 using namespace std;
 
 
-LFonHSG::LFonHSG( const Config *conf, const string section )
-{	
-	/** initialization **/
-	this->lf = NULL;
+LFonHSG::LFonHSG ( const Config *conf, const string section )
+{
+  /** initialization **/
+  this->lf = NULL;
+
+  /** get parameters for the grid **/
+  sampleScaling    = conf->gI ( section, "sample_scaling", 50 );
+  scales   = conf->gS ( section, "scales"        , "1" );
+  // the scales are seperated by '+', like in the Van de Sande implementation
+  char separator = '+';
 
 
-	/** get parameters for the grid **/
-	sampleScaling    = conf->gI( section, "sample_scaling", 50  );
-	scales		 = conf->gS( section, "scales"        , "1" );
-	// the scales are seperated by '+', like in the Van de Sande implementation
-	char separator = '+';
+  /** get debuginformation **/
+  debug    = conf->gB ( "debug", "show_log_HSG", false );
 
 
-	/** get debuginformation **/
-	debug 		 = conf->gB( "debug", "show_log_HSG", false );
+  /** generate the descriptor-instanz **/
+  lf = GenericLocalFeatureSelection::selectLocalFeature ( conf, section );
 
 
-	/** generate the descriptor-instanz **/
-	lf = GenericLocalFeatureSelection::selectLocalFeature( conf, section );
+  /** parse scales string **/
+  debug && clog << "[log] LocalFeatureHSG::LocalFeatureHSG" << endl;
+  debug && clog << "[log] try to parse the 'scales-string': " << scales << " -> ";
 
 
-	/** parse scales string **/
-	debug && clog << "[log] LocalFeatureHSG::LocalFeatureHSG" << endl;
-	debug && clog << "[log] try to parse the 'scales-string': " << scales << " -> ";
-		
 #ifdef NICE_USELIB_BOOST
 #ifdef NICE_USELIB_BOOST
-    	typedef tokenizer<boost::char_separator<char> > tokenizer;
-    	char_separator<char> sep(separator);
-    	tokenizer tokens(scales, sep);		// parse the string into tokens
-    	for( tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter )
-	{
-	  debug && clog << *tok_iter << " ";	
-	  scalesV.push_back( strToFloat( *tok_iter ) );
-	}
+  typedef tokenizer<boost::char_separator<char> > tokenizer;
+  char_separator<char> sep ( separator );
+  tokenizer tokens ( scales, sep );  // parse the string into tokens
+  for ( tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter )
+  {
+    debug && clog << *tok_iter << " ";
+    scalesV.push_back ( strToFloat ( *tok_iter ) );
+  }
 #else // standard
 #else // standard
-	vector<string> temp;
-	StringTools::split( scales, separator, temp );
-	for( vector<string>::const_iterator it = temp.begin(); it != temp.end(); ++it )
-	{
-	  debug && clog << *it << " ";	
-	  scalesV.push_back( strToFloat( *it ) );
-	}
+  vector<string> temp;
+  StringTools::split ( scales, separator, temp );
+  for ( vector<string>::const_iterator it = temp.begin(); it != temp.end(); ++it )
+  {
+    debug && clog << *it << " ";
+    scalesV.push_back ( strToFloat ( *it ) );
+  }
 #endif
 #endif
-	debug && clog << endl;
+  debug && clog << endl;
 }
 }
 
 
 LFonHSG::~LFonHSG()
 LFonHSG::~LFonHSG()
 {
 {
-	/** free memory of descriptors **/
+  /** free memory of descriptors **/
 }
 }
 
 
 void LFonHSG::getPositionsOnHSG ( const unsigned int imageWidth, const unsigned int imageHeight, VVector& positions ) const
 void LFonHSG::getPositionsOnHSG ( const unsigned int imageWidth, const unsigned int imageHeight, VVector& positions ) const
 {
 {
-	if( sampleScaling < 1 ){ cerr << "[err] sample-scaling (" << sampleScaling << ") musst be larger the 0!" << endl; return; }
-
-	debug && clog << "[log] LocalFeatureHSG::getPositionsOnHSG calculate ";
-
-	bool oddRow = true;
-	NICE::Vector pos( 4 );
-
-	/** we have to calculate the koo. for every different scale **/
-	for( vector <float>::const_iterator it = scalesV.begin(); it != scalesV.end(); ++it )
-	{
-		oddRow = true;
-
-		for( unsigned int j = sampleScaling; j <= ( imageHeight - sampleScaling ); j += sampleScaling )
-		{
-			for( unsigned int i = ( oddRow ? sampleScaling + sampleScaling / 2 : sampleScaling ); i <= ( imageWidth - sampleScaling ); i += sampleScaling )
-			{
-				pos[ 0] = i; pos[ 1] = j; pos[ 2] = *it; pos[ 3] = 0;
-				positions.push_back( pos );
-			}
-			oddRow = !oddRow;
-		}
-	}
+  if ( sampleScaling < 1 ) {
+    cerr << "[err] sample-scaling (" << sampleScaling << ") musst be larger the 0!" << endl;
+    return;
+  }
+
+  debug && clog << "[log] LocalFeatureHSG::getPositionsOnHSG calculate ";
+
+  bool oddRow = true;
+  NICE::Vector pos ( 4 );
+
+  /** we have to calculate the koo. for every different scale **/
+  for ( vector <float>::const_iterator it = scalesV.begin(); it != scalesV.end(); ++it )
+  {
+    oddRow = true;
+
+    for ( unsigned int j = sampleScaling; j <= ( imageHeight - sampleScaling ); j += sampleScaling )
+    {
+      for ( unsigned int i = ( oddRow ? sampleScaling + sampleScaling / 2 : sampleScaling ); i <= ( imageWidth - sampleScaling ); i += sampleScaling )
+      {
+        pos[ 0] = i;
+        pos[ 1] = j;
+        pos[ 2] = *it;
+        pos[ 3] = 0;
+        positions.push_back ( pos );
+      }
+      oddRow = !oddRow;
+    }
+  }
 }
 }
 
 
 int LFonHSG::extractFeatures ( const NICE::ColorImage & cimg, VVector & features, VVector & positions ) const
 int LFonHSG::extractFeatures ( const NICE::ColorImage & cimg, VVector & features, VVector & positions ) const
 {
 {
-	/** To get the keypoint descriptor, we need the positions of the keypoints. **/
-	getPositionsOnHSG( cimg.width(), cimg.height(), positions );
+  /** To get the keypoint descriptor, we need the positions of the keypoints. **/
+  getPositionsOnHSG ( cimg.width(), cimg.height(), positions );
 
 
-	/** calulate the descriptor-values **/
-	return lf->getDescriptors( cimg, positions, features );	
+  /** calulate the descriptor-values **/
+  return lf->getDescriptors ( cimg, positions, features );
 }
 }
 
 
 
 
 int LFonHSG::extractFeatures ( const NICE::Image & img, VVector & features, VVector & positions ) const
 int LFonHSG::extractFeatures ( const NICE::Image & img, VVector & features, VVector & positions ) const
 {
 {
-	/** To get the keypoint descriptor, we need the positions of the keypoints. **/
-	getPositionsOnHSG( img.width(), img.height(), positions );
+  /** To get the keypoint descriptor, we need the positions of the keypoints. **/
+  getPositionsOnHSG ( img.width(), img.height(), positions );
 
 
-	/** calculate the descriptor-values **/
-	return lf->getDescriptors( img, positions, features );
+  /** calculate the descriptor-values **/
+  return lf->getDescriptors ( img, positions, features );
 }
 }
 
 
 void LFonHSG::visualizeFeatures ( NICE::Image & mark, const VVector & positions, size_t color ) const
 void LFonHSG::visualizeFeatures ( NICE::Image & mark, const VVector & positions, size_t color ) const
 {
 {
-	// TODO: Implementierung des gewaehlten Descriptortyps aufrufen.
+  // TODO: Implementierung des gewaehlten Descriptortyps aufrufen.
 }
 }
 
 
-float LFonHSG::strToFloat( const string str ) const
+float LFonHSG::strToFloat ( const string str ) const
 {
 {
-	float temp;
- 
-	stringstream ss;
-	ss << str;
-	ss >> temp;
-
-	return temp;
-}	
-		
-	
+  float temp;
+
+  stringstream ss;
+  ss << str;
+  ss >> temp;
+
+  return temp;
+}
+
+