GRASS Programmer's Manual  6.5.svn(2014)-r66266
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
change_view.c File Reference

Nviz library – Change view settings. More...

#include <math.h>
#include <grass/glocale.h>
#include <grass/nviz.h>
Include dependency graph for change_view.c:

Go to the source code of this file.

Functions

int Nviz_resize_window (int width, int height)
 GL canvas resized. More...
 
int Nviz_update_ranges (nv_data *dc)
 Update ranges. More...
 
int Nviz_set_viewpoint_position (double x_pos, double y_pos)
 Change position of view. More...
 
void Nviz_get_viewpoint_position (double *x_pos, double *y_pos)
 
int Nviz_set_viewpoint_height (double height)
 Change viewpoint height. More...
 
void Nviz_get_viewpoint_height (double *height)
 
int Nviz_set_viewpoint_persp (int persp)
 Change viewpoint perspective (field of view) More...
 
int Nviz_set_viewpoint_twist (int twist)
 Change viewpoint twist. More...
 
int Nviz_change_exag (nv_data *data, double exag)
 Change z-exag value. More...
 
int Nviz_look_here (double sx, double sy)
 Change focused point. More...
 
void Nviz_get_modelview (double *modelMatrix)
 Get current modelview matrix. More...
 
void Nviz_set_rotation (double angle, double x, double y, double z)
 Set rotation parameters. More...
 
void Nviz_unset_rotation (void)
 Stop scene rotation. More...
 
void Nviz_init_rotation (void)
 Stop scene rotation. More...
 
void Nviz_flythrough (nv_data *data, float *fly_info, int *scale, int lateral)
 Fly through the scene. More...
 

Detailed Description

Nviz library – Change view settings.

Based on visualization/nviz/src/change_view.c

(C) 2008, 2010 by the GRASS Development Team This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
Updated/modified by Martin Landa <landa.martin gmail.com> (Google SoC 2008/2010)

Definition in file change_view.c.

Function Documentation

int Nviz_change_exag ( nv_data *  data,
double  exag 
)

Change z-exag value.

Parameters
datanviz data
exagexag value
Returns
1

Definition at line 239 of file change_view.c.

References G_debug(), GS_global_exag(), GS_set_global_exag(), and Nviz_update_ranges().

Referenced by wxnviz.Nviz::SetViewDefault(), and wxnviz.Nviz::SetZExag().

void Nviz_flythrough ( nv_data *  data,
float *  fly_info,
int scale,
int  lateral 
)

Fly through the scene.

Computes parameters needed for moving scene. Changes viewpoint and viewdir. Based on visualization/nviz/src/togl_flythrough.c and simplified.

Parameters
fly_infovalues computed from mouse movement
scalerate of movement
lateraltype of movement

Definition at line 322 of file change_view.c.

References GS_get_from(), GS_get_viewdir(), GS_moveto(), GS_set_viewdir(), dialogs::h, X, and Y.

Referenced by wxnviz.Nviz::FlyThrough().

void Nviz_get_modelview ( double *  modelMatrix)

Get current modelview matrix.

Definition at line 272 of file change_view.c.

Referenced by wxnviz.Nviz::GetRotationParameters().

void Nviz_get_viewpoint_height ( double *  height)

Definition at line 181 of file change_view.c.

References G_debug(), and GS_get_from_real().

Referenced by wxnviz.Nviz::GetViewpointPosition().

void Nviz_get_viewpoint_position ( double *  x_pos,
double *  y_pos 
)

Definition at line 130 of file change_view.c.

References G_debug(), GS_get_from(), X, and Y.

Referenced by wxnviz.Nviz::GetViewpointPosition().

void Nviz_init_rotation ( void  )

Stop scene rotation.

Definition at line 305 of file change_view.c.

References GS_init_rotation().

Referenced by wxnviz.Nviz::ResetRotation().

int Nviz_look_here ( double  sx,
double  sy 
)

Change focused point.

Parameters
sx,syscreen coordinates
Returns
1

Definition at line 262 of file change_view.c.

References G_debug(), and GS_look_here().

Referenced by wxnviz.Nviz::LookHere().

int Nviz_resize_window ( int  width,
int  height 
)

GL canvas resized.

Parameters
widthwindow width
heightwindow height
Returns
1 on success
0 on failure (window resized by dafault to 20x20 px)

Definition at line 29 of file change_view.c.

References G_debug(), GS_alldraw_wire(), GS_done_draw(), GS_ready_draw(), GS_set_draw(), and GS_set_viewport().

Referenced by wxnviz.Nviz::ResizeWindow().

void Nviz_set_rotation ( double  angle,
double  x,
double  y,
double  z 
)

Set rotation parameters.

Rotate scene by given parameters related to mouse drag event (difference from current state). Coordinates determine the second point of rotation axis, the first point is (0, 0, 0).

Parameters
angleangle
x,y,zaxis coordinate

Definition at line 288 of file change_view.c.

References G_debug(), and GS_set_rotation().

Referenced by wxnviz.Nviz::Rotate().

int Nviz_set_viewpoint_height ( double  height)

Change viewpoint height.

Parameters
datanviz data
heightheight value (world coordinates)
Returns
1

Definition at line 157 of file change_view.c.

References G_debug(), GS_get_from_real(), GS_moveto_real(), and height.

Referenced by wxnviz.Nviz::SetView().

int Nviz_set_viewpoint_persp ( int  persp)

Change viewpoint perspective (field of view)

Parameters
datanviz data
perspperspective value (0-100, in degrees)
Returns
1

Definition at line 199 of file change_view.c.

References G_debug(), GS_set_fov(), and int.

Referenced by wxnviz.Nviz::SetView().

int Nviz_set_viewpoint_position ( double  x_pos,
double  y_pos 
)

Change position of view.

Parameters
datanviz data
x_pos,y_posx,y position (model coordinates)
Returns
1

Definition at line 96 of file change_view.c.

References G_debug(), GS_get_from(), GS_moveto(), X, and Y.

Referenced by wxnviz.Nviz::SetView().

int Nviz_set_viewpoint_twist ( int  twist)

Change viewpoint twist.

Parameters
datanviz data
persptwist value (-180-180, in degrees)
Returns
1

Definition at line 221 of file change_view.c.

References G_debug(), and GS_set_twist().

Referenced by wxnviz.Nviz::SetView().

void Nviz_unset_rotation ( void  )

Stop scene rotation.

Definition at line 297 of file change_view.c.

References GS_unset_rotation().

Referenced by wxnviz.Nviz::UnsetRotation().

int Nviz_update_ranges ( nv_data *  dc)

Update ranges.

Call whenever a new surface is added, deleted, or exag changes

Returns
1

Definition at line 60 of file change_view.c.

References GS_get_longdim(), GS_get_zrange_nz(), and GS_global_exag().

Referenced by Nviz_change_exag(), and Nviz_set_attr().