Blender  V3.3
Classes
transform_input.c File Reference
#include <math.h>
#include <stdlib.h>
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BKE_context.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "WM_api.h"
#include "WM_types.h"
#include "transform.h"
#include "transform_mode.h"
#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 *UNUSED(t), 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 *UNUSED(t), 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 *UNUSED(t), 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 *UNUSED(t), 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 *UNUSED(t), MouseInput *mi, const int mval_start[2], const int mval_end[2])
 
void setCustomPointsFromDirection (TransInfo *t, MouseInput *mi, const float dir[2])
 
Setup & Handle Mouse Input
void initMouseInput (TransInfo *t, MouseInput *mi, const float center[2], const int mval[2], const bool precision)
 
static void calcSpringFactor (MouseInput *mi)
 
void initMouseInputMode (TransInfo *t, MouseInput *mi, MouseInputMode mode)
 
void setInputPostFct (MouseInput *mi, void(*post)(struct TransInfo *t, float values[3]))
 
void applyMouseInput (TransInfo *t, MouseInput *mi, const int mval[2], float output[3])
 
void transform_input_update (TransInfo *t, const float fac)
 

Function Documentation

◆ applyMouseInput()

void applyMouseInput ( TransInfo t,
MouseInput mi,
const int  mval[2],
float  output[3] 
)

◆ calcSpringFactor()

static void calcSpringFactor ( MouseInput mi)
static

Definition at line 277 of file transform_input.c.

References MouseInput::center, MouseInput::factor, MouseInput::imval, and sqrtf.

Referenced by initMouseInputMode().

◆ initMouseInput()

void initMouseInput ( TransInfo t,
MouseInput mi,
const float  center[2],
const int  mval[2],
const bool  precision 
)

◆ initMouseInputMode()

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

Definition at line 288 of file transform_input.c.

References MouseInput::apply, calcSpringFactor(), CTX_wm_window(), data, MouseInput::data, MouseInput::factor, 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, NULL, MouseInput::precision_factor, t, T_MODAL, T_MODAL_CURSOR_SET, MouseInput::use_virtual_mval, WM_cursor_modal_set(), WM_CURSOR_NONE, and WM_CURSOR_NSEW_SCROLL.

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

◆ InputAngle()

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

◆ InputAngleSpring()

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

Definition at line 199 of file transform_input.c.

References InputAngle(), InputSpring(), output, and t.

Referenced by initMouseInputMode(), and transform_input_update().

◆ InputCustomRatio()

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

Callback for INPUT_CUSTOM_RATIO

Definition at line 162 of file transform_input.c.

References InputCustomRatioFlip(), output, and t.

Referenced by initMouseInputMode().

◆ InputCustomRatioFlip()

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

◆ InputHorizontalAbsolute()

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

Callback for INPUT_HORIZONTAL_ABSOLUTE

Definition at line 98 of file transform_input.c.

References dot_v3v3(), InputVector(), output, project_v3_v3v3(), and t.

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 87 of file transform_input.c.

References MouseInput::imval, output, and t.

Referenced by initMouseInputMode().

◆ InputSpring()

static void InputSpring ( TransInfo UNUSEDt,
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 67 of file transform_input.c.

References InputSpring(), output, and t.

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 53 of file transform_input.c.

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

Referenced by initMouseInputMode().

◆ InputTrackBall()

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

Callback for INPUT_TRACKBALL

Definition at line 74 of file transform_input.c.

References MouseInput::factor, float(), MouseInput::imval, and output.

Referenced by initMouseInputMode().

◆ InputVector()

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

◆ InputVerticalAbsolute()

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

Callback for INPUT_VERTICAL_ABSOLUTE

Definition at line 120 of file transform_input.c.

References dot_v3v3(), InputVector(), output, project_v3_v3v3(), and t.

Referenced by initMouseInputMode().

◆ InputVerticalRatio()

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

Definition at line 111 of file transform_input.c.

References MouseInput::imval, output, and t.

Referenced by initMouseInputMode().

◆ setCustomPoints()

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

Definition at line 218 of file transform_input.c.

References data, MouseInput::data, and MEM_reallocN.

Referenced by setCustomPointsFromDirection().

◆ setCustomPointsFromDirection()

void setCustomPointsFromDirection ( TransInfo t,
MouseInput mi,
const float  dir[2] 
)

◆ setInputPostFct()

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

Definition at line 405 of file transform_input.c.

References MouseInput::post.

◆ transform_input_update()

void transform_input_update ( TransInfo t,
const float  fac 
)