Blender V4.3
transform_input.cc File Reference
#include <cmath>
#include <cstdlib>
#include "DNA_screen_types.h"
#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "BKE_context.hh"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "WM_api.hh"
#include "WM_types.hh"
#include "transform.hh"
#include "transform_mode.hh"
#include "ED_sequencer.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "MEM_guardedalloc.h"

Go to the source code of this file.

Classes

struct  InputAngle_Data
 

Functions

Callbacks for #MouseInput.apply
static void InputVector (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputSpring (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
 
static void InputSpringFlip (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputSpringDelta (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputTrackBall (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
 
static void InputHorizontalRatio (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputHorizontalAbsolute (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputVerticalRatio (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputVerticalAbsolute (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputCustomRatioFlip (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
 
static void InputCustomRatio (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
static void InputAngle (TransInfo *, MouseInput *mi, const double mval[2], float output[3])
 
static void InputAngleSpring (TransInfo *t, MouseInput *mi, const double mval[2], float output[3])
 
Custom 2D Start/End Coordinate API
void setCustomPoints (TransInfo *, MouseInput *mi, const int mval_start[2], const int mval_end[2])
 
void setCustomPointsFromDirection (TransInfo *t, MouseInput *mi, const float2 &dir)
 
Setup & Handle Mouse Input
void transform_input_reset (TransInfo *t, const float2 &mval)
 
void initMouseInput (TransInfo *t, MouseInput *mi, const float2 &center, const float2 &mval, const bool precision)
 
static void calcSpringFactor (MouseInput *mi)
 
static int transform_seq_slide_strip_cursor_get (const Sequence *seq)
 
static int transform_seq_slide_cursor_get (TransInfo *t)
 
void initMouseInputMode (TransInfo *t, MouseInput *mi, MouseInputMode mode)
 
void setInputPostFct (MouseInput *mi, void(*post)(TransInfo *t, float values[3]))
 
void applyMouseInput (TransInfo *t, MouseInput *mi, const float2 &mval, float output[3])
 
void transform_input_update (TransInfo *t, const float fac)
 
void transform_input_virtual_mval_reset (TransInfo *t)
 

Function Documentation

◆ applyMouseInput()

◆ calcSpringFactor()

static void calcSpringFactor ( MouseInput * mi)
static

Definition at line 287 of file transform_input.cc.

References MouseInput::center, MouseInput::factor, float, MouseInput::imval, and len_v2().

Referenced by initMouseInputMode().

◆ initMouseInput()

void initMouseInput ( TransInfo * t,
MouseInput * mi,
const float2 & center,
const float2 & mval,
const bool precision )

◆ initMouseInputMode()

void initMouseInputMode ( TransInfo * t,
MouseInput * mi,
MouseInputMode mode )

Definition at line 351 of file transform_input.cc.

References MouseInput::apply, calcSpringFactor(), TransInfo::context, CTX_wm_space_seq(), CTX_wm_window(), data, MouseInput::data, MouseInput::factor, SpaceSeq::flag, TransInfo::flag, TransInfo::helpline, HLP_ANGLE, HLP_CARROW, HLP_HARROW, HLP_NONE, HLP_SPRING, HLP_TRACKBALL, HLP_VARROW, MouseInput::imval, INPUT_ANGLE, INPUT_ANGLE_SPRING, INPUT_CUSTOM_RATIO, INPUT_CUSTOM_RATIO_FLIP, INPUT_HORIZONTAL_ABSOLUTE, INPUT_HORIZONTAL_RATIO, INPUT_NONE, INPUT_SPRING, INPUT_SPRING_DELTA, INPUT_SPRING_FLIP, INPUT_TRACKBALL, INPUT_VECTOR, INPUT_VERTICAL_ABSOLUTE, INPUT_VERTICAL_RATIO, InputAngle(), InputAngleSpring(), InputCustomRatio(), InputCustomRatioFlip(), InputHorizontalAbsolute(), InputHorizontalRatio(), InputSpring(), InputSpringDelta(), InputSpringFlip(), InputTrackBall(), InputVector(), InputVerticalAbsolute(), InputVerticalRatio(), MEM_callocN, MEM_freeN(), TransInfo::mode, InputAngle_Data::mval_prev, MouseInput::precision_factor, T_MODAL, T_MODAL_CURSOR_SET, TFM_SEQ_SLIDE, transform_mode_edge_seq_slide_use_restore_handle_selection(), transform_seq_slide_cursor_get(), MouseInput::use_virtual_mval, WM_cursor_modal_set(), WM_CURSOR_NONE, and WM_CURSOR_NSEW_SCROLL.

Referenced by init_mode_impl(), initAlign(), initBakeTime(), initBend(), initBoneEnvelope(), initBoneRoll(), initBoneSize(), initCurveShrinkFatten(), initEdgeSlide_ex(), initGPOpacity(), initGPShrinkFatten(), initMaskShrinkFatten(), initMirror(), initNormalRotation(), initPushPull(), initResize(), initRotation(), initSeqSlide(), initShear_mouseInputMode(), initShrinkFatten(), initSkinResize(), initTilt(), initTimeScale(), initTimeSlide(), initTimeTranslate(), initToSphere(), initTrackball(), initTranslation(), and initVertSlide_ex().

◆ InputAngle()

◆ InputAngleSpring()

static void InputAngleSpring ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputCustomRatio()

static void InputCustomRatio ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_CUSTOM_RATIO.

Definition at line 169 of file transform_input.cc.

References InputCustomRatioFlip().

Referenced by initMouseInputMode().

◆ InputCustomRatioFlip()

static void InputCustomRatioFlip ( TransInfo * ,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_CUSTOM_RATIO_FLIP.

Definition at line 142 of file transform_input.cc.

References MouseInput::data, distance(), and length().

Referenced by initMouseInputMode(), and InputCustomRatio().

◆ InputHorizontalAbsolute()

static void InputHorizontalAbsolute ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_HORIZONTAL_ABSOLUTE.

Definition at line 105 of file transform_input.cc.

References dot_v3v3(), InputVector(), project_v3_v3v3(), and TransInfo::viewinv.

Referenced by initMouseInputMode().

◆ InputHorizontalRatio()

static void InputHorizontalRatio ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_HORIZONTAL_RATIO.

Definition at line 94 of file transform_input.cc.

References MouseInput::imval, TransInfo::region, and ARegion::winx.

Referenced by initMouseInputMode().

◆ InputSpring()

static void InputSpring ( TransInfo * ,
MouseInput * mi,
const double mval[2],
float output[3] )
static

◆ InputSpringDelta()

static void InputSpringDelta ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_SPRING_DELTA.

Definition at line 74 of file transform_input.cc.

References InputSpring().

Referenced by initMouseInputMode().

◆ InputSpringFlip()

static void InputSpringFlip ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_SPRING_FLIP.

Definition at line 60 of file transform_input.cc.

References MouseInput::center, MouseInput::imval, and InputSpring().

Referenced by initMouseInputMode().

◆ InputTrackBall()

static void InputTrackBall ( TransInfo * ,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_TRACKBALL.

Definition at line 81 of file transform_input.cc.

References MouseInput::factor, float, and MouseInput::imval.

Referenced by initMouseInputMode().

◆ InputVector()

static void InputVector ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for #INPUT_VECTOR.

Definition at line 41 of file transform_input.cc.

References convertViewVec(), and MouseInput::imval.

Referenced by initMouseInputMode(), InputHorizontalAbsolute(), and InputVerticalAbsolute().

◆ InputVerticalAbsolute()

static void InputVerticalAbsolute ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Callback for INPUT_VERTICAL_ABSOLUTE.

Definition at line 127 of file transform_input.cc.

References dot_v3v3(), InputVector(), project_v3_v3v3(), and TransInfo::viewinv.

Referenced by initMouseInputMode().

◆ InputVerticalRatio()

static void InputVerticalRatio ( TransInfo * t,
MouseInput * mi,
const double mval[2],
float output[3] )
static

Definition at line 118 of file transform_input.cc.

References MouseInput::imval, TransInfo::region, and ARegion::winy.

Referenced by initMouseInputMode().

◆ setCustomPoints()

void setCustomPoints ( TransInfo * t,
MouseInput * mi,
const int mval_start[2],
const int mval_end[2] )

◆ setCustomPointsFromDirection()

void setCustomPointsFromDirection ( TransInfo * t,
MouseInput * mi,
const float2 & dir )

◆ setInputPostFct()

void setInputPostFct ( MouseInput * mi,
void(* post )(TransInfo *t, float values[3]) )

Definition at line 482 of file transform_input.cc.

References MouseInput::post.

◆ transform_input_reset()

void transform_input_reset ( TransInfo * t,
const float2 & mval )

◆ transform_input_update()

◆ transform_input_virtual_mval_reset()

◆ transform_seq_slide_cursor_get()

◆ transform_seq_slide_strip_cursor_get()

static int transform_seq_slide_strip_cursor_get ( const Sequence * seq)
static