C-KIT-GUI-GTK 0.62
trackball.c File Reference
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <GL/gl.h>
#include "tst_geo.h"
#include "trackball.h"

Macros

#define TRACKBALLSIZE   (0.8)
 
#define RENORMCOUNT   97
 
#define maxPan   10.f
 
#define panFakt   0.2f
 
#define maxZoom   0.01f
 
#define minZoom   160.f
 
#define dZoom   1.f
 
#define zoomFakt   10.f
 

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])
 
int trackball_pan (Pointf *ptc, float oldx, float oldy, float newx, float newy, float width, float height)
 
int trackball_zoom (float *zoom, float oldx, float oldy, float newx, float newy, float width, float height)
 
int trackball_rot (float *quat, float oldx, float oldy, float newx, float newy, float width, float height, Pointf *cenPt)
 
int trackball_ortho (Pointf *cenPt, float *zoom, float *quat, Pointf *mdlMax, Pointf *mdlMin)
 
int trackball_persp (Pointf *cenPt, float *scl, float *quat, Pointf *mdlMax, Pointf *mdlMin)
 

Macro Definition Documentation

#define TRACKBALLSIZE   (0.8)
#define RENORMCOUNT   97
#define maxPan   10.f
#define panFakt   0.2f
#define maxZoom   0.01f
#define minZoom   160.f
#define dZoom   1.f
#define zoomFakt   10.f

Function Documentation

static float tb_project_to_sphere ( float  r,
float  x,
float  y 
)
static
static void normalize_quat ( float  q[4])
static
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] 
)
int trackball_pan ( Pointf ptc,
float  oldx,
float  oldy,
float  newx,
float  newy,
float  width,
float  height 
)
int trackball_zoom ( float *  zoom,
float  oldx,
float  oldy,
float  newx,
float  newy,
float  width,
float  height 
)
int trackball_rot ( float *  quat,
float  oldx,
float  oldy,
float  newx,
float  newy,
float  width,
float  height,
Pointf cenPt 
)
int trackball_ortho ( Pointf cenPt,
float *  zoom,
float *  quat,
Pointf mdlMax,
Pointf mdlMin 
)
int trackball_persp ( Pointf cenPt,
float *  scl,
float *  quat,
Pointf mdlMax,
Pointf mdlMin 
)