Blender  V3.3
Public Types | Public Attributes | List of all members
InteractivePlaceData Struct Reference

Public Types

enum  { STEP_BASE = 0 , STEP_DEPTH = 1 }
 

Public Attributes

Scenescene
 
ScrAreaarea
 
View3Dv3d
 
ARegionregion
 
voiddraw_handle_view
 
float co_src [3]
 
struct {
   bool   is_centered
 
   bool   is_centered_init
 
   bool   is_fixed_aspect
 
   bool   is_fixed_aspect_init
 
   float   plane [4]
 
   float   co_dst [3]
 
   bool   is_degenerate_view_align
 
   float   degenerate_diagonal [3]
 
   float   degenerate_diagonal_display [3]
 
   int   degenerate_axis
 
step [2]
 
float view_plane [4]
 
float matrix_orient [3][3]
 
int orient_axis
 
V3DSnapCursorStatesnap_state
 
bool use_snap
 
bool is_snap_found
 
bool is_snap_invert
 
float snap_co [3]
 
enum InteractivePlaceData:: { ... }  step_index
 
enum ePlace_PrimType primitive_type
 
bool use_tool
 
short launch_event
 
bool wait_for_input
 
enum ePlace_SnapTo snap_to
 

Detailed Description

Definition at line 70 of file view3d_placement.c.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Can index into InteractivePlaceData.step.

Enumerator
STEP_BASE 
STEP_DEPTH 

Definition at line 141 of file view3d_placement.c.

Member Data Documentation

◆ area

ScrArea* InteractivePlaceData::area

◆ co_dst

float InteractivePlaceData::co_dst[3]

◆ co_src

float InteractivePlaceData::co_src[3]

◆ degenerate_axis

int InteractivePlaceData::degenerate_axis

Index into matrix_orient which is degenerate.

Definition at line 126 of file view3d_placement.c.

Referenced by view3d_interactive_add_begin().

◆ degenerate_diagonal

float InteractivePlaceData::degenerate_diagonal[3]

When view aligned, use a diagonal offset (cavalier projection) to give user feedback about the depth being set.

Currently this is only used for orthogonal views since perspective views nearly always show some depth, even when view aligned.

  • Drag to the bottom-left to move away from the view.
  • Drag to the top-right to move towards the view.

Definition at line 116 of file view3d_placement.c.

Referenced by view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ degenerate_diagonal_display

float InteractivePlaceData::degenerate_diagonal_display[3]

Corrected for display, so what's shown on-screen doesn't loop to be reversed in relation to cursor-motion.

Definition at line 121 of file view3d_placement.c.

Referenced by draw_primitive_view_impl(), and view3d_interactive_add_begin().

◆ draw_handle_view

void* InteractivePlaceData::draw_handle_view

Draw object preview region draw callback.

Definition at line 78 of file view3d_placement.c.

Referenced by view3d_interactive_add_begin(), and view3d_interactive_add_exit().

◆ is_centered

bool InteractivePlaceData::is_centered

When centered, drag out the shape from the center. Toggling the setting flips the value from it's initial state.

Definition at line 88 of file view3d_placement.c.

Referenced by calc_bbox(), view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ is_centered_init

bool InteractivePlaceData::is_centered_init

◆ is_degenerate_view_align

bool InteractivePlaceData::is_degenerate_view_align

We can't project the mouse cursor onto plane, in this case view3d_win_to_3d_on_plane_maybe_fallback is used.

  • For STEP_BASE we're drawing from the side, where the X/Y axis can't be projected.
  • For STEP_DEPTH we're drawing from the top (2D), where the depth can't be projected.

Definition at line 105 of file view3d_placement.c.

Referenced by draw_primitive_view(), view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ is_fixed_aspect

bool InteractivePlaceData::is_fixed_aspect

When fixed, constrain the X/Y aspect for the initial STEP_BASE drag. For STEP_DEPTH match the maximum X/Y dimension. Toggling the setting flips the value from it's initial state.

Definition at line 94 of file view3d_placement.c.

Referenced by calc_bbox(), view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ is_fixed_aspect_init

bool InteractivePlaceData::is_fixed_aspect_init

◆ is_snap_found

bool InteractivePlaceData::is_snap_found

◆ is_snap_invert

bool InteractivePlaceData::is_snap_invert

◆ launch_event

short InteractivePlaceData::launch_event

Event used to start the operator.

Definition at line 152 of file view3d_placement.c.

Referenced by view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ matrix_orient

float InteractivePlaceData::matrix_orient[3][3]

◆ orient_axis

int InteractivePlaceData::orient_axis

◆ plane

float InteractivePlaceData::plane[4]

◆ primitive_type

enum ePlace_PrimType InteractivePlaceData::primitive_type

◆ region

ARegion* InteractivePlaceData::region

◆ scene

Scene* InteractivePlaceData::scene

◆ snap_co

float InteractivePlaceData::snap_co[3]

Definition at line 138 of file view3d_placement.c.

Referenced by view3d_interactive_add_modal().

◆ snap_state

V3DSnapCursorState* InteractivePlaceData::snap_state

◆ snap_to

enum ePlace_SnapTo InteractivePlaceData::snap_to

◆ 

struct { ... } InteractivePlaceData::step[2]

◆ 

enum { ... } InteractivePlaceData::step_index

◆ use_snap

bool InteractivePlaceData::use_snap

◆ use_tool

bool InteractivePlaceData::use_tool

Activated from the tool-system.

Definition at line 149 of file view3d_placement.c.

Referenced by view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ v3d

View3D* InteractivePlaceData::v3d

◆ view_plane

float InteractivePlaceData::view_plane[4]

When we can't project onto the real plane, use this in it's place.

Definition at line 131 of file view3d_placement.c.

Referenced by view3d_interactive_add_begin(), and view3d_interactive_add_modal().

◆ wait_for_input

bool InteractivePlaceData::wait_for_input

When activated without a tool.

Definition at line 155 of file view3d_placement.c.

Referenced by view3d_interactive_add_invoke(), and view3d_interactive_add_modal().


The documentation for this struct was generated from the following file: