Blender V4.3
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_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 int edbm_bevel_exec (bContext *C, wmOperator *op)
 
static void edbm_bevel_calc_initial_length (wmOperator *op, const wmEvent *event, bool mode_changed)
 
static int 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 int 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 49 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 60 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 57 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 51 of file editmesh_bevel.cc.

Referenced by MESH_OT_bevel().

◆ PROFILE_VALUE

#define PROFILE_VALUE   2

Definition at line 58 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 53 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 96 of file editmesh_bevel.cc.

Function Documentation

◆ bevel_modal_keymap()

◆ edbm_bevel_calc()

◆ edbm_bevel_calc_initial_length()

◆ edbm_bevel_cancel()

◆ edbm_bevel_exec()

static int edbm_bevel_exec ( bContext * C,
wmOperator * op )
static

◆ edbm_bevel_exit()

◆ edbm_bevel_init()

◆ edbm_bevel_invoke()

◆ edbm_bevel_modal()

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

◆ edbm_bevel_mouse_set_value()

◆ edbm_bevel_numinput_set_value()

◆ edbm_bevel_ui()

◆ edbm_bevel_update_status_text()

◆ get_bevel_offset()

static float get_bevel_offset ( wmOperator * op)
static

Definition at line 116 of file editmesh_bevel.cc.

References BEVEL_AMT_PERCENT, wmOperator::ptr, RNA_enum_get(), and RNA_float_get().

Referenced by edbm_bevel_calc().

◆ 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 65 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 64 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 62 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 67 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 66 of file editmesh_bevel.cc.

Referenced by edbm_bevel_calc_initial_length(), and edbm_bevel_mouse_set_value().