示例#1
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_space )
{
    sx1=(std_type)HOW_MUCH("minimum x coord");
    sy1=(std_type)HOW_MUCH("minimum y coord");
    sx2=(std_type)HOW_MUCH("maximum x coord");
    sy2=(std_type)HOW_MUCH("maximum y coord");

    /* There is no real reason to require this, except that
     * we assumed it must have been a mistake if the user did this...
     * But we often deal with situations where the y coordinate needs
     * to be turned upside down to make various conventions mesh...
     */
    /*
    if( sx2 <= sx1 ){
    WARN("do_xp_space:  x max coord must be larger than x min coord");
    	return;
    }
    if( sy2 <= sy1 ){
    WARN("do_xp_space:  y max coord must be larger than y min coord");
    	return;
    }
    */
    if( sx2 == sx1 ) {
        WARN("do_xp_space:  x max coord must be different from x min coord");
        return;
    }
    if( sy2 == sy1 ) {
        WARN("do_xp_space:  y max coord must be different from y min coord");
        return;
    }

    xp_fspace(sx1,sy1,sx2,sy2);
}
示例#2
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_point )
{
    std_type x,y;

    x=(std_type)HOW_MUCH("x coord");
    y=(std_type)HOW_MUCH("y coord");
    xp_fpoint(x,y);
}
示例#3
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_move )
{
    std_type x,y;

    x=(std_type)HOW_MUCH("x coord");
    y=(std_type)HOW_MUCH("y coord");
    xp_fmove(x,y);
}
示例#4
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_line )
{
    std_type x1,x2,y1,y2;

    x1=(std_type)HOW_MUCH("first x coord");
    y1=(std_type)HOW_MUCH("first y coord");
    x2=(std_type)HOW_MUCH("second x coord");
    y2=(std_type)HOW_MUCH("second y coord");
    xp_fline(x1,y1,x2,y2);
}
示例#5
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC(	do_gl_tc )
{
	float s,t;

	s=(float)HOW_MUCH("s coordinate");
	t=(float)HOW_MUCH("t coordinate");

	if( debug & gl_debug ) advise("glTexCoord2f");
	glTexCoord2f(s,t);
}
示例#6
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( do_xlate )
{
	float tx,ty,tz;

	tx=(float)HOW_MUCH("x translation");
	ty=(float)HOW_MUCH("y translation");
	tz=(float)HOW_MUCH("z translation");

	if( debug & gl_debug ) advise("glTranslatef");
	glTranslatef(tx,ty,tz);
}
示例#7
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( do_scale )
{
	float fx,fy,fz;

	fx=(float)HOW_MUCH("x scale factor");
	fy=(float)HOW_MUCH("y scale factor");
	fz=(float)HOW_MUCH("z scale factor");

	if( debug & gl_debug ) advise("glScalef");
	glScalef(fx,fy,fz);
}
示例#8
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_global_ambient )
{
	float v[4];

	v[0]=(float)HOW_MUCH("red");
	v[1]=(float)HOW_MUCH("green");
	v[2]=(float)HOW_MUCH("blue");
	v[3]=1.0;

	if( debug & gl_debug ) advise("glLightModelfv");
	glLightModelfv(GL_LIGHT_MODEL_AMBIENT,v);
}
示例#9
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( do_rotate )
{
	float angle;
	float dx,dy,dz;

	angle = (float)HOW_MUCH("angle in degrees");
	dx = (float)HOW_MUCH("rotation axis x");
	dy = (float)HOW_MUCH("rotation axis y");
	dz = (float)HOW_MUCH("rotation axis z");

	if( debug & gl_debug ) advise("glRotatef");
	glRotatef(angle,dx,dy,dz);
}
示例#10
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_spot_dir )
{
	float v[3];

	v[0]=(float)HOW_MUCH("x component");
	v[1]=(float)HOW_MUCH("y component");
	v[2]=(float)HOW_MUCH("z component");

	CHECK_LIGHT("spot direction")

	if( debug & gl_debug ) advise("glLightfv GL_POSITION");
	glLightfv(which_light,GL_SPOT_DIRECTION,v);
}
示例#11
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_ambient )
{
	float v[4];

	v[0] = (float)HOW_MUCH("red component");
	v[1] = (float)HOW_MUCH("green component");
	v[2] = (float)HOW_MUCH("blue component");
	v[3] = 1.0;

	CHECK_LIGHT("ambient");

	if( debug & gl_debug ) advise("glLightfv GL_AMBIENT");
	glLightfv(which_light,GL_AMBIENT,v);
}
示例#12
0
文件: cu2_menu.c 项目: E-LLP/QuIP
static PF_COMMAND_FUNC( fill2 )
{
	Data_Obj *dp;
	int x,y;
	float fill_val, tol;

	dp = PICK_OBJ("image");
	x=HOW_MANY("seed point x");
	y=HOW_MANY("seed point y");
	fill_val=HOW_MUCH("fill value");
	tol = HOW_MUCH("tolerance");

	h_sp_ifl2(dp,x,y,tol,fill_val);
}
示例#13
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC(	do_gl_normal )
{
	float x,y,z;

	x=(float)HOW_MUCH("x coordinate");
	y=(float)HOW_MUCH("y coordinate");
	z=(float)HOW_MUCH("z coordinate");

	if( debug & gl_debug ){
		sprintf(ERROR_STRING,"glNormal3f %g %g %g",x,y,z);
		advise(ERROR_STRING);
	}
	glNormal3f(x,y,z);
}
示例#14
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( do_persp )
{
	GLdouble fovy, aspect, near, far;

	fovy = HOW_MUCH("vertical field of view in degrees (0-180)");
	aspect = HOW_MUCH("aspect ration (H/V)");
	near = HOW_MUCH("distance to near clipping plane");
	far = HOW_MUCH("distance to far clipping plane");

	/* BUG check for errors */

	if( debug & gl_debug ) advise("gluPerspective");
	gluPerspective(fovy,aspect,near,far);
}
示例#15
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC(	do_gl_color )
{
	float r,g,b;

	r=(float)HOW_MUCH("red");
	g=(float)HOW_MUCH("green");
	b=(float)HOW_MUCH("blue");

	if( debug & gl_debug ){
		sprintf(ERROR_STRING,"glColor3f %g %g %g",r,g,b);
		advise(ERROR_STRING);
	}
	glColor3f(r,g,b);
}
示例#16
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_specular )
{
	float v[4];

	v[0] = (float)HOW_MUCH("red component");
	v[1] = (float)HOW_MUCH("green component");
	v[2] = (float)HOW_MUCH("blue component");
	v[3] = 1.0;

	CHECK_LIGHT("specular");

	if( debug & gl_debug ) advise("glLightfv GL_SPECULAR");
	glLightfv(which_light, GL_SPECULAR, v);
}
示例#17
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_light_position )
{
	float v[4];

	v[0]=(float)HOW_MUCH("x position");
	v[1]=(float)HOW_MUCH("y position");
	v[2]=(float)HOW_MUCH("z position");
	v[3]=(float)HOW_MUCH("w position");

	CHECK_LIGHT("position")

	if( debug & gl_debug ) advise("glLightfv GL_POSITION");
	glLightfv(which_light,GL_POSITION,v);
}
示例#18
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_diffuse )
{
	float v[4];

	v[0]=(float)HOW_MUCH("red component");
	v[1]=(float)HOW_MUCH("green component");
	v[2]=(float)HOW_MUCH("blue component");
	v[3]=1.0;

	CHECK_LIGHT("diffuse");

	if( debug & gl_debug ) advise("glLightfv GL_DIFFUSE");
	glLightfv(which_light,GL_DIFFUSE,v);
}
示例#19
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_circ )
{
    std_type rad;

    rad = (std_type)HOW_MUCH("radius");
    xp_circle(rad);
}
示例#20
0
文件: lookmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( seter )
{
	double er;

	er=HOW_MUCH("finger error rate");
	w_set_error_rate(er);
}
示例#21
0
文件: linmenu.c 项目: E-LLP/QuIP
static COMMAND_FUNC( do_set_vzero )
{
	crt_vzero=(float)HOW_MUCH("voltage offset for linearization");
	CHECK_DPYP("do_set_vzero")
#ifdef HAVE_X11
	lin_setup(QSP_ARG  DPA_LINTBL_OBJ(current_dpyp),crt_gamma,crt_vzero);
#endif /* HAVE_X11 */
}
示例#22
0
文件: linmenu.c 项目: E-LLP/QuIP
static COMMAND_FUNC( do_set_gamma )
{
	crt_gamma=HOW_MUCH("exponent for linearization");
	CHECK_DPYP("do_set_gamma")
#ifdef HAVE_X11
	lin_setup(QSP_ARG  DPA_LINTBL_OBJ(current_dpyp),crt_gamma,crt_vzero);
#endif /* HAVE_X11 */
}
示例#23
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC(	do_gl_ptsize )
{
	float size;

	size = (float)HOW_MUCH("size");

	if( debug & gl_debug ) advise("glPointSize");
	glPointSize(size);
}
示例#24
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_pt_size )
{
	GLfloat s;

	s=(float)HOW_MUCH("width in pixels for rendered points");
	if( s <= 0 ){
		sprintf(ERROR_STRING,"Requested point size (%g) must be positive",s);
		WARN(ERROR_STRING);
		return;
	}
	if( debug & gl_debug ) advise("glPointSize");
	glPointSize(s);
}
示例#25
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_line_width )
{
	GLfloat w;

	w=(float)HOW_MUCH("width in pixels for rendered lines");
	if( w <= 0 ){
		sprintf(ERROR_STRING,"Requested line width (%g) must be positive",w);
		WARN(ERROR_STRING);
		return;
	}
	if( debug & gl_debug ) advise("glLineWidth");
	glLineWidth(w);
}
示例#26
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( do_look_at )
{
	float x,y,z;
	float cx,cy,cz;
	float ux,uy,uz;

	x = (float)HOW_MUCH("x camera position");
	y = (float)HOW_MUCH("y camera position");
	z = (float)HOW_MUCH("z camera position");
	cx = (float)HOW_MUCH("x target position");
	cy = (float)HOW_MUCH("y target position");
	cz = (float)HOW_MUCH("z target position");
	ux = (float)HOW_MUCH("x up direction");
	uy = (float)HOW_MUCH("y up direction");
	uz = (float)HOW_MUCH("z up direction");

	if( debug & gl_debug ) advise("gluLookAt");
	gluLookAt(x,y,z,cx,cy,cz,ux,uy,uz);
}
示例#27
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_fill_polygon )
{
    float* x_vals=NULL, *y_vals = NULL;
    int num_points;
    int i;

    num_points = (int)HOW_MANY("number of polygon points");
    x_vals = (float *) getbuf(sizeof(float) * num_points);
    y_vals = (float *) getbuf(sizeof(float) * num_points);

    for (i=0; i < num_points; i++) {
        char s[100];
        sprintf(s, "point %d x value", i+1);
        x_vals[i] = (float)HOW_MUCH(s);
        sprintf(s, "point %d y value", i+1);
        y_vals[i] = (float)HOW_MUCH(s);
    }

    xp_fill_polygon(num_points, x_vals, y_vals);

    givbuf(x_vals);
    givbuf(y_vals);
}
示例#28
0
文件: glmenu.c 项目: nasa/QuIP
static COMMAND_FUNC( set_atten )
{
	int i;
	float f;

	i=WHICH_ONE("attenuation model",N_ATTENUATIONS,atten_names);
	f=(float)HOW_MUCH("attenuation constant");
	if( i < 0 ) return;
	if( debug & gl_debug ) advise("glLightf");
	switch(i){
		case 0: glLightf(which_light,GL_CONSTANT_ATTENUATION,f); break;
		case 1: glLightf(which_light,GL_LINEAR_ATTENUATION,f); break;
		case 2: glLightf(which_light,GL_QUADRATIC_ATTENUATION,f); break;
	}
}
示例#29
0
文件: param.c 项目: E-LLP/QuIP
static void getparm(QSP_ARG_DECL  Param *p)
{
	if( IS_ARRAY_PARAM(p) ) getarrp(QSP_ARG  p);

	else if( IS_FLOAT_PARAM(p) )
		*p->u.fp = fnum= (float)HOW_MUCH( p->p_comment );
	else if( IS_SHORT_PARAM(p) )
		*p->u.sp = (short)HOW_MANY( p->p_comment );
	else if( IS_INT_PARAM(p) )
		*p->u.ip = (int)HOW_MANY( p->p_comment );
	else if( IS_STRING_PARAM(p) )
		strcpy( p->u.strp, NAMEOF(p->p_comment) );

	else ERROR1(badpstr);
}
示例#30
0
文件: plotmenu.c 项目: RyanHun/QuIP
static COMMAND_FUNC( do_xp_fill_arc )
{
    std_type cx,cy,x1,y1,x2,y2;

    cx=(std_type)HOW_MUCH("center x");
    cy=(std_type)HOW_MUCH("center y");
    x1=(std_type)HOW_MUCH("arc start x");
    y1=(std_type)HOW_MUCH("arc start y");
    x2=(std_type)HOW_MUCH("arc end x");
    y2=(std_type)HOW_MUCH("arc end y");
    xp_ffill_arc(cx,cy,x1,y1,x2,y2);
}