/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef HausdorffExtension_H_
#define HausdorffExtension_H_
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "Atom.h"
#include "Molecule.h"
#include "Match.h"
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
CLASS
	HausdorffExtension

	proves faster and better then BipartiteMatcher.
	Uses Geometric Hashing.
	
	usage:
	call to static func Extend:
	HausdorffExtension::Extend(threshExtend, rigidTrans(), molModel, molTarget,outMatch);
  
KEYWORD
	Hausdorff Extension geomhash geometric hashing
AUTHORS

CHANGES LOG

GOALS

USAGE
		call to static func Extend:		
		
		HausdorffExtension::Extend(threshExtend, rigidTrans(), molModel, molTarget,outMatch);
END
*/
class HausdorffExtension
{
public:
	////	
	static void Extend(	const float 			inMaxAtomDistance, // in param  - thresh for extension
						const RigidTrans3& 		inRigidTrans3, // in param - the rigid trans between model and target
						const Molecule< Atom>	inModel, // in param - the model molecule 
						const Molecule< Atom>	inScene, // in param the target or scene molecule
						Match& 					outNewMatch); // out param - your desired extended match between the model and target under the rigid trans and the extension thresh params
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#endif
