27static float spl3(
float,
double,
double,
double,
double,
double,
double,
33 return ((
float)(
data0 * (2 *
x3 - 3 * x2 + 1) +
data1 * (-2 *
x3 + 3 * x2) +
83 unsigned long mask = 0xFFFFFFFF;
174 G_debug(3,
"gk_follow_frames():");
176 G_debug(3,
" from: %f %f %f", tmp[
X], tmp[
Y], tmp[
Z]);
198 G_debug(3,
"gk_follow_frames():");
200 G_debug(3,
" DIR: %f %f %f\n", tmp[
X], tmp[
Y], tmp[
Z]);
308 double dt1,
dt2,
x, x2,
x3, range,
time,
time_step, len,
rderiv,
lderiv;
321 G_warning(
_(
"Need at least 3 keyframes for spline"));
369 if (len == 0.0 ||
nvk == 0) {
472 for (i = 0; i <
nvk; i++) {
505 else if (i ==
nvk - 1) {
522 *
dt1 = (*km2) ? (*kp1)->pos - (*km2)->pos : len;
523 *
dt2 = (*kp2) ? (*kp2)->pos - (*km1)->pos : len;
525 if (i == 1 &&
loop) {
573 for (i = 0; i <
nvk; i++) {
630 G_warning(
_(
"Need at least 2 keyframes for interpolation"));
678 if (len == 0.0 ||
nvk == 0) {
686 v->
fields[field] =
k1->fields[field];
690 dt = (
time -
k1->pos) / len;
718 for (c = k; c; c = c->
next) {
721 for (
t = c;
t;
t =
t->next) {
726 for (
t = k,
j = 0;
j <
cnt;
j++,
t =
t->next) {
770 for (frame = 0; frame <
steps; frame++) {
void G_free(void *)
Free allocated memory.
void G_warning(const char *,...) __attribute__((format(printf
int G_debug(int, const char *,...) __attribute__((format(printf
void GS_alldraw_cplane_fences(void)
Draw all cplace fences ?
void GS_draw_all_list(void)
Draw all glLists.
void GS_set_fov(int)
Set field of view.
void GS_get_viewdir(float *)
Get viewdir.
void GS_set_draw(int)
Sets which buffer to draw to.
unsigned int GS_default_draw_color(void)
Get default draw color.
void GS_get_from(float *)
Get viewpoint 'from' position.
void GS_alldraw_wire(void)
Draw all wires.
void gsd_x(geosurf *, float *, int, float)
Draws a X symbol at the specified center location.
int GS_get_longdim(float *)
Get largest dimension.
void GS_set_twist(int)
Set viewpoint twist value.
void GS_setlight_position(int, float, float, float, int)
Set light position.
void GS_getlight_position(int, float *, float *, float *, int *)
Get light position.
void GS_set_viewdir(float *)
Set viewdir.
void GS_moveto(float *)
Move viewpoint.
void GV_alldraw_vect(void)
Draw all loaded vector sets.
void gsd_color_func(unsigned int)
Set current color.
void GVL_alldraw_vol(void)
Draw all volume sets.
unsigned int GS_background_color(void)
Get background color.
void GS_alldraw_surf(void)
Draw all surfaces.
void gsd_zwritemask(unsigned long)
Write out z-mask.
void gsd_linewidth(short)
Set width of rasterized lines.
void gsd_endline(void)
End line.
void gsd_colormode(int)
Set color mode.
void GS_clear(int)
Clear view.
void gsd_bgnline(void)
Begin line.
void GS_done_draw(void)
Draw done, swap buffers.
void gsd_vert_func(float *)
ADD.
void GP_alldraw_site(void)
Draw all available point sets.
#define UNUSED
A macro for an attribute, if attached to a variable, indicating that the variable is not used.
double lin_interp(float dt, float val1, float val2)
Linear interpolation.
void correct_twist(Keylist *k)
Correct twist value.
double get_2key_neighbors(int nvk, float time, float range, int loop, Keylist *karray[], Keylist **km1, Keylist **kp1)
Finds interval containing time, putting left (or equal) key at km1, right at kp1.
unsigned long gk_get_mask_sofar(float time, Keylist *keys)
Get mask value.
double get_key_neighbors(int nvk, double time, double range, int loop, Keylist *karray[], Keylist **km1, Keylist **kp1, Keylist **kp2, Keylist **km2, double *dt1, double *dt2)
Find interval containing time.
void gk_free_key(Keylist *ok)
Free keyframe list.
int gk_draw_path(Viewnode *views, int steps, Keylist *keys)
Draw path.
Keylist * gk_copy_key(Keylist *k)
Copy keyframes.
Viewnode * gk_make_framesfromkeys(Keylist *keys, int keysteps, int newsteps, int loop, float t)
Generate viewnode from keyframes.
Viewnode * gk_make_linear_framesfromkeys(Keylist *keys, int keysteps, int newsteps, int loop)
Generate viewnode from keyframe list (linear interpolation)
int gk_viable_keys_for_mask(unsigned long mask, Keylist *keys, Keylist **keyret)
ADD.
void gk_follow_frames(Viewnode *view, int numsteps, Keylist *keys, int step, int onestep, int render, unsigned long mode)
Checks key masks.
OGSF header file (structures)