30#include "RNA_prototypes.hh"
51 const bool do_split_all = do_split_angle && emd->
split_angle < FLT_EPSILON;
52 const bool calc_face_normals = do_split_angle && !do_split_all;
57 convert_params.calc_vert_normal =
false;
58 convert_params.add_key_index =
false;
59 convert_params.use_shapekey =
false;
60 convert_params.active_shapekey = 0;
71 if ((l1 =
e->l) && (l2 =
e->l->radial_next) != l1) {
88 if ((
e->l) && (
e->l->next !=
e->l)) {
160 "EdgeSplitModifierData",
162 &RNA_EdgeSplitModifier,
Mesh * BKE_mesh_from_bmesh_for_eval_nomain(BMesh *bm, const CustomData_MeshMasks *cd_mask_extra, const Mesh *me_settings)
BMesh * BKE_mesh_to_bmesh_ex(const Mesh *mesh, const BMeshCreateParams *create_params, const BMeshFromMeshParams *convert_params)
void BKE_modifier_copydata_generic(const ModifierData *md, ModifierData *md_dst, int flag)
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_SupportsMapping
@ eModifierTypeFlag_EnableInEditmode
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define CD_MASK_ORIGINDEX
#define DNA_struct_default_get(struct_name)
@ eModifierType_EdgeSplit
@ MOD_EDGESPLIT_FROMANGLE
struct EdgeSplitModifierData EdgeSplitModifierData
static void init_data(ModifierData *md)
Mesh * doEdgeSplit(const Mesh *mesh, EdgeSplitModifierData *emd)
static void panel_register(ARegionType *region_type)
ModifierTypeInfo modifierType_EdgeSplit
static Mesh * modify_mesh(ModifierData *md, const ModifierEvalContext *, Mesh *mesh)
static void panel_draw(const bContext *, Panel *panel)
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)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
uiLayout * uiLayoutRowWithHeading(uiLayout *layout, bool align, const char *heading)
void uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, eUI_Item_Flag flag, const char *name, int icon)
void BM_mesh_edgesplit(BMesh *bm, const bool use_verts, const bool tag_only, const bool copy_select)
#define BM_elem_flag_test(ele, hflag)
#define BM_elem_flag_enable(ele, hflag)
#define BM_ITER_MESH(ele, iter, bm, itype)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_free(BMesh *bm)
BMesh Free Mesh.
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
void debug_randomize_mesh_order(Mesh *mesh)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
struct BMLoop * radial_next