You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.2 KiB
43 lines
1.2 KiB
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
#include <macros.h>
|
|
#include <math/math_defs.h>
|
|
|
|
#include <io_blobtree.h>
|
|
#include <settings.h>
|
|
|
|
typedef struct {
|
|
const vector3d* vertices;
|
|
const uint32_t* faces; // indices of vertices in each face
|
|
const uint32_t* vertex_counts; // number of vertices in each face
|
|
uint32_t num_vertices;
|
|
uint32_t num_faces;
|
|
} polymesh_t;
|
|
|
|
typedef struct {
|
|
polymesh_t mesh;
|
|
bool success;
|
|
} primitive_generation_result_t;
|
|
|
|
EXTERN_C_BEGIN
|
|
|
|
// forward declartions
|
|
class implicit_network_solver;
|
|
|
|
API implicit_network_solver* create_solver(const baked_blobtree_t* tree, const s_settings settings) noexcept;
|
|
API void destroy_solver(implicit_network_solver* solver) noexcept;
|
|
|
|
API primitive_generation_result_t generate_polymesh(implicit_network_solver* solver);
|
|
|
|
// output time usage statistics to console
|
|
API void print_statistics(const implicit_network_solver* solver);
|
|
API void clear_statistics(implicit_network_solver* solver);
|
|
|
|
// // clear the cache of previous solver results
|
|
// // CAUTION: output result should be invalid after calling this function
|
|
// API void clear_solver_cache();
|
|
|
|
EXTERN_C_END
|