Blender  V3.3
Classes | Typedefs | Functions
cage3d_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_shader.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_view3d.h"
#include "../gizmo_library_intern.h"

Go to the source code of this file.

Classes

struct  RectTransformInteraction
 

Typedefs

typedef struct RectTransformInteraction 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 UNUSED(tweak_flag))
 
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_CAGE2D_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_CAGE2D_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 (void)
 

Cage Gizmo

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

2D Gizmo

#define GIZMO_RESIZER_SIZE   10.0f
 
#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])
 

Macro Definition Documentation

◆ GIZMO_MARGIN_OFFSET_SCALE

#define GIZMO_MARGIN_OFFSET_SCALE   1.5f

Definition at line 42 of file cage3d_gizmo.c.

◆ GIZMO_RESIZER_SIZE

#define GIZMO_RESIZER_SIZE   10.0f

Definition at line 41 of file cage3d_gizmo.c.

Typedef Documentation

◆ RectTransformInteraction

Function Documentation

◆ cage3d_draw_box_corners()

static void cage3d_draw_box_corners ( const float  r[3],
const float  margin[3],
const float  color[3],
const float  line_width 
)
static

◆ cage3d_draw_box_interaction()

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] 
)
static

◆ 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()

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

◆ ED_gizmotypes_cage_3d()

void ED_gizmotypes_cage_3d ( void  )

Definition at line 688 of file cage3d_gizmo.c.

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()

static void gizmo_cage3d_draw_intern ( RegionView3D rv3d,
wmGizmo gz,
const bool  select,
const bool  highlight,
const int  select_id 
)
static

◆ 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 402 of file cage3d_gizmo.c.

References C, CTX_wm_region(), gizmo_cage3d_draw_intern(), and ARegion::regiondata.

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()

static int gizmo_cage3d_invoke ( bContext C,
wmGizmo gz,
const wmEvent event 
)
static

◆ gizmo_cage3d_modal()

static int gizmo_cage3d_modal ( bContext C,
wmGizmo gz,
const wmEvent event,
eWM_GizmoFlagTweak   UNUSEDtweak_flag 
)
static

◆ gizmo_cage3d_property_update()

static void gizmo_cage3d_property_update ( wmGizmo gz,
wmGizmoProperty gz_prop 
)
static

◆ gizmo_cage3d_setup()

static void gizmo_cage3d_setup ( wmGizmo gz)
static

Definition at line 432 of file cage3d_gizmo.c.

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 76 of file cage3d_gizmo.c.

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()

static void GIZMO_GT_cage_3d ( wmGizmoType gzt)
static

◆ 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] 
)
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 186 of file cage3d_gizmo.c.

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

Referenced by cage3d_draw_circle_handles().