40 float cent[3], axis[3];
41 const float d[3] = {0.0f, 0.0f, 0.0f};
49 const bool use_auto_merge = (
RNA_boolean_get(op->
ptr,
"use_auto_merge") && (dupli ==
false) &&
61 for (
uint ob_index = 0; ob_index < objects_len; ob_index++) {
62 Object *obedit = objects[ob_index];
71 "spin geom=%hvef cent=%v axis=%v dvec=%v steps=%i angle=%f space=%m4 "
72 "use_normal_flip=%b use_duplicate=%b use_merge=%b",
86 if (use_auto_merge ==
false) {
98 .calc_normals = false,
99 .is_destructive = true,
161 if (
STR_ELEM(prop_id,
"use_auto_merge",
"use_normal_flip")) {
175 "Extrude selected vertices in a circle around the cursor in indicated viewport";
199 "Rotation for each step",
207 "Merge first/last when the angle is a full revolution");
217 "Center in global view space",
221 ot->
srna,
"axis", 3,
NULL, -1.0f, 1.0f,
"Axis",
"Axis in global view space", -1.0f, 1.0f);
struct Scene * CTX_data_scene(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct View3D * CTX_wm_view3d(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, v3d, r_len)
void BKE_report(ReportList *reports, eReportType type, const char *message)
MINLINE bool is_zero_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
Object is a sort of wrapper for general info.
void EDBM_update(struct Mesh *me, const struct EDBMUpdate_Params *params)
void EDBM_flag_disable_all(struct BMEditMesh *em, char hflag)
bool ED_operator_editmesh(struct bContext *C)
struct RegionView3D * ED_view3d_context_rv3d(struct bContext *C)
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BMO_slot_buffer_hflag_enable(BMesh *bm, BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, char htype, char hflag, bool do_flush)
BMO_FLAG_BUFFER.
void BMO_op_exec(BMesh *bm, BMOperator *op)
BMESH OPSTACK EXEC OP.
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
static int edbm_spin_exec(bContext *C, wmOperator *op)
static int edbm_spin_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static bool edbm_spin_poll_property(const bContext *UNUSED(C), wmOperator *op, const PropertyRNA *prop)
void MESH_OT_spin(wmOperatorType *ot)
void MESH_GGT_spin(struct wmGizmoGroupType *gzgt)
void MESH_GGT_spin_redo(struct wmGizmoGroupType *gzgt)
bool EDBM_op_init(BMEditMesh *em, BMOperator *bmop, wmOperator *op, const char *fmt,...)
bool EDBM_op_finish(BMEditMesh *em, BMOperator *bmop, wmOperator *op, const bool do_report)
void(* MEM_freeN)(void *vmemh)
const char * RNA_property_identifier(const PropertyRNA *prop)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
int RNA_int_get(PointerRNA *ptr, const char *name)
float RNA_float_get(PointerRNA *ptr, const char *name)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_float_vector_xyz(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_property_subtype(PropertyRNA *prop, PropertySubType subtype)
struct BMOpSlot slots_out[BMO_OP_MAX_SLOTS]
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
bool(* poll_property)(const struct bContext *C, struct wmOperator *op, const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
bool WM_gizmo_group_type_ensure_ptr(wmGizmoGroupType *gzgt)
void WM_gizmo_group_type_reinit_ptr(struct Main *bmain, wmGizmoGroupType *gzgt)
wmGizmoGroupType * WM_gizmogrouptype_find(const char *idname, bool quiet)
wmGizmoGroupType * WM_gizmogrouptype_append(void(*wtfunc)(struct wmGizmoGroupType *))