34#include "RNA_prototypes.hh"
57 int faces_dst_num, edges_dst_num, loops_dst_num = 0;
88 faces_dst_num = faces_src.
size() *
frac;
89 edges_dst_num = edges_src.
size() *
frac;
93 uintptr_t hash_num, hash_num_alt;
103 for (
i = 0;
i < faces_dst_num;
i++) {
105 for (j = 0; j < face.
size(); j++) {
106 const int vert_i = corner_verts_src[face[j]];
109 *val_p = (
void *)hash_num;
114 loops_dst_num += face.
size();
123 for (
i = 0;
i < edges_src.
size();
i++, hash_num_alt++) {
136 else if (edges_dst_num) {
149 for (
i = 0;
i < edges_dst_num;
i++) {
154 *val_p = (
void *)hash_num;
158 *val_p = (
void *)hash_num;
165 for (
i = 0;
i < edges_dst_num;
i++) {
173 int verts_num = vert_src_num *
frac;
182 for (
i = 0;
i < verts_num;
i++) {
208 source = edges_src[oldIndex];
209 dest = &result_edges[
i];
220 for (
i = 0;
i < faces_dst_num;
i++) {
222 result_face_offsets[
i] = k;
229 for (j = 0; j < src_face.
size(); j++, k++) {
230 const int vert_src = corner_verts_src[src_face[j]];
231 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)
@ MOD_BUILD_FLAG_RANDOMIZE
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
static void panel_register(ARegionType *region_type)
static void panel_draw(const bContext *, Panel *panel)
static Mesh * modify_mesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
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)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void modifier_error_message_draw(uiLayout *layout, PointerRNA *ptr)
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(const float x, ccl_private int *ix)
void * MEM_malloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
VecBase< int32_t, 2 > int2
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void active_set(bool active)
void use_property_split_set(bool value)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)