Blender V4.3
transform_snap.hh File Reference
#include "DNA_scene_types.h"
#include "DNA_space_types.h"

Go to the source code of this file.

Macros

#define SNAP_MIN_DISTANCE   30
 

Functions

bool peelObjectsTransform (TransInfo *t, const float mval[2], bool use_peel_object, float r_loc[3], float r_no[3], float *r_thickness)
 
bool snapNodesTransform (TransInfo *t, const blender::float2 &mval, float r_loc[2], float *r_dist_px, char *r_node_border)
 
bool transformModeUseSnap (const TransInfo *t)
 
void tranform_snap_target_median_calc (const TransInfo *t, float r_median[3])
 
bool transform_snap_increment_ex (const TransInfo *t, bool use_local_space, float *r_val)
 
bool transform_snap_increment (const TransInfo *t, float *val)
 
float transform_snap_increment_get (const TransInfo *t)
 
void tranform_snap_source_restore_context (TransInfo *t)
 
void transform_snap_flag_from_modifiers_set (TransInfo *t)
 
bool transform_snap_is_active (const TransInfo *t)
 
bool validSnap (const TransInfo *t)
 
void transform_snap_grid_init (const TransInfo *t, float r_snap[3], float *r_snap_precision)
 
void initSnapping (TransInfo *t, wmOperator *op)
 
void freeSnapping (TransInfo *t)
 
void initSnapAngleIncrements (TransInfo *t)
 
bool transform_snap_project_individual_is_active (const TransInfo *t)
 
void transform_snap_project_individual_apply (TransInfo *t)
 
void transform_snap_mixed_apply (TransInfo *t, float *vec)
 
void resetSnapping (TransInfo *t)
 
eRedrawFlag handleSnapping (TransInfo *t, const wmEvent *event)
 
void drawSnapping (TransInfo *t)
 
bool usingSnappingNormal (const TransInfo *t)
 
bool validSnappingNormal (const TransInfo *t)
 
short * transform_snap_flag_from_spacetype_ptr (TransInfo *t, const struct PropertyRNA **r_prop)
 
void getSnapPoint (const TransInfo *t, float vec[3])
 
void addSnapPoint (TransInfo *t)
 
eRedrawFlag updateSelectedSnapPoint (TransInfo *t)
 
void removeSnapPoint (TransInfo *t)
 
float transform_snap_distance_len_squared_fn (TransInfo *t, const float p1[3], const float p2[3])
 
TransSeqSnapDatatransform_snap_sequencer_data_alloc (const TransInfo *t)
 
void transform_snap_sequencer_data_free (TransSeqSnapData *data)
 
bool transform_snap_sequencer_calc (TransInfo *t)
 
void transform_snap_sequencer_apply_seqslide (TransInfo *t, float *vec)
 
void transform_snap_sequencer_image_apply_translate (TransInfo *t, float vec[2])
 
void snapFrameTransform (TransInfo *t, eSnapMode autosnap, float val_initial, float val_final, float *r_val_final)
 
void transform_snap_anim_flush_data (TransInfo *t, TransData *td, eSnapMode autosnap, float *r_val_final)
 
bool transform_snap_nla_calc (TransInfo *t, float *vec)
 

Macro Definition Documentation

◆ SNAP_MIN_DISTANCE

#define SNAP_MIN_DISTANCE   30

Definition at line 11 of file transform_snap.hh.

Referenced by snap_target_node_fn(), snap_target_uv_fn(), and snap_target_view3d_fn().

Function Documentation

◆ addSnapPoint()

◆ drawSnapping()

void drawSnapping ( TransInfo * t)

Definition at line 200 of file transform_snap.cc.

