32#define MESH_ADD_VERTS_MAXI 10000000
72 const bool exit_editmode = ((creation_data->
was_editmode ==
true) && (enter_editmode ==
false));
80 params.calc_looptris = !exit_editmode;
81 params.calc_normals =
false;
82 params.is_destructive =
true;
105 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr);
125 "create_grid x_segments=%i y_segments=%i size=%f matrix=%m4 calc_uvs=%b",
144 ot->
description =
"Construct a filled planar mesh with 4 vertices";
145 ot->
idname =
"MESH_OT_primitive_plane_add";
164 float loc[3],
rot[3], scale[3];
171 C, op,
'Z', loc,
rot, scale, &enter_editmode, &local_view_bits,
nullptr);
190 "create_cube matrix=%m4 size=%f calc_uvs=%b",
208 ot->
description =
"Construct a cube mesh that consists of six square faces";
209 ot->
idname =
"MESH_OT_primitive_cube_add";
224 {0,
"NOTHING", 0,
"Nothing",
"Don't fill at all"},
225 {1,
"NGON", 0,
"N-Gon",
"Use n-gons"},
226 {2,
"TRIFAN", 0,
"Triangle Fan",
"Use triangle fans"},
227 {0,
nullptr, 0,
nullptr,
nullptr},
235 float loc[3],
rot[3];
238 int cap_end, cap_tri;
242 cap_tri = (cap_end == 2);
246 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr);
266 "create_circle segments=%i radius=%f cap_ends=%b cap_tris=%b matrix=%m4 calc_uvs=%b",
287 ot->
idname =
"MESH_OT_primitive_circle_add";
310 float loc[3],
rot[3], scale[3];
314 const bool cap_end = (end_fill_type != 0);
315 const bool cap_tri = (end_fill_type == 2);
320 C, op,
'Z', loc,
rot, scale, &enter_editmode, &local_view_bits,
nullptr);
338 "create_cone segments=%i radius1=%f radius2=%f cap_ends=%b "
339 "cap_tris=%b depth=%f matrix=%m4 calc_uvs=%b",
360 ot->
name =
"Add Cylinder";
362 ot->
idname =
"MESH_OT_primitive_cylinder_add";
387 float loc[3],
rot[3], scale[3];
391 const bool cap_end = (end_fill_type != 0);
392 const bool cap_tri = (end_fill_type == 2);
397 C, op,
'Z', loc,
rot, scale, &enter_editmode, &local_view_bits,
nullptr);
415 "create_cone segments=%i radius1=%f radius2=%f cap_ends=%b "
416 "cap_tris=%b depth=%f matrix=%m4 calc_uvs=%b",
439 ot->
idname =
"MESH_OT_primitive_cone_add";
467 float loc[3],
rot[3];
474 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr);
493 "create_grid x_segments=%i y_segments=%i size=%f matrix=%m4 calc_uvs=%b",
513 ot->
idname =
"MESH_OT_primitive_grid_add";
540 float loc[3],
rot[3];
548 C, op,
'Y', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr);
570 "create_monkey matrix=%m4 calc_uvs=%b",
587 ot->
idname =
"MESH_OT_primitive_monkey_add";
607 float loc[3],
rot[3], scale[3];
614 C, op,
'Z', loc,
rot, scale, &enter_editmode, &local_view_bits,
nullptr);
633 "create_uvsphere u_segments=%i v_segments=%i radius=%f matrix=%m4 calc_uvs=%b",
651 ot->
name =
"Add UV Sphere";
653 "Construct a spherical mesh with quad faces, except for triangle faces at the top and "
655 ot->
idname =
"MESH_OT_primitive_uv_sphere_add";
678 float loc[3],
rot[3], scale[3];
685 C, op,
'Z', loc,
rot, scale, &enter_editmode, &local_view_bits,
nullptr);
704 "create_icosphere subdivisions=%i radius=%f matrix=%m4 calc_uvs=%b",
721 ot->
name =
"Add Ico Sphere";
722 ot->
description =
"Construct a spherical mesh that consists of equally sized triangles";
723 ot->
idname =
"MESH_OT_primitive_ico_sphere_add";
Scene * CTX_data_scene(const bContext *C)
Object * CTX_data_edit_object(const bContext *C)
Main * CTX_data_main(const bContext *C)
BMEditMesh * BKE_editmesh_from_object(Object *ob)
Return the BMEditMesh for a given object.
void mul_mat3_m4_fl(float R[4][4], float f)
#define CTX_DATA_(context, msgid)
#define BLT_I18NCONTEXT_ID_MESH
Object is a sort of wrapper for general info.
void ED_mesh_uv_ensure(Mesh *mesh, const char *name)
void EDBM_update(Mesh *mesh, const EDBMUpdate_Params *params)
void EDBM_selectmode_flush_ex(BMEditMesh *em, short selectmode)
#define OBJECT_ADD_SIZE_MAXF
bool ED_operator_scene_editable(bContext *C)
void MESH_OT_primitive_plane_add(wmOperatorType *ot)
static int add_primitive_circle_exec(bContext *C, wmOperator *op)
static int add_primitive_plane_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_cylinder_add(wmOperatorType *ot)
static int add_primitive_grid_exec(bContext *C, wmOperator *op)
static const EnumPropertyItem fill_type_items[]
static int add_primitive_cone_exec(bContext *C, wmOperator *op)
#define MESH_ADD_VERTS_MAXI
static int add_primitive_cube_exec(bContext *C, wmOperator *op)
static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_cone_add(wmOperatorType *ot)
static Object * make_prim_init(bContext *C, const char *idname, const float loc[3], const float rot[3], const float scale[3], ushort local_view_bits, MakePrimitiveData *r_creation_data)
void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot)
static void make_prim_finish(bContext *C, Object *obedit, const MakePrimitiveData *creation_data, int enter_editmode)
void MESH_OT_primitive_monkey_add(wmOperatorType *ot)
void MESH_OT_primitive_cube_add(wmOperatorType *ot)
static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot)
static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_grid_add(wmOperatorType *ot)
static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_circle_add(wmOperatorType *ot)
bool EDBM_op_call_and_selectf(BMEditMesh *em, wmOperator *op, const char *select_slot_out, const bool select_extend, const char *fmt,...)
void add_unit_props_radius(wmOperatorType *ot)
Object * add_type(bContext *C, int type, const char *name, const float loc[3], const float rot[3], bool enter_editmode, unsigned short local_view_bits) ATTR_NONNULL(1) ATTR_RETURNS_NONNULL
void add_unit_props_size(wmOperatorType *ot)
float new_primitive_matrix(bContext *C, Object *obedit, const float loc[3], const float rot[3], const float scale[3], float primmat[4][4])
bool editmode_enter_ex(Main *bmain, Scene *scene, Object *ob, int flag)
void add_generic_props(wmOperatorType *ot, bool do_editmode)
void add_mesh_props(wmOperatorType *ot)
void add_generic_get_opts(bContext *C, wmOperator *op, char view_align_axis, float r_loc[3], float r_rot[3], float r_scale[3], bool *r_enter_editmode, unsigned short *r_local_view_bits, bool *r_is_view_aligned)
bool editmode_exit_ex(Main *bmain, Scene *scene, Object *obedit, int flag)
int RNA_int_get(PointerRNA *ptr, const char *name)
float RNA_float_get(PointerRNA *ptr, const char *name)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float_distance(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_operator_view3d_unit_defaults(bContext *C, wmOperator *op)