Program Listing for File localization_factory.h

↰ Return to documentation for file (src/pcms/localization/localization_factory.h)

#ifndef PCMS_LOCALIZATION_LOCALIZATION_FACTORY_H
#define PCMS_LOCALIZATION_LOCALIZATION_FACTORY_H

#include "pcms/localization/adj_search.hpp"
#include "pcms/field/coordinate_view.hpp"
#include "pcms/utility/memory_spaces.h"

namespace pcms
{

// Abstract interface for building MLS support structures.
//
// A LocalizationFactory encapsulates the source geometry and search strategy
// (N^2 point-cloud search or mesh-adjacency BFS). Concrete implementations
// are created at FunctionSpace construction time and reused across repeated
// CreatePointEvaluator calls with different target coordinate sets.
class LocalizationFactory
{
public:
  virtual ~LocalizationFactory() = default;

  virtual SupportResults Build(
    CoordinateView<DeviceMemorySpace> target_coords) const = 0;
};

} // namespace pcms

#endif // PCMS_LOCALIZATION_LOCALIZATION_FACTORY_H