37 #include "RNA_prototypes.h"
61 int faces_dst_num, edges_dst_num, loops_dst_num = 0;
62 int *vertMap, *edgeMap, *
faceMap;
65 MLoop *ml_dst, *ml_src ;
82 vertMap =
MEM_malloc_arrayN(vert_src_num,
sizeof(*vertMap),
"build modifier vertMap");
83 edgeMap =
MEM_malloc_arrayN(edge_src_num,
sizeof(*edgeMap),
"build modifier edgeMap");
97 faces_dst_num = poly_src_num *
frac;
98 edges_dst_num = edge_src_num *
frac;
116 for (i = 0; i < faces_dst_num; i++) {
120 for (j = 0; j < mp->
totloop; j++, ml++) {
123 *val_p = (
void *)hash_num;
137 for (i = 0; i < edge_src_num; i++, hash_num_alt++) {
138 MEdge *me = medge_src + i;
149 else if (edges_dst_num) {
163 for (i = 0; i < edges_dst_num; i++) {
165 me = medge + edgeMap[i];
168 *val_p = (
void *)hash_num;
172 *val_p = (
void *)hash_num;
179 for (i = 0; i < edges_dst_num; i++) {
187 int verts_num = vert_src_num *
frac;
196 for (i = 0; i < verts_num; i++) {
212 source = mvert_src[oldIndex];
225 source = medge_src[oldIndex];
235 mpoly_dst =
result->mpoly;
240 for (i = 0; i < faces_dst_num; i++) {
244 source = mpoly_src +
faceMap[i];
245 dest = mpoly_dst + i;
254 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, int flag)
@ eModifierTypeType_Nonconstructive
float BKE_scene_ctime_get(const struct Scene *scene)
BLI_INLINE void * BLI_ghashIterator_getKey(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_haskey(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
BLI_INLINE void * BLI_ghashIterator_getValue(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
#define GHASH_ITER(gh_iter_, ghash_)
GHash * BLI_ghash_int_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
unsigned int BLI_ghash_len(const GHash *gh) 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 range_vn_i(int *array_tar, int size, int start)
void BLI_array_randomize(void *data, unsigned int elem_size, unsigned int elem_num, 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)
@ MOD_BUILD_FLAG_RANDOMIZE
struct BuildModifierData BuildModifierData
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static bool dependsOnTime(struct Scene *UNUSED(scene), ModifierData *UNUSED(md))
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 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 Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
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 Depsgraph * depsgraph