/*<html><pre>*/
#ifndef	V_FBDRAW_H
#define V_FBDRAW_H

/*
 *	Somewhat 'smart' implemenation for scientific graph widget.
 */
 
typedef	struct	functional_bounding_box_s
{
	/* general parameters */
	vec3_t 		mins, maxs;			/* bounding box */
	cam_t 		*cam;				/* viewpoint */
	vec3_t 		f_mins, f_maxs;		/* box in logical space */
	u32_t		steps[3];			/* numbers of subdivisions */
	char_p		legend[3];			/* labels for axes */
	/* on/off flags */
	vboolean	draw_axis[3];
	vboolean	draw_ticks[3];
	vboolean	draw_labels[3];
	vboolean	draw_grid[3];
	vboolean	draw_legend[3];
	/* smoothing flags */
	vboolean	smooth_axes;
	vboolean	smooth_grids;
	vboolean	smooth_ticks;
	/* sizes */
	vec_t		axis_width[3];
	vec_t		grid_width[3];
	vec_t		ticks_size[3];
	/* colors */
	vec4_t		axis_color[3];
	vec4_t		grid_color[3];
	vec4_t		ticks_color[3];
	vec4_t		label_color[3];
	vec4_t		legend_color[3];
	/* fonts */
	vhandle_t	label_font[3];
	vhandle_t	legend_font[3];
}	functional_bounding_box_t, *functional_bounding_box_p;

#ifdef	__cplusplus
extern "C" {
#endif	/* __cplusplus */
	void	V_GLOBAL	fbbInit(functional_bounding_box_t *fbb);
	/*		fbb->cam MUST be set prior to these calls */
	void	V_GLOBAL	fbbDraw(functional_bounding_box_t *fbb);
	void	V_GLOBAL	fbbDraw2D(functional_bounding_box_t *fbb);
#ifdef	__cplusplus
}
#endif	/* __cplusplus */

#endif	/* V_FBDRAW_H */
/*</pre></html>*/
/*EOF*/
