Blender  V3.3
Classes
transform_mode_rotate.c File Reference
#include <stdlib.h>
#include "BLI_math.h"
#include "BLI_task.h"
#include "BKE_context.h"
#include "BKE_report.h"
#include "BKE_unit.h"
#include "ED_screen.h"
#include "UI_interface.h"
#include "transform.h"
#include "transform_convert.h"
#include "transform_snap.h"
#include "transform_mode.h"

Go to the source code of this file.

Classes

struct  RotateMatrixCache
 
struct  TransDataArgs_Rotate
 
struct  TransDataArgs_RotateTLS
 

Functions

Transform (Rotation) Matrix Cache
static void rmat_cache_init (struct RotateMatrixCache *rmc, const float angle, const float axis[3])
 
static void rmat_cache_reset (struct RotateMatrixCache *rmc)
 
static void rmat_cache_update (struct RotateMatrixCache *rmc, const float axis[3], const float angle)
 
Transform (Rotation) Element
static void transdata_elem_rotate (const TransInfo *t, const TransDataContainer *tc, TransData *td, const float axis[3], const float angle, const float angle_step, const bool is_large_rotation, struct RotateMatrixCache *rmc)
 
static void transdata_elem_rotate_fn (void *__restrict iter_data_v, const int iter, const TaskParallelTLS *__restrict tls)
 
Transform (Rotation)
static float RotationBetween (TransInfo *t, const float p1[3], const float p2[3])
 
static void ApplySnapRotation (TransInfo *t, float *value)
 
static float large_rotation_limit (float angle)
 
static void applyRotationValue (TransInfo *t, float angle, const float axis[3], const bool is_large_rotation)
 
static void applyRotation (TransInfo *t, const int UNUSED(mval[2]))
 
static void applyRotationMatrix (TransInfo *t, float mat_xform[4][4])
 
void initRotation (TransInfo *t)
 

Function Documentation

◆ applyRotation()

static void applyRotation ( TransInfo t,
const int   UNUSEDmval[2] 
)
static

◆ applyRotationMatrix()

static void applyRotationMatrix ( TransInfo t,
float  mat_xform[4][4] 
)
static

◆ applyRotationValue()

static void applyRotationValue ( TransInfo t,
float  angle,
const float  axis[3],
const bool  is_large_rotation 
)
static

◆ ApplySnapRotation()

static void ApplySnapRotation ( TransInfo t,
float value 
)
static

Definition at line 217 of file transform_mode_rotate.c.

References getSnapPoint(), point, RotationBetween(), and t.

Referenced by initRotation().

◆ initRotation()

void initRotation ( TransInfo t)

◆ large_rotation_limit()

static float large_rotation_limit ( float  angle)
static

Definition at line 226 of file transform_mode_rotate.c.

References angle(), fabsf, float(), fmodf, and M_PI.

Referenced by applyRotation(), and applyRotationValue().

◆ rmat_cache_init()

static void rmat_cache_init ( struct RotateMatrixCache rmc,
const float  angle,
const float  axis[3] 
)
static

◆ rmat_cache_reset()

static void rmat_cache_reset ( struct RotateMatrixCache rmc)
static

Definition at line 47 of file transform_mode_rotate.c.

References RotateMatrixCache::do_update_matrix.

Referenced by transdata_elem_rotate().

◆ rmat_cache_update()

static void rmat_cache_update ( struct RotateMatrixCache rmc,
const float  axis[3],
const float  angle 
)
static

◆ RotationBetween()

static float RotationBetween ( TransInfo t,
const float  p1[3],
const float  p2[3] 
)
static

◆ transdata_elem_rotate()

static void transdata_elem_rotate ( const TransInfo t,
const TransDataContainer tc,
TransData td,
const float  axis[3],
const float  angle,
const float  angle_step,
const bool  is_large_rotation,
struct RotateMatrixCache rmc 
)
static

◆ transdata_elem_rotate_fn()

static void transdata_elem_rotate_fn ( void *__restrict  iter_data_v,
const int  iter,
const TaskParallelTLS *__restrict  tls 
)
static