74 int numFaces_dst, numEdges_dst, numLoops_dst = 0;
75 int *vertMap, *edgeMap, *
faceMap;
78 MLoop *ml_dst, *ml_src ;
95 vertMap =
MEM_malloc_arrayN(numVert_src,
sizeof(*vertMap),
"build modifier vertMap");
96 edgeMap =
MEM_malloc_arrayN(numEdge_src,
sizeof(*edgeMap),
"build modifier edgeMap");
110 numFaces_dst = numPoly_src *
frac;
111 numEdges_dst = numEdge_src *
frac;
129 for (i = 0; i < numFaces_dst; i++) {
133 for (j = 0; j < mp->
totloop; j++, ml++) {
136 *val_p = (
void *)hash_num;
150 for (i = 0; i < numEdge_src; i++, hash_num_alt++) {
151 MEdge *me = medge_src + i;
162 else if (numEdges_dst) {
176 for (i = 0; i < numEdges_dst; i++) {
178 me = medge + edgeMap[i];
181 *val_p = (
void *)hash_num;
185 *val_p = (
void *)hash_num;
192 for (i = 0; i < numEdges_dst; i++) {
200 int numVerts = numVert_src *
frac;
209 for (i = 0; i < numVerts; i++) {
225 source = mvert_src[oldIndex];
226 dest = &
result->mvert[newIndex];
238 source = medge_src[oldIndex];
248 mpoly_dst =
result->mpoly;
253 for (i = 0; i < numFaces_dst; i++) {
257 source = mpoly_src +
faceMap[i];
258 dest = mpoly_dst + i;
267 for (j = 0; j < source->
totloop; j++, k++, ml_src++, ml_dst++) {
void CustomData_copy_data(const struct CustomData *source, struct CustomData *dest, int source_index, int dest_index, int count)
struct Mesh * BKE_mesh_new_nomain_from_template(const struct Mesh *me_src, int verts_len, int edges_len, int tessface_len, int loops_len, int polys_len)
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, const int flag)
@ eModifierTypeType_Nonconstructive
float BKE_scene_frame_get(const struct Scene *scene)
BLI_INLINE void * BLI_ghashIterator_getKey(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
BLI_INLINE void * BLI_ghashIterator_getValue(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
#define GHASH_ITER(gh_iter_, ghash_)
unsigned int BLI_ghash_len(GHash *gh) ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_haskey(GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
GHash * BLI_ghash_int_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
bool BLI_ghash_ensure_p(GHash *gh, void *key, void ***r_val) ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void range_vn_i(int *array_tar, const int size, const int start)
void BLI_array_randomize(void *data, unsigned int elem_size, unsigned int elem_tot, unsigned int seed)
#define POINTER_FROM_INT(i)
#define POINTER_AS_INT(i)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
struct Scene * DEG_get_input_scene(const Depsgraph *graph)
#define DNA_struct_default_get(struct_name)
struct BuildModifierData BuildModifierData
@ MOD_BUILD_FLAG_RANDOMIZE
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static Mesh * modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, struct Mesh *mesh)
static void random_panel_header_draw(const bContext *UNUSED(C), Panel *panel)
static void random_panel_draw(const bContext *UNUSED(C), Panel *panel)
ModifierTypeInfo modifierType_Build
static bool dependsOnTime(ModifierData *UNUSED(md))
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
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)
PanelType * modifier_subpanel_register(ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent)
Group RGB to Bright Vector Camera CLAMP
StructRNA RNA_BuildModifier
void uiLayoutSetActive(uiLayout *layout, bool active)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void(* MEM_freeN)(void *vmemh)
ccl_device_inline float frac(float x, int *ix)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
_W64 unsigned int uintptr_t
struct CustomData pdata ldata
struct Depsgraph * depsgraph