#include <iostream>
#include <cvb/point_cloud_factory.hpp>
#include <cvb/point_cloud.hpp>
#include <cvb/dense_point_cloud.hpp>
#include <cvb/dnc/finder.hpp>
int main(int , char* [])
{
try
{
std::cout << "Load the search pattern...\n";
std::cout << "Create a dense point cloud...\n";
Cvb::PointCloudFlags::Float | Cvb::PointCloudFlags::XYZ);
std::cout << "Define the search parameters...\n";
std::cout << "Run the search on the point cloud...\n";
auto searchResult = finder->Find(*densePointCloud, params);
std::cout << "Number of search results: " << searchResult.size() << "\n";
int counter = 0;
for (const auto& result : searchResult) {
std::cout << counter
<< ": position(x=" << result.Position().X()
<< ",y=" << result.Position().Y()
<< ",z=" << result.Position().Z()
<< "), rotation(x=" << result.RotationVector().X()
<< ",y=" << result.RotationVector().Y()
<< ",z=" << result.RotationVector().Z()
<< "), theta=" << result.Theta().Deg()
<< "\370, score=" << result.Score() << "\n";
++counter;
}
}
catch (const std::exception& error)
{
std::cout << error.what() << std::endl;
}
}
static std::unique_ptr< Finder > Load(const String &fileName)
void SetMaxInconsistency(double value)
void SetPrecisionThreshold(double value)
void SetMaxOcclusion(double value)
void SetHypothesesThreshold(double value)
void SetMinScore(double value)
void SetDerivativePatchSize(int value)
void SetICPMaxIterations(int value)
void SetICPShrink(int value)
void SetMinCoverage(double value)
void SetPartsToFind(int value)
void SetRawResultsOnly(bool value) noexcept
void SetIndifferentRadius(double value)
static std::shared_ptr< T > Load(const String &fileName, PointCloudFlags flags)