Exemplo n.º 1
0
Arquivo: main.c Projeto: mattjakob/s3d
void init_sdl(void)
{
  lang_defun("scene", scene_parse);
  lang_defun("view", view_parse);
  lang_defun("dist_light", distlight_parse);
  lang_defun("plastic", plastic_parse);
  lang_defun("primobj", obj_parse);
  lang_defun("sphere", sphere_parse);
}
Exemplo n.º 2
0
Arquivo: main.c Projeto: mattjakob/s3d
void init_sdl(void)
{
    lang_defun("scene", scene_parse);
    lang_defun("view", view_parse);
    lang_defun("dist_light", distlight_parse);
    lang_defun("plastic", plastic_parse);
    lang_defun("primobj", obj_parse);
    lang_defun("sphere", sphere_parse);
    lang_defun("polyobj", obj_parse);
    lang_defun("trilist", trilist_parse);


    lang_defun("group", group_parse);
    lang_defun("translate", translate_parse);
    lang_defun("scale", scale_parse);
    lang_defun("rotate", rotate_parse);

}
Exemplo n.º 3
0
Arquivo: main.c Projeto: cheque/s3d
int main(int argc, char **argv) {	
	FILE *fp, *foff, *ftrans;
	
	Val v;
	lang_defun("sphere", sphere_parse);
	lang_defun("conep", conep_parse);
	lang_defun("cylin", cylin_parse);
	
	if (lang_parse() == 0)
		v = lang_eval();
	
	fprintf(stderr, "\n");
	//fprintf(stderr, "type = %d\n", v.type);
	//fprintf(stderr, "V_PRIM = %d\n", V_PRIM);
	int primID = prim_type(v.u.v);
	fprintf(stderr, "prim_type = %d\n", primID);
	
	double Vol_calc;
	double radius;
	double height;
		
	if (primID == SPHERE){
		fprintf(stderr, "It's a SPHERE! \n");
		Sphere *s = ((Prim*)v.u.v)->d;
		radius = s->r;
		Vol_calc = 4 * PI * pow(radius,3) / 3;
	};

	if (primID == CONEP){
		fprintf(stderr, "It's a CONE! \n");
		Conep *c = ((Prim*)v.u.v)->d;
		radius = c->r;
		height = c->h;
		Vol_calc = PI * height * SQR(radius) / 3;
	};

	if (primID == CYLIN){
		fprintf(stderr, "It's a CYLINDER! \n");
		Cylin *c = ((Prim*)v.u.v)->d;
		radius = c->r;
		height = c->h;
		Vol_calc = PI * height * SQR(radius);
	};
	
	double randnum = rand() % 99;
	char meshSDLfile[sizeof "MESH0000.sdl"];
	char meshOFFfile[sizeof "MESH0000.sdl"];
	char meshtransfile[sizeof "transMESH0000.sdl"];
	printf("Writing mesh files...\n");
	printf("MESH%2d%2.0f.sdl\n",primID,randnum);
	printf("MESH%2d%2.0f.off\n",primID,randnum);
	                         
	sprintf(meshSDLfile,"MESH%2d%2.0f.sdl",primID,randnum);	
	sprintf(meshOFFfile,"MESH%2d%2.0f.off",primID,randnum);
	sprintf(meshtransfile,"transMESH%2d%2.0f.off",primID,randnum);
	fp = 	fopen(meshSDLfile,"w");
	foff = fopen(meshOFFfile,"w");
	ftrans = fopen(meshtransfile,"w");
	
	Prim *p = (Prim*)v.u.v;
	double step = 0.1;
	double Vol1 = rayvolume(p,step);
	
	double level = 3;
	iMesh *mesh = prim_uv_decomp(p,3);
	imesh_write(mesh,fp);
	imesh_writeOFF(mesh,foff);
	
	printf("Volume (rayvolume.c): %g \n",Vol1);
	printf("Volume (formula): %g \n",Vol_calc);
	
	printf("\nParsing SDL mesh and translating to OFF mesh...\n --> transMESH%2d%2.0f.sdl\n",primID,randnum);
	
	rewind(fp);
	imesh_translate(fp,ftrans);

	fclose(fp);
	fclose(foff);
	fclose(ftrans);
	
	return 0;
}
Exemplo n.º 4
0
Arquivo: main.c Projeto: mattjakob/s3d
void init_sdl(void)
{
  lang_defun("scene", scene_parse);
  lang_defun("view", view_parse);
  lang_defun("dist_light", distlight_parse);
  lang_defun("plastic", plastic_parse);
  lang_defun("primobj", obj_parse);
  lang_defun("sphere", sphere_parse);

  lang_defun("slideproj", slideproj_parse);
  lang_defun("shiny", shiny_parse);
  lang_defun("rough", rough_parse);
  lang_defun("textured", textured_parse);
  lang_defun("imagemap", imagemap_parse);
  lang_defun("chequer", chequer_parse);

}
Exemplo n.º 5
0
Arquivo: main.c Projeto: mattjakob/s3d
void init_sdl(void)
{
  lang_defun("scene", scene_parse);
  lang_defun("view", view_parse);
  lang_defun("polyobj", obj_parse);
  lang_defun("trilist", trilist_parse);

  lang_defun("primobj", obj_parse);
  lang_defun("sphere", sphere_parse);

  lang_defun("csgobj", obj_parse);
  lang_defun("csg_union", csg_union_parse);
  lang_defun("csg_inter", csg_inter_parse);
  lang_defun("csg_diff", csg_diff_parse);
  lang_defun("csg_prim", csg_prim_parse);

  lang_defun("dist_light", distlight_parse);
  lang_defun("plastic", plastic_parse);

  lang_defun("group", group_parse);
  lang_defun("translate", translate_parse);
  lang_defun("scale", scale_parse);
  lang_defun("rotate", rotate_parse);

  lang_defun("arg", arg_parse);
  lang_defun("motor", motor_parse);
}
Exemplo n.º 6
0
Arquivo: main.c Projeto: cheque/s3d
void init_lang(void)
{
  lang_defun("scene", scene_parse);
  lang_defun("view", view_parse);
  lang_defun("dist_light", distlight_parse);
  lang_defun("plastic", plastic_parse);

  lang_defun("shaderprog", shaderprog_parse);

  lang_defun("meshobj", obj_parse);
  lang_defun("mesh", imesh_parse);

  lang_defun("primobj", obj_parse);
  lang_defun("sphere", sphere_parse);

  lang_defun("group", graph_parse);
  lang_defun("affine", xaffine_parse);

  lang_defun("slideproj", slideproj_parse);
  lang_defun("shiny", shiny_parse);
  lang_defun("rough", rough_parse);
  lang_defun("textured", textured_parse);
  lang_defun("imagemap", imagemap_parse);
  lang_defun("chequer", chequer_parse);

  lang_defun("arg", arg_parse);
  lang_defun("motor", motor_parse);

  lang_defun("include", include_parse);
}
Exemplo n.º 7
0
void init_lang(void)
{
  lang_defun((char *)("scene"), scene_parse);
  lang_defun((char *)("view"), view_parse);
  lang_defun((char *)("dist_light"), distlight_parse);
  lang_defun((char *)("plastic"), plastic_parse);

  lang_defun((char *)("shaderprog"), shaderprog_parse);

  lang_defun((char *)("meshobj"), obj_parse);
  lang_defun((char *)("mesh"), imesh_parse);

  lang_defun((char *)("primobj"), obj_parse);
  lang_defun((char *)("sphere"), sphere_parse);

  lang_defun((char *)("group"), graph_parse);
  lang_defun((char *)("affine"), xaffine_parse);

  lang_defun((char *)("slideproj"), slideproj_parse);
  lang_defun((char *)("shiny"), shiny_parse);
  lang_defun((char *)("rough"), rough_parse);
  lang_defun((char *)("textured"), textured_parse);
  lang_defun((char *)("imagemap"), imagemap_parse);
  lang_defun((char *)("chequer"), chequer_parse);

  lang_defun((char *)("arg"), arg_parse);
  lang_defun((char *)("motor"), motor_parse);
}