34 #include "RNA_prototypes.h"
42 #ifdef WITH_MOD_REMESH
57 #ifdef WITH_MOD_REMESH
87 static void *dualcon_alloc_output(
int totvert,
int totquad)
99 static void dualcon_add_vert(
void *output_v,
const float co[3])
101 DualConOutput *
output = output_v;
110 static void dualcon_add_quad(
void *output_v,
const int vert_indices[4])
112 DualConOutput *
output = output_v;
125 for (i = 0; i < 4; i++) {
126 mloop[
output->curface * 4 + i].
v = vert_indices[i];
182 dualcon_alloc_output,
199 int i, totpoly =
result->totpoly;
202 for (i = 0; i < totpoly; i++) {
226 #ifdef WITH_MOD_REMESH
251 uiItemR(layout,
ptr,
"use_remove_disconnected", 0,
NULL, ICON_NONE);
261 uiItemL(layout,
TIP_(
"Built without Remesh modifier"), ICON_NONE);
272 "RemeshModifierData",
void BKE_mesh_copy_parameters_for_eval(struct Mesh *me_dst, const struct Mesh *me_src)
struct Mesh * BKE_mesh_new_nomain(int verts_len, int edges_len, int tessface_len, int loops_len, int polys_len)
bool BKE_mesh_minmax(const struct Mesh *me, float r_min[3], float r_max[3])
void BKE_mesh_calc_edges(struct Mesh *mesh, bool keep_existing_edges, bool select_new_edges)
struct Mesh * BKE_mesh_remesh_voxel(const struct Mesh *mesh, float voxel_size, float adaptivity, float isovalue)
const struct MLoopTri * BKE_mesh_runtime_looptri_ensure(const struct Mesh *mesh)
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, int flag)
@ eModifierTypeType_Nonconstructive
MINLINE void copy_v3_v3(float r[3], const float a[3])
#define BLI_MUTEX_INITIALIZER
void BLI_mutex_lock(ThreadMutex *mutex)
void BLI_mutex_unlock(ThreadMutex *mutex)
pthread_mutex_t ThreadMutex
#define INIT_MINMAX(min, max)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define DNA_struct_default_get(struct_name)
@ MOD_REMESH_SMOOTH_SHADING
@ MOD_REMESH_SHARP_FEATURES
struct RemeshModifierData RemeshModifierData
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
static Mesh * modifyMesh(ModifierData *UNUSED(md), const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
ModifierTypeInfo modifierType_Remesh
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void modifier_panel_end(uiLayout *layout, PointerRNA *ptr)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
void uiLayoutSetActive(uiLayout *layout, bool active)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
void uiItemL(uiLayout *layout, const char *name, int icon)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void * dualcon(const DualConInput *input_mesh, DualConAllocOutput alloc_output, DualConAddVert add_vert, DualConAddQuad add_quad, DualConFlags flags, DualConMode mode, float threshold, float hermite_num, float scale, int depth)
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_global KernelShaderEvalInput * input
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
struct MLoopTri_Store looptris