pcb 4.1.1
An interactive printed circuit board layout editor.

trackball.c File Reference

#include <math.h>
#include "trackball.h"
Include dependency graph for trackball.c:

Go to the source code of this file.

Defines

#define TRACKBALLSIZE   (0.8f)
#define RENORMCOUNT   97

Functions

static float tb_project_to_sphere (float, float, float)
static void normalize_quat (float[4])
void vzero (float *v)
void vset (float *v, float x, float y, float z)
void vsub (const float *src1, const float *src2, float *dst)
void vcopy (const float *v1, float *v2)
void vcross (const float *v1, const float *v2, float *cross)
float vlength (const float *v)
void vscale (float *v, float div)
void vnormal (float *v)
float vdot (const float *v1, const float *v2)
void vadd (const float *src1, const float *src2, float *dst)
void trackball (float q[4], float p1x, float p1y, float p2x, float p2y)
void axis_to_quat (float a[3], float phi, float q[4])
void add_quats (float q1[4], float q2[4], float dest[4])
void build_rotmatrix (float m[4][4], float q[4])

Define Documentation

#define RENORMCOUNT   97

Definition at line 244 of file trackball.c.

Referenced by add_quats().

#define TRACKBALLSIZE   (0.8f)

Definition at line 62 of file trackball.c.

Referenced by trackball().


Function Documentation

void add_quats ( float  q1[4],
float  q2[4],
float  dest[4] 
)

Definition at line 247 of file trackball.c.

References normalize_quat(), RENORMCOUNT, vadd(), vcopy(), vcross(), vdot(), and vscale().

Referenced by motion_notify_cb().

Here is the call graph for this function:

void axis_to_quat ( float  a[3],
float  phi,
float  q[4] 
)

Definition at line 206 of file trackball.c.

References vcopy(), vnormal(), and vscale().

Referenced by button_press_cb(), ghid_trackball_constructor(), trackball(), and view_2d_toggled_cb().

Here is the call graph for this function:

void build_rotmatrix ( float  m[4][4],
float  q[4] 
)

Definition at line 302 of file trackball.c.

Referenced by ghid_port_rotate().

static void normalize_quat ( float  q[4]) [static]

Definition at line 288 of file trackball.c.

Referenced by add_quats().

static float tb_project_to_sphere ( float  r,
float  x,
float  y 
) [static]

Definition at line 219 of file trackball.c.

References opti_s::t.

Referenced by trackball().

void trackball ( float  q[4],
float  p1x,
float  p1y,
float  p2x,
float  p2y 
)

Definition at line 160 of file trackball.c.

References axis_to_quat(), opti_s::t, tb_project_to_sphere(), TRACKBALLSIZE, vcross(), vlength(), vset(), vsub(), and vzero().

Referenced by ghid_build_pcb_top_window(), and motion_notify_cb().

Here is the call graph for this function:

void vadd ( const float *  src1,
const float *  src2,
float *  dst 
)

Definition at line 140 of file trackball.c.

Referenced by add_quats().

void vcopy ( const float *  v1,
float *  v2 
)

Definition at line 95 of file trackball.c.

Referenced by add_quats(), axis_to_quat(), and vcross().

void vcross ( const float *  v1,
const float *  v2,
float *  cross 
)

Definition at line 103 of file trackball.c.

References vcopy().

Referenced by add_quats(), and trackball().

Here is the call graph for this function:

float vdot ( const float *  v1,
const float *  v2 
)

Definition at line 134 of file trackball.c.

Referenced by add_quats().

float vlength ( const float *  v)

Definition at line 114 of file trackball.c.

Referenced by orient3dadapt(), trackball(), and vnormal().

void vnormal ( float *  v)

Definition at line 128 of file trackball.c.

References f, vlength(), and vscale().

Referenced by axis_to_quat().

Here is the call graph for this function:

void vscale ( float *  v,
float  div 
)

Definition at line 120 of file trackball.c.

Referenced by add_quats(), axis_to_quat(), and vnormal().

void vset ( float *  v,
float  x,
float  y,
float  z 
)

Definition at line 79 of file trackball.c.

References x, and y.

Referenced by trackball().

void vsub ( const float *  src1,
const float *  src2,
float *  dst 
)

Definition at line 87 of file trackball.c.

Referenced by trackball().

void vzero ( float *  v)

Definition at line 71 of file trackball.c.

Referenced by trackball().