Blender V4.3
cage3d_gizmo.cc File Reference
#include "MEM_guardedalloc.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector_types.hh"
#include "BKE_context.hh"
#include "GPU_immediate.hh"
#include "GPU_immediate_util.hh"
#include "GPU_matrix.hh"
#include "GPU_select.hh"
#include "GPU_shader.hh"
#include "GPU_state.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "ED_gizmo_library.hh"
#include "ED_screen.hh"
#include "ED_view3d.hh"
#include "../gizmo_library_intern.hh"

Go to the source code of this file.

Classes

struct  RectTransformInteraction
 

Functions

static void gizmo_cage3d_draw_intern (RegionView3D *rv3d, wmGizmo *gz, const bool select, const bool highlight, const int select_id)
 
static void gizmo_cage3d_draw_select (const bContext *C, wmGizmo *gz, int select_id)
 
static void gizmo_cage3d_draw (const bContext *C, wmGizmo *gz)
 
static int gizmo_cage3d_get_cursor (wmGizmo *gz)
 
static void gizmo_cage3d_setup (wmGizmo *gz)
 
static int gizmo_cage3d_invoke (bContext *C, wmGizmo *gz, const wmEvent *event)
 
static int gizmo_cage3d_modal (bContext *C, wmGizmo *gz, const wmEvent *event, eWM_GizmoFlagTweak)
 
static void gizmo_cage3d_property_update (wmGizmo *gz, wmGizmoProperty *gz_prop)
 
static void gizmo_cage3d_exit (bContext *C, wmGizmo *gz, const bool cancel)
 
Box Draw Style

Useful for 3D views, see: ED_GIZMO_CAGE3D_STYLE_BOX

static void cage3d_draw_box_corners (const float r[3], const float margin[3], const float color[3], const float line_width)
 
static void cage3d_draw_box_interaction (const RegionView3D *rv3d, const float matrix_final[4][4], const float color[4], const int highlighted, const float size[3], const float margin[3])
 
Circle Draw Style

Useful for 2D views, see: ED_GIZMO_CAGE3D_STYLE_CIRCLE

static void imm_draw_point_aspect_3d (uint pos, const float co[3], const float rad[3], bool solid)
 
static void cage3d_draw_circle_wire (const float r[3], const float margin[3], const float color[3], const int transform_flag, const int draw_options, const float line_width)
 
static void cage3d_draw_circle_handles (const RegionView3D *rv3d, const float matrix_final[4][4], const float r[3], const float margin[3], const float color[3], bool solid, const float handle_scale)
 
Cage Gizmo API
static void GIZMO_GT_cage_3d (wmGizmoType *gzt)
 
void ED_gizmotypes_cage_3d ()
 

Cage Gizmo

Cuboid gizmo acting as a 'cage' around its content. Interacting scales or translates the gizmo.

3D Gizmo

#define GIZMO_MARGIN_OFFSET_SCALE   1.5f
 
static void gizmo_calc_matrix_final_no_offset (const wmGizmo *gz, float orig_matrix_final_no_offset[4][4], bool use_space)
 
static void gizmo_calc_rect_view_scale (const wmGizmo *gz, const float dims[3], float scale[3])
 
static void gizmo_calc_rect_view_margin (const wmGizmo *gz, const float dims[3], float margin[3])
 
static void gizmo_rect_pivot_from_scale_part (int part, float r_pt[3], bool r_constrain_axis[3], bool has_translation)
 

Macro Definition Documentation

◆ GIZMO_MARGIN_OFFSET_SCALE

#define GIZMO_MARGIN_OFFSET_SCALE   1.5f

Definition at line 43 of file cage3d_gizmo.cc.

Function Documentation

◆ cage3d_draw_box_corners()

◆ cage3d_draw_box_interaction()

◆ cage3d_draw_circle_handles()

static void cage3d_draw_circle_handles ( const RegionView3D * rv3d,
const float matrix_final[4][4],
const float r[3],
const float margin[3],
const float color[3],
bool solid,
const float handle_scale )
static

◆ cage3d_draw_circle_wire()

◆ ED_gizmotypes_cage_3d()

void ED_gizmotypes_cage_3d ( )

Definition at line 682 of file cage3d_gizmo.cc.

References GIZMO_GT_cage_3d(), and WM_gizmotype_append().

Referenced by ED_spacetypes_init().

◆ gizmo_cage3d_draw()

static void gizmo_cage3d_draw ( const bContext * C,
wmGizmo * gz )
static

◆ gizmo_cage3d_draw_intern()

◆ gizmo_cage3d_draw_select()

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

For when we want to draw 3d cage in 3d views.

Definition at line 408 of file cage3d_gizmo.cc.

References CTX_wm_region(), and gizmo_cage3d_draw_intern().

Referenced by GIZMO_GT_cage_3d().

◆ gizmo_cage3d_exit()

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

◆ gizmo_cage3d_get_cursor()

static int gizmo_cage3d_get_cursor ( wmGizmo * gz)
static

◆ gizmo_cage3d_invoke()

◆ gizmo_cage3d_modal()

◆ gizmo_cage3d_property_update()

◆ gizmo_cage3d_setup()

static void gizmo_cage3d_setup ( wmGizmo * gz)
static

Definition at line 438 of file cage3d_gizmo.cc.

References wmGizmo::flag, and WM_GIZMO_DRAW_NO_SCALE.

Referenced by GIZMO_GT_cage_3d().

◆ gizmo_calc_matrix_final_no_offset()

static void gizmo_calc_matrix_final_no_offset ( const wmGizmo * gz,
float orig_matrix_final_no_offset[4][4],
bool use_space )
static

◆ gizmo_calc_rect_view_margin()

static void gizmo_calc_rect_view_margin ( const wmGizmo * gz,
const float dims[3],
float margin[3] )
static

Definition at line 77 of file cage3d_gizmo.cc.

References gizmo_calc_rect_view_scale().

Referenced by gizmo_cage3d_draw_intern().

◆ gizmo_calc_rect_view_scale()

static void gizmo_calc_rect_view_scale ( const wmGizmo * gz,
const float dims[3],
float scale[3] )
static

◆ GIZMO_GT_cage_3d()

◆ gizmo_rect_pivot_from_scale_part()

static void gizmo_rect_pivot_from_scale_part ( int part,
float r_pt[3],
bool r_constrain_axis[3],
bool has_translation )
static

◆ imm_draw_point_aspect_3d()

static void imm_draw_point_aspect_3d ( uint pos,
const float co[3],
const float rad[3],
bool solid )
static

Definition at line 192 of file cage3d_gizmo.cc.

References imm_draw_cube_fill_3d(), imm_draw_cube_wire_3d(), and pos.

Referenced by cage3d_draw_circle_handles().