Blender  V3.3
Classes
dial3d_gizmo.c File Reference
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
#include "BKE_context.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_matrix.h"
#include "GPU_select.h"
#include "GPU_state.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_gizmo_library.h"
#include "ED_screen.h"
#include "ED_transform.h"
#include "ED_view3d.h"
#include "../gizmo_geometry.h"
#include "../gizmo_library_intern.h"

Go to the source code of this file.

Classes

struct  DialInteraction
 
struct  Dial3dParams
 

Functions

Dial Gizmo API
static void GIZMO_GT_dial_3d (wmGizmoType *gzt)
 
void ED_gizmotypes_dial_3d (void)
 

Dial Gizmo

Circle shaped gizmo for circular interaction. Currently no own handling, use with operator only.

3D Gizmo

  • matrix[0] is derived from Y and Z.
  • matrix[1] is 'up' when DialGizmo.use_start_y_axis is set.
  • matrix[2] is the axis the dial rotates around (all dials).
#define DIAL_WIDTH   1.0f
 
#define DIAL_RESOLUTION   48
 
#define DIAL_CLIP_BIAS   0.02
 
typedef struct DialInteraction DialInteraction
 
static void dial_3d_draw_util (const float matrix_basis[4][4], const float matrix_final[4][4], const float line_width, const float color[4], const bool select, struct Dial3dParams *params)
 
static void dial_geom_draw (const float color[4], const float line_width, const bool select, const float axis_modal_mat[4][4], const float clip_plane[4], const float arc_partial_angle, const float arc_inner_factor, const int draw_options)
 
static void dial_ghostarc_draw_helpline (const float angle, const float co_outer[3], const float color[4], const float line_width)
 
static void dial_ghostarc_draw_incremental_angle (const float incremental_angle, const float offset)
 
static void dial_ghostarc_draw (const float angle_ofs, float angle_delta, const float arc_inner_factor, const float color[4])
 
static void dial_ghostarc_get_angles (const wmGizmo *gz, const wmEvent *event, const ARegion *region, const float mat[4][4], const float co_outer[3], float *r_start, float *r_delta)
 
static void dial_ghostarc_draw_with_helplines (const float angle_ofs, const float angle_delta, const float arc_inner_factor, const float color_helpline[4], const int draw_options)
 
static void dial_draw_intern (const bContext *C, wmGizmo *gz, const bool select, const bool highlight, float clip_plane[4])
 
static void gizmo_dial_draw_select (const bContext *C, wmGizmo *gz, int select_id)
 
static void gizmo_dial_draw (const bContext *C, wmGizmo *gz)
 
static int gizmo_dial_modal (bContext *C, wmGizmo *gz, const wmEvent *event, eWM_GizmoFlagTweak tweak_flag)
 
static void gizmo_dial_exit (bContext *C, wmGizmo *gz, const bool cancel)
 
static void gizmo_dial_setup (wmGizmo *gz)
 
static int gizmo_dial_invoke (bContext *UNUSED(C), wmGizmo *gz, const wmEvent *event)
 

Macro Definition Documentation

◆ DIAL_CLIP_BIAS

#define DIAL_CLIP_BIAS   0.02

Definition at line 77 of file dial3d_gizmo.c.

◆ DIAL_RESOLUTION

#define DIAL_RESOLUTION   48

Definition at line 74 of file dial3d_gizmo.c.

◆ DIAL_WIDTH

#define DIAL_WIDTH   1.0f

Definition at line 73 of file dial3d_gizmo.c.

Typedef Documentation

◆ DialInteraction

Function Documentation

◆ dial_3d_draw_util()

static void dial_3d_draw_util ( const float  matrix_basis[4][4],
const float  matrix_final[4][4],
const float  line_width,
const float  color[4],
const bool  select,
struct Dial3dParams params 
)
static

◆ dial_draw_intern()

static void dial_draw_intern ( const bContext C,
wmGizmo gz,
const bool  select,
const bool  highlight,
float  clip_plane[4] 
)
static

◆ dial_geom_draw()

static void dial_geom_draw ( const float  color[4],
const float  line_width,
const bool  select,
const float  axis_modal_mat[4][4],
const float  clip_plane[4],
const float  arc_partial_angle,
const float  arc_inner_factor,
const int  draw_options 
)
static

◆ dial_ghostarc_draw()

static void dial_ghostarc_draw ( const float  angle_ofs,
float  angle_delta,
const float  arc_inner_factor,
const float  color[4] 
)
static

◆ dial_ghostarc_draw_helpline()

static void dial_ghostarc_draw_helpline ( const float  angle,
const float  co_outer[3],
const float  color[4],
const float  line_width 
)
static

◆ dial_ghostarc_draw_incremental_angle()

static void dial_ghostarc_draw_incremental_angle ( const float  incremental_angle,
const float  offset 
)
static

◆ dial_ghostarc_draw_with_helplines()

static void dial_ghostarc_draw_with_helplines ( const float  angle_ofs,
const float  angle_delta,
const float  arc_inner_factor,
const float  color_helpline[4],
const int  draw_options 
)
static

◆ dial_ghostarc_get_angles()

static void dial_ghostarc_get_angles ( const wmGizmo gz,
const wmEvent event,
const ARegion region,
const float  mat[4][4],
const float  co_outer[3],
float r_start,
float r_delta 
)
static

◆ ED_gizmotypes_dial_3d()

void ED_gizmotypes_dial_3d ( void  )

Definition at line 722 of file dial3d_gizmo.c.

References GIZMO_GT_dial_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ gizmo_dial_draw()

static void gizmo_dial_draw ( const bContext C,
wmGizmo gz 
)
static

◆ gizmo_dial_draw_select()

static void gizmo_dial_draw_select ( const bContext C,
wmGizmo gz,
int  select_id 
)
static

◆ gizmo_dial_exit()

static void gizmo_dial_exit ( bContext C,
wmGizmo gz,
const bool  cancel 
)
static

◆ gizmo_dial_invoke()

static int gizmo_dial_invoke ( bContext UNUSEDC,
wmGizmo gz,
const wmEvent event 
)
static

◆ gizmo_dial_modal()

static int gizmo_dial_modal ( bContext C,
wmGizmo gz,
const wmEvent event,
eWM_GizmoFlagTweak  tweak_flag 
)
static

◆ gizmo_dial_setup()

static void gizmo_dial_setup ( wmGizmo gz)
static

Definition at line 582 of file dial3d_gizmo.c.

References copy_v3_v3(), and wmGizmo::matrix_basis.

Referenced by GIZMO_GT_dial_3d().

◆ GIZMO_GT_dial_3d()

static void GIZMO_GT_dial_3d ( wmGizmoType gzt)
static