35#include "RNA_prototypes.hh"
58 int faces_dst_num, edges_dst_num, loops_dst_num = 0;
68 const int vert_src_num = mesh->verts_num;
74 int *vertMap =
static_cast<int *
>(
MEM_malloc_arrayN(vert_src_num,
sizeof(
int), __func__));
89 faces_dst_num = faces_src.
size() *
frac;
90 edges_dst_num = edges_src.
size() *
frac;
104 for (i = 0; i < faces_dst_num; i++) {
106 for (j = 0; j < face.size(); j++) {
107 const int vert_i = corner_verts_src[face[j]];
110 *val_p = (
void *)hash_num;
115 loops_dst_num += face.
size();
124 for (i = 0; i < edges_src.
size(); i++, hash_num_alt++) {
137 else if (edges_dst_num) {
150 for (i = 0; i < edges_dst_num; i++) {
155 *val_p = (
void *)hash_num;
159 *val_p = (
void *)hash_num;
166 for (i = 0; i < edges_dst_num; i++) {
174 int verts_num = vert_src_num *
frac;
183 for (i = 0; i < verts_num; i++) {
209 source = edges_src[oldIndex];
210 dest = &result_edges[i];
221 for (i = 0; i < faces_dst_num; i++) {
223 result_face_offsets[i] = k;
228 &mesh->corner_data, &result->corner_data, src_face.
start(), k, src_face.
size());
230 for (j = 0; j < src_face.
size(); j++, k++) {
231 const int vert_src = corner_verts_src[src_face[j]];
232 const int edge_src = corner_edges_src[src_face[j]];
CustomData interface, see also DNA_customdata_types.h.
void CustomData_copy_data(const CustomData *source, CustomData *dest, int source_index, int dest_index, int count)
Mesh * BKE_mesh_new_nomain_from_template(const Mesh *me_src, int verts_num, int edges_num, int faces_num, int corners_num)
void BKE_modifier_copydata_generic(const ModifierData *md, ModifierData *md_dst, int flag)
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_AcceptsMesh
float BKE_scene_ctime_get(const 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_)
unsigned int BLI_ghash_len(const GHash *gh) ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
GHash * BLI_ghash_int_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
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)
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 void init_data(ModifierData *md)
static void panel_register(ARegionType *region_type)
static void random_panel_draw(const bContext *, Panel *panel)
static Mesh * modify_mesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
ModifierTypeInfo modifierType_Build
static void random_panel_header_draw(const bContext *, Panel *panel)
static void panel_draw(const bContext *, Panel *panel)
static bool depends_on_time(Scene *, ModifierData *)
PanelType * modifier_subpanel_register(ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent)
void modifier_panel_end(uiLayout *layout, PointerRNA *ptr)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void uiLayoutSetActive(uiLayout *layout, bool active)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, eUI_Item_Flag flag, const char *name, int icon)
constexpr int64_t size() const
constexpr int64_t start() const
constexpr const T * data() const
constexpr int64_t size() const
CCL_NAMESPACE_BEGIN ccl_device_inline float frac(float x, ccl_private int *ix)
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
_W64 unsigned int uintptr_t