References TransInfo::aspect, BLI_listbase_is_empty(), BLI_rctf_size_x(), BLI_rcti_size_x(), col, copy_m4_m4(), DIR_GLOBAL_X, DIR_GLOBAL_Y, TransSnap::direction, ED_node_draw_snap(), ED_view3d_cursor_snap_draw_util(), ED_view3d_pixel_size(), TransInfo::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_FETCH_FLOAT, GPU_matrix_pop_projection(), GPU_matrix_push_projection(), GPU_PRIM_LINES, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), imm_draw_circle_wire_2d(), imm_drawcircball(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3ub(), immUniformColor4ubv(), immVertex3f(), immVertex3fv(), immVertexFormat(), LISTBASE_FOREACH, MOD_EDIT_SNAP_SOURCE, TransInfo::modifiers, TransSnap::points, pos, TransInfo::region, ARegion::regiondata, RGN_TYPE_PREVIEW, TransSnap::selectedPoint, size(), SNAP_MULTI_POINTS, TransSnap::snap_source, SNAP_SOURCE_FOUND, TransSnap::snap_target, SNAP_TARGET_FOUND, TransSnap::snapNodeBorder, TransSnap::snapNormal, TransSnap::source_type, SPACE_IMAGE, SPACE_NODE, SPACE_SEQ, SPACE_VIEW3D, TransInfo::spacetype, TransSnap::status, T_DRAW_SNAP_SOURCE, TransSnap::target_type, TH_ACTIVE, TH_SELECT, TH_SEQ_ACTIVE, TH_TRANSFORM, TH_VERTEX_SIZE, transform_snap_is_active(), TransInfo::tsnap, UI_GetThemeColor3ubv(), UI_GetThemeValuef(), UI_view2d_view_to_region_fl(), UNPACK2, usingSnappingNormal(), ARegion::v2d, validSnappingNormal(), RegionView3D::viewinv, wmOrtho2_region_pixelspace(), x, and y.

Referenced by drawTransformView(), and ED_draw_sequencer_snap_point().

◆ freeSnapping()

◆ getSnapPoint()

◆ handleSnapping()

◆ initSnapAngleIncrements()

◆ initSnapping()

◆ peelObjectsTransform()

◆ removeSnapPoint()

◆ resetSnapping()

◆ snapFrameTransform()

◆ snapNodesTransform()

bool snapNodesTransform ( TransInfo * t,
const blender::float2 & mval,
float r_loc[2],
float * r_dist_px,
char * r_node_border )

◆ tranform_snap_source_restore_context()

void tranform_snap_source_restore_context ( TransInfo * t)

◆ tranform_snap_target_median_calc()

void tranform_snap_target_median_calc ( const TransInfo * t,
float r_median[3] )

◆ transform_snap_anim_flush_data()

void transform_snap_anim_flush_data ( TransInfo * t,
TransData * td,
eSnapMode autosnap,
float * r_val_final )

This function is used by Animation Editor specific transform functions to do the Snap Keyframe to Nearest Frame/Marker.

Definition at line 102 of file transform_snap_animation.cc.

References transform_snap_anim_flush_data_ex().

Referenced by flushTransGraphData(), and recalcData_actedit().

◆ transform_snap_distance_len_squared_fn()

float transform_snap_distance_len_squared_fn ( TransInfo * t,
const float p1[3],
const float p2[3] )

Definition at line 1952 of file transform_snap.cc.

References len_squared_v3v3().

◆ transform_snap_flag_from_modifiers_set()

◆ transform_snap_flag_from_spacetype_ptr()

short * transform_snap_flag_from_spacetype_ptr ( TransInfo * t,
const struct PropertyRNA ** r_prop )

◆ transform_snap_grid_init()

◆ transform_snap_increment()

◆ transform_snap_increment_ex()

◆ transform_snap_increment_get()

◆ transform_snap_is_active()

◆ transform_snap_mixed_apply()

◆ transform_snap_nla_calc()

◆ transform_snap_project_individual_apply()

◆ transform_snap_project_individual_is_active()

bool transform_snap_project_individual_is_active ( const TransInfo * t)

◆ transform_snap_sequencer_apply_seqslide()

void transform_snap_sequencer_apply_seqslide ( TransInfo * t,
float * vec )

◆ transform_snap_sequencer_calc()

◆ transform_snap_sequencer_data_alloc()

◆ transform_snap_sequencer_data_free()

void transform_snap_sequencer_data_free ( TransSeqSnapData * data)

◆ transform_snap_sequencer_image_apply_translate()

void transform_snap_sequencer_image_apply_translate ( TransInfo * t,
float vec[2] )

◆ transformModeUseSnap()

◆ updateSelectedSnapPoint()

◆ usingSnappingNormal()

bool usingSnappingNormal ( const TransInfo * t)

◆ validSnap()

◆ validSnappingNormal()

bool validSnappingNormal ( const TransInfo * t)