lardon3d/include/lardon3d/candidate_pair_gen.h

41 lines
1.7 KiB
C

#ifndef LARDON3D_CANDIDATE_PAIR_GEN_H
#define LARDON3D_CANDIDATE_PAIR_GEN_H
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <lardon3d/project_db.h>
#include <lardon3d/visual_index.h>
typedef struct {
uint32_t generated_count; // newly created pairs
uint32_t skipped_count; // already existing pairs (idempotent reuse)
uint32_t queried_count; // candidates returned by the Visual Index
} Lardon3DCandidatePairGenStats;
Lardon3DVisualIndexResult lardon3d_candidate_pair_generate(
const char *project_path, Lardon3DProjectDb *database,
uint64_t visual_index_id, uint64_t source_feature_set_id,
const Lardon3DVisualIndexQueryOptions *query_options,
Lardon3DCandidatePairGenStats *stats);
Lardon3DVisualIndexResult lardon3d_candidate_pair_generate_batch(
const char *project_path, Lardon3DProjectDb *database,
uint64_t visual_index_id, uint64_t after_feature_set_id,
const Lardon3DVisualIndexQueryOptions *query_options,
Lardon3DCandidatePairGenStats *total_stats,
uint64_t *last_feature_set_id);
/* Produce the frozen Candidate-generation v1 SHA-256 fingerprint in caller-owned
* 32-byte storage. Integer inputs are encoded at fixed width, little-endian;
* the filter is one u32 and exclude_same_asset is exactly one 0/1 byte. This
* preserves acquired little-endian fingerprints while making identity portable.
* query_options may be NULL for the historical ID-only form; fingerprint must
* be non-NULL. */
void lardon3d_candidate_pair_generation_fingerprint(
uint64_t visual_index_id, uint64_t source_feature_set_id,
const Lardon3DVisualIndexQueryOptions *query_options,
unsigned char fingerprint[32]);
#endif