Blender V4.5
editmesh_bevel.cc File Reference
#include <fmt/format.h>
#include "MEM_guardedalloc.h"
#include "DNA_object_types.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BLT_translation.hh"
#include "BKE_context.hh"
#include "BKE_editmesh.hh"
#include "BKE_global.hh"
#include "BKE_layer.hh"
#include "BKE_screen.hh"
#include "BKE_unit.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "RNA_prototypes.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"
#include "ED_mesh.hh"
#include "ED_numinput.hh"
#include "ED_screen.hh"
#include "ED_space_api.hh"
#include "ED_transform.hh"
#include "ED_util.hh"
#include "ED_view3d.hh"
#include "mesh_intern.hh"

Go to the source code of this file.

Classes

struct  BevelObjectStore
struct  BevelData

Macros

#define MVAL_PIXEL_MARGIN   5.0f
#define PROFILE_HARD_MIN   0.0f
#define SEGMENTS_HARD_MAX   1000
#define OFFSET_VALUE   0
#define OFFSET_VALUE_PERCENT   1
#define PROFILE_VALUE   2
#define SEGMENTS_VALUE   3
#define NUM_VALUE_KINDS   4

Enumerations

enum  {
  BEV_MODAL_CANCEL = 1 , BEV_MODAL_CONFIRM , BEV_MODAL_VALUE_OFFSET , BEV_MODAL_VALUE_PROFILE ,
  BEV_MODAL_VALUE_SEGMENTS , BEV_MODAL_SEGMENTS_UP , BEV_MODAL_SEGMENTS_DOWN , BEV_MODAL_OFFSET_MODE_CHANGE ,
  BEV_MODAL_CLAMP_OVERLAP_TOGGLE , BEV_MODAL_AFFECT_CHANGE , BEV_MODAL_HARDEN_NORMALS_TOGGLE , BEV_MODAL_MARK_SEAM_TOGGLE ,
  BEV_MODAL_MARK_SHARP_TOGGLE , BEV_MODAL_OUTER_MITER_CHANGE , BEV_MODAL_INNER_MITER_CHANGE , BEV_MODAL_PROFILE_TYPE_CHANGE ,
  BEV_MODAL_VERTEX_MESH_CHANGE
}

Functions

static float get_bevel_offset (wmOperator *op)
static void edbm_bevel_update_status_text (bContext *C, wmOperator *op)
static bool edbm_bevel_init (bContext *C, wmOperator *op, const bool is_modal)
static bool edbm_bevel_calc (wmOperator *op)
static void edbm_bevel_exit (bContext *C, wmOperator *op)
static void edbm_bevel_cancel (bContext *C, wmOperator *op)
static wmOperatorStatus edbm_bevel_exec (bContext *C, wmOperator *op)
static void edbm_bevel_calc_initial_length (wmOperator *op, const wmEvent *event, bool mode_changed)
static wmOperatorStatus edbm_bevel_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static void edbm_bevel_mouse_set_value (wmOperator *op, const wmEvent *event)
static void edbm_bevel_numinput_set_value (wmOperator *op)
wmKeyMapbevel_modal_keymap (wmKeyConfig *keyconf)
static wmOperatorStatus edbm_bevel_modal (bContext *C, wmOperator *op, const wmEvent *event)
static void edbm_bevel_ui (bContext *C, wmOperator *op)
void MESH_OT_bevel (wmOperatorType *ot)

Variables

static const char * value_rna_name [NUM_VALUE_KINDS]
static const float value_clamp_min [NUM_VALUE_KINDS] = {0.0f, 0.0f, PROFILE_HARD_MIN, 1.0f}
static const float value_clamp_max [NUM_VALUE_KINDS] = {1e6, 100.0f, 1.0f, SEGMENTS_HARD_MAX}
static const float value_start [NUM_VALUE_KINDS] = {0.0f, 0.0f, 0.5f, 1.0f}
static const float value_scale_per_inch [NUM_VALUE_KINDS] = {0.0f, 100.0f, 1.0f, 4.0f}

Macro Definition Documentation

◆ MVAL_PIXEL_MARGIN

#define MVAL_PIXEL_MARGIN   5.0f

Definition at line 50 of file editmesh_bevel.cc.

Referenced by edbm_bevel_calc_initial_length(), and edbm_bevel_mouse_set_value().

◆ NUM_VALUE_KINDS

#define NUM_VALUE_KINDS   4

Definition at line 61 of file editmesh_bevel.cc.

Referenced by edbm_bevel_init().

◆ OFFSET_VALUE

#define OFFSET_VALUE   0

◆ OFFSET_VALUE_PERCENT

#define OFFSET_VALUE_PERCENT   1

Definition at line 58 of file editmesh_bevel.cc.

Referenced by edbm_bevel_init(), and edbm_bevel_modal().

◆ PROFILE_HARD_MIN

#define PROFILE_HARD_MIN   0.0f

Definition at line 52 of file editmesh_bevel.cc.

Referenced by MESH_OT_bevel().

◆ PROFILE_VALUE

#define PROFILE_VALUE   2

Definition at line 59 of file editmesh_bevel.cc.

Referenced by edbm_bevel_modal(), and edbm_bevel_update_status_text().

◆ SEGMENTS_HARD_MAX

#define SEGMENTS_HARD_MAX   1000

Definition at line 54 of file editmesh_bevel.cc.

Referenced by MESH_OT_bevel().

