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.

66 lines
1.8 KiB

5 months ago
#pragma once
#include "ImplicitFunc.h"
#include <vector>
#include <unordered_map>
enum class ImpGenType { MC, MC33_CPLUS, MC33_C, EXTENDED_MC, DUAL_MC, EXTENDED_MC_GPU};
bool IsoSurfGen(
float start_x, float end_x,
float start_y, float end_y,
float start_z, float end_z,
unsigned int nGridX, unsigned int nGridY, unsigned int nGridZ,
std::vector<float>& ptScalarField,
ImpGenType method_type = ImpGenType::MC33_C,
float iso_value = 0, float feature_angle = 30,
ImplicitFunc<float>* impfunc = 0,
const char* outobjfile = 0,
std::vector<TinyVector<float, 3>>* vertices = 0,
std::vector<unsigned int>* trifacets = 0,
const int buffer = 131072,
bool verbose = true
);
bool IsoSurfGen(
float start_x, float end_x,
float start_y, float end_y,
float start_z, float end_z,
unsigned int nGridX, unsigned int nGridY, unsigned int nGridZ,
ImpGenType method_type = ImpGenType::MC33_C,
float iso_value = 0, float feature_angle = 30,
ImplicitFunc<float>* impfunc = 0,
const char* outobjfile = 0,
std::vector<TinyVector<float, 3>>* vertices = 0,
std::vector<unsigned int>* trifacets = 0,
const int buffer = 131072,
bool verbose = true
);
bool IsoSurfGen(
const char* inputfile,
ImpGenType method_type = ImpGenType::MC33_C,
float iso_value = 0, float feature_angle = 30,
const char* outputfile = 0,
std::vector<TinyVector<float, 3>>* vertices = 0,
std::vector<unsigned int>* trifacets = 0,
const int buffer = 131072,
bool verbose = true
);
bool IsoSurfGen_FeatureAware(
float start_x, float end_x,
float start_y, float end_y,
float start_z, float end_z,
unsigned int gridsize,
ImplicitFunc<float>* impfunc,
const std::vector<int>& cubes, const std::vector<int>& cubetypes,
const std::unordered_map<int, float>& point_value_map,
const char* outobjfile,
float iso_value = 0,
float feature_angle = 30,
const int buffer = 131072,
bool verbose = true
);