Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/editors/mesh/editmesh_extrude_spin.c
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/editors/mesh/editmesh_extrude_spin.c')
-rw-r--r--source/blender/editors/mesh/editmesh_extrude_spin.c291
1 files changed, 159 insertions, 132 deletions
diff --git a/source/blender/editors/mesh/editmesh_extrude_spin.c b/source/blender/editors/mesh/editmesh_extrude_spin.c
index a098751fd21..c546e9b866f 100644
--- a/source/blender/editors/mesh/editmesh_extrude_spin.c
+++ b/source/blender/editors/mesh/editmesh_extrude_spin.c
@@ -45,7 +45,7 @@
#include "MEM_guardedalloc.h"
-#include "mesh_intern.h" /* own include */
+#include "mesh_intern.h" /* own include */
#define USE_GIZMO
@@ -55,158 +55,185 @@
static int edbm_spin_exec(bContext *C, wmOperator *op)
{
- ViewLayer *view_layer = CTX_data_view_layer(C);
- float cent[3], axis[3];
- float d[3] = {0.0f, 0.0f, 0.0f};
-
- RNA_float_get_array(op->ptr, "center", cent);
- RNA_float_get_array(op->ptr, "axis", axis);
- const int steps = RNA_int_get(op->ptr, "steps");
- const float angle = RNA_float_get(op->ptr, "angle");
- const bool use_normal_flip = RNA_boolean_get(op->ptr, "use_normal_flip");
- const bool dupli = RNA_boolean_get(op->ptr, "dupli");
- const bool use_auto_merge = (
- RNA_boolean_get(op->ptr, "use_auto_merge") &&
- (dupli == false) &&
- (steps >= 3) &&
- fabsf((fabsf(angle) - (float)(M_PI * 2))) <= 1e-6f);
-
- if (is_zero_v3(axis)) {
- BKE_report(op->reports, RPT_ERROR, "Invalid/unset axis");
- return OPERATOR_CANCELLED;
- }
-
- uint objects_len = 0;
- Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, CTX_wm_view3d(C), &objects_len);
-
- for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
- Object *obedit = objects[ob_index];
- BMEditMesh *em = BKE_editmesh_from_object(obedit);
- BMesh *bm = em->bm;
- BMOperator spinop;
-
- /* keep the values in worldspace since we're passing the obmat */
- if (!EDBM_op_init(
- em, &spinop, op,
- "spin geom=%hvef cent=%v axis=%v dvec=%v steps=%i angle=%f space=%m4 "
- "use_normal_flip=%b use_duplicate=%b use_merge=%b",
- BM_ELEM_SELECT, cent, axis, d, steps, -angle, obedit->obmat,
- use_normal_flip, dupli, use_auto_merge))
- {
- continue;
- }
- BMO_op_exec(bm, &spinop);
- if (use_auto_merge == false) {
- EDBM_flag_disable_all(em, BM_ELEM_SELECT);
- BMO_slot_buffer_hflag_enable(bm, spinop.slots_out, "geom_last.out", BM_ALL_NOLOOP, BM_ELEM_SELECT, true);
- }
- if (!EDBM_op_finish(em, &spinop, op, true)) {
- continue;
- }
-
- EDBM_update_generic(em, true, true);
- }
-
- MEM_freeN(objects);
-
- return OPERATOR_FINISHED;
+ ViewLayer *view_layer = CTX_data_view_layer(C);
+ float cent[3], axis[3];
+ float d[3] = {0.0f, 0.0f, 0.0f};
+
+ RNA_float_get_array(op->ptr, "center", cent);
+ RNA_float_get_array(op->ptr, "axis", axis);
+ const int steps = RNA_int_get(op->ptr, "steps");
+ const float angle = RNA_float_get(op->ptr, "angle");
+ const bool use_normal_flip = RNA_boolean_get(op->ptr, "use_normal_flip");
+ const bool dupli = RNA_boolean_get(op->ptr, "dupli");
+ const bool use_auto_merge = (RNA_boolean_get(op->ptr, "use_auto_merge") && (dupli == false) &&
+ (steps >= 3) && fabsf((fabsf(angle) - (float)(M_PI * 2))) <= 1e-6f);
+
+ if (is_zero_v3(axis)) {
+ BKE_report(op->reports, RPT_ERROR, "Invalid/unset axis");
+ return OPERATOR_CANCELLED;
+ }
+
+ uint objects_len = 0;
+ Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data(
+ view_layer, CTX_wm_view3d(C), &objects_len);
+
+ for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
+ Object *obedit = objects[ob_index];
+ BMEditMesh *em = BKE_editmesh_from_object(obedit);
+ BMesh *bm = em->bm;
+ BMOperator spinop;
+
+ /* keep the values in worldspace since we're passing the obmat */
+ if (!EDBM_op_init(em,
+ &spinop,
+ op,
+ "spin geom=%hvef cent=%v axis=%v dvec=%v steps=%i angle=%f space=%m4 "
+ "use_normal_flip=%b use_duplicate=%b use_merge=%b",
+ BM_ELEM_SELECT,
+ cent,
+ axis,
+ d,
+ steps,
+ -angle,
+ obedit->obmat,
+ use_normal_flip,
+ dupli,
+ use_auto_merge)) {
+ continue;
+ }
+ BMO_op_exec(bm, &spinop);
+ if (use_auto_merge == false) {
+ EDBM_flag_disable_all(em, BM_ELEM_SELECT);
+ BMO_slot_buffer_hflag_enable(
+ bm, spinop.slots_out, "geom_last.out", BM_ALL_NOLOOP, BM_ELEM_SELECT, true);
+ }
+ if (!EDBM_op_finish(em, &spinop, op, true)) {
+ continue;
+ }
+
+ EDBM_update_generic(em, true, true);
+ }
+
+ MEM_freeN(objects);
+
+ return OPERATOR_FINISHED;
}
/* get center and axis, in global coords */
static int edbm_spin_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
{
- Scene *scene = CTX_data_scene(C);
- View3D *v3d = CTX_wm_view3d(C);
- RegionView3D *rv3d = ED_view3d_context_rv3d(C);
-
- PropertyRNA *prop;
- prop = RNA_struct_find_property(op->ptr, "center");
- if (!RNA_property_is_set(op->ptr, prop)) {
- RNA_property_float_set_array(op->ptr, prop, scene->cursor.location);
- }
- if (rv3d) {
- prop = RNA_struct_find_property(op->ptr, "axis");
- if (!RNA_property_is_set(op->ptr, prop)) {
- RNA_property_float_set_array(op->ptr, prop, rv3d->viewinv[2]);
- }
- }
-
+ Scene *scene = CTX_data_scene(C);
+ View3D *v3d = CTX_wm_view3d(C);
+ RegionView3D *rv3d = ED_view3d_context_rv3d(C);
+
+ PropertyRNA *prop;
+ prop = RNA_struct_find_property(op->ptr, "center");
+ if (!RNA_property_is_set(op->ptr, prop)) {
+ RNA_property_float_set_array(op->ptr, prop, scene->cursor.location);
+ }
+ if (rv3d) {
+ prop = RNA_struct_find_property(op->ptr, "axis");
+ if (!RNA_property_is_set(op->ptr, prop)) {
+ RNA_property_float_set_array(op->ptr, prop, rv3d->viewinv[2]);
+ }
+ }
#ifdef USE_GIZMO
- /* Start with zero angle, drag out the value. */
- prop = RNA_struct_find_property(op->ptr, "angle");
- if (!RNA_property_is_set(op->ptr, prop)) {
- RNA_property_float_set(op->ptr, prop, 0.0f);
- }
+ /* Start with zero angle, drag out the value. */
+ prop = RNA_struct_find_property(op->ptr, "angle");
+ if (!RNA_property_is_set(op->ptr, prop)) {
+ RNA_property_float_set(op->ptr, prop, 0.0f);
+ }
#endif
- int ret = edbm_spin_exec(C, op);
+ int ret = edbm_spin_exec(C, op);
#ifdef USE_GIZMO
- if (ret & OPERATOR_FINISHED) {
- /* Setup gizmos */
- if (v3d && ((v3d->gizmo_flag & V3D_GIZMO_HIDE) == 0)) {
- wmGizmoGroupType *gzgt = WM_gizmogrouptype_find("MESH_GGT_spin_redo", false);
- if (!WM_gizmo_group_type_ensure_ptr(gzgt)) {
- struct Main *bmain = CTX_data_main(C);
- WM_gizmo_group_type_reinit_ptr(bmain, gzgt);
- }
- }
- }
+ if (ret & OPERATOR_FINISHED) {
+ /* Setup gizmos */
+ if (v3d && ((v3d->gizmo_flag & V3D_GIZMO_HIDE) == 0)) {
+ wmGizmoGroupType *gzgt = WM_gizmogrouptype_find("MESH_GGT_spin_redo", false);
+ if (!WM_gizmo_group_type_ensure_ptr(gzgt)) {
+ struct Main *bmain = CTX_data_main(C);
+ WM_gizmo_group_type_reinit_ptr(bmain, gzgt);
+ }
+ }
+ }
#endif
- return ret;
+ return ret;
}
-static bool edbm_spin_poll_property(const bContext *UNUSED(C), wmOperator *op, const PropertyRNA *prop)
+static bool edbm_spin_poll_property(const bContext *UNUSED(C),
+ wmOperator *op,
+ const PropertyRNA *prop)
{
- const char *prop_id = RNA_property_identifier(prop);
- const bool dupli = RNA_boolean_get(op->ptr, "dupli");
-
- if (dupli) {
- if (STREQ(prop_id, "use_auto_merge") ||
- STREQ(prop_id, "use_normal_flip"))
- {
- return false;
- }
- }
- return true;
+ const char *prop_id = RNA_property_identifier(prop);
+ const bool dupli = RNA_boolean_get(op->ptr, "dupli");
+
+ if (dupli) {
+ if (STREQ(prop_id, "use_auto_merge") || STREQ(prop_id, "use_normal_flip")) {
+ return false;
+ }
+ }
+ return true;
}
void MESH_OT_spin(wmOperatorType *ot)
{
- PropertyRNA *prop;
-
- /* identifiers */
- ot->name = "Spin";
- ot->description = "Extrude selected vertices in a circle around the cursor in indicated viewport";
- ot->idname = "MESH_OT_spin";
-
- /* api callbacks */
- ot->invoke = edbm_spin_invoke;
- ot->exec = edbm_spin_exec;
- ot->poll = ED_operator_editmesh;
- ot->poll_property = edbm_spin_poll_property;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- /* props */
- RNA_def_int(ot->srna, "steps", 9, 0, 1000000, "Steps", "Steps", 0, 1000);
- RNA_def_boolean(ot->srna, "dupli", 0, "Dupli", "Make Duplicates");
- prop = RNA_def_float(ot->srna, "angle", DEG2RADF(90.0f), -1e12f, 1e12f, "Angle", "Rotation for each step",
- DEG2RADF(-360.0f), DEG2RADF(360.0f));
- RNA_def_property_subtype(prop, PROP_ANGLE);
- RNA_def_boolean(ot->srna, "use_auto_merge", true, "Auto Merge", "Merge first/last when the angle is a full revolution");
- RNA_def_boolean(ot->srna, "use_normal_flip", 0, "Flip Normals", "");
-
- RNA_def_float_vector_xyz(ot->srna, "center", 3, NULL, -1e12f, 1e12f,
- "Center", "Center in global view space", -1e4f, 1e4f);
- RNA_def_float_vector(ot->srna, "axis", 3, NULL, -1.0f, 1.0f, "Axis", "Axis in global view space", -1.0f, 1.0f);
-
- WM_gizmogrouptype_append(MESH_GGT_spin);
+ PropertyRNA *prop;
+
+ /* identifiers */
+ ot->name = "Spin";
+ ot->description =
+ "Extrude selected vertices in a circle around the cursor in indicated viewport";
+ ot->idname = "MESH_OT_spin";
+
+ /* api callbacks */
+ ot->invoke = edbm_spin_invoke;
+ ot->exec = edbm_spin_exec;
+ ot->poll = ED_operator_editmesh;
+ ot->poll_property = edbm_spin_poll_property;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* props */
+ RNA_def_int(ot->srna, "steps", 9, 0, 1000000, "Steps", "Steps", 0, 1000);
+ RNA_def_boolean(ot->srna, "dupli", 0, "Dupli", "Make Duplicates");
+ prop = RNA_def_float(ot->srna,
+ "angle",
+ DEG2RADF(90.0f),
+ -1e12f,
+ 1e12f,
+ "Angle",
+ "Rotation for each step",
+ DEG2RADF(-360.0f),
+ DEG2RADF(360.0f));
+ RNA_def_property_subtype(prop, PROP_ANGLE);
+ RNA_def_boolean(ot->srna,
+ "use_auto_merge",
+ true,
+ "Auto Merge",
+ "Merge first/last when the angle is a full revolution");
+ RNA_def_boolean(ot->srna, "use_normal_flip", 0, "Flip Normals", "");
+
+ RNA_def_float_vector_xyz(ot->srna,
+ "center",
+ 3,
+ NULL,
+ -1e12f,
+ 1e12f,
+ "Center",
+ "Center in global view space",
+ -1e4f,
+ 1e4f);
+ RNA_def_float_vector(
+ ot->srna, "axis", 3, NULL, -1.0f, 1.0f, "Axis", "Axis in global view space", -1.0f, 1.0f);
+
+ WM_gizmogrouptype_append(MESH_GGT_spin);
#ifdef USE_GIZMO
- WM_gizmogrouptype_append(MESH_GGT_spin_redo);
+ WM_gizmogrouptype_append(MESH_GGT_spin_redo);
#endif
}