◆ SEGMENTS_VALUE

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BEV_MODAL_CANCEL 
BEV_MODAL_CONFIRM 
BEV_MODAL_VALUE_OFFSET 
BEV_MODAL_VALUE_PROFILE 
BEV_MODAL_VALUE_SEGMENTS 
BEV_MODAL_SEGMENTS_UP 
BEV_MODAL_SEGMENTS_DOWN 
BEV_MODAL_OFFSET_MODE_CHANGE 
BEV_MODAL_CLAMP_OVERLAP_TOGGLE 
BEV_MODAL_AFFECT_CHANGE 
BEV_MODAL_HARDEN_NORMALS_TOGGLE 
BEV_MODAL_MARK_SEAM_TOGGLE 
BEV_MODAL_MARK_SHARP_TOGGLE 
BEV_MODAL_OUTER_MITER_CHANGE 
BEV_MODAL_INNER_MITER_CHANGE 
BEV_MODAL_PROFILE_TYPE_CHANGE 
BEV_MODAL_VERTEX_MESH_CHANGE 

Definition at line 97 of file editmesh_bevel.cc.

Function Documentation

◆ bevel_modal_keymap()

◆ edbm_bevel_calc()

◆ edbm_bevel_calc_initial_length()

◆ edbm_bevel_cancel()

◆ edbm_bevel_exec()

◆ edbm_bevel_exit()

◆ edbm_bevel_init()

◆ edbm_bevel_invoke()

◆ edbm_bevel_modal()

wmOperatorStatus edbm_bevel_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

Definition at line 665 of file editmesh_bevel.cc.

References BEV_MODAL_AFFECT_CHANGE, BEV_MODAL_CANCEL, BEV_MODAL_CLAMP_OVERLAP_TOGGLE, BEV_MODAL_CONFIRM, BEV_MODAL_HARDEN_NORMALS_TOGGLE, BEV_MODAL_INNER_MITER_CHANGE, BEV_MODAL_MARK_SEAM_TOGGLE, BEV_MODAL_MARK_SHARP_TOGGLE, BEV_MODAL_OFFSET_MODE_CHANGE, BEV_MODAL_OUTER_MITER_CHANGE, BEV_MODAL_PROFILE_TYPE_CHANGE, BEV_MODAL_SEGMENTS_DOWN, BEV_MODAL_SEGMENTS_UP, BEV_MODAL_VALUE_OFFSET, BEV_MODAL_VALUE_PROFILE, BEV_MODAL_VALUE_SEGMENTS, BEV_MODAL_VERTEX_MESH_CHANGE, BEVEL_AFFECT_EDGES, BEVEL_AFFECT_VERTICES, BEVEL_AMT_OFFSET, BEVEL_AMT_PERCENT, BEVEL_MITER_ARC, BEVEL_MITER_PATCH, BEVEL_MITER_SHARP, BEVEL_PROFILE_CUSTOM, BEVEL_PROFILE_SUPERELLIPSE, BEVEL_VMESH_ADJ, BEVEL_VMESH_CUTOFF, C, wmOperator::customdata, ED_workspace_status_text(), edbm_bevel_calc(), edbm_bevel_calc_initial_length(), edbm_bevel_cancel(), edbm_bevel_exit(), edbm_bevel_modal(), edbm_bevel_mouse_set_value(), edbm_bevel_numinput_set_value(), edbm_bevel_update_status_text(), ELEM, EVT_MODAL_MAP, handleNumInput(), hasNumInput(), BevelData::initial_length, KM_PRESS, KM_RELEASE, BevelData::launch_event, LEFTMOUSE, max_ff(), MOUSEMOVE, MOUSEPAN, BevelData::num_input, OFFSET_VALUE, OFFSET_VALUE_PERCENT, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_RUNNING_MODAL, PROFILE_VALUE, wmOperator::ptr, RNA_boolean_get(), RNA_boolean_set(), RNA_enum_get(), RNA_enum_set(), RNA_int_set(), BevelData::segments, SEGMENTS_VALUE, and BevelData::value_mode.

Referenced by edbm_bevel_modal(), and MESH_OT_bevel().

◆ edbm_bevel_mouse_set_value()

◆ edbm_bevel_numinput_set_value()

◆ edbm_bevel_ui()

◆ edbm_bevel_update_status_text()

◆ get_bevel_offset()

float get_bevel_offset ( wmOperator * op)
static

◆ MESH_OT_bevel()

Variable Documentation

◆ value_clamp_max

const float value_clamp_max[NUM_VALUE_KINDS] = {1e6, 100.0f, 1.0f, SEGMENTS_HARD_MAX}
static

Definition at line 66 of file editmesh_bevel.cc.

Referenced by edbm_bevel_mouse_set_value(), and edbm_bevel_numinput_set_value().

◆ value_clamp_min

const float value_clamp_min[NUM_VALUE_KINDS] = {0.0f, 0.0f, PROFILE_HARD_MIN, 1.0f}
static

Definition at line 65 of file editmesh_bevel.cc.

Referenced by edbm_bevel_mouse_set_value(), and edbm_bevel_numinput_set_value().

◆ value_rna_name

const char* value_rna_name[NUM_VALUE_KINDS]
static
Initial value:
= {
"offset", "offset_pct", "profile", "segments"}

Definition at line 63 of file editmesh_bevel.cc.

Referenced by edbm_bevel_calc_initial_length(), edbm_bevel_mouse_set_value(), and edbm_bevel_numinput_set_value().

◆ value_scale_per_inch

const float value_scale_per_inch[NUM_VALUE_KINDS] = {0.0f, 100.0f, 1.0f, 4.0f}
static

Definition at line 68 of file editmesh_bevel.cc.

Referenced by edbm_bevel_init().

◆ value_start

const float value_start[NUM_VALUE_KINDS] = {0.0f, 0.0f, 0.5f, 1.0f}
static

Definition at line 67 of file editmesh_bevel.cc.

Referenced by edbm_bevel_calc_initial_length(), and edbm_bevel_mouse_set_value().