Ejemplo n.º 1
0
//
// draw():
//
void PedigreeSet::draw(const DataTable *const pedigreeTable){
	
	std::cout << "Start of draw" << std::endl;
	//
	// Make a note if there is only one pedigree to be drawn: 
	//
	if( _pedigrees.size()==1 ) DrawingMetrics::setHasOnlyOnePedigreeState(true);
	
	//
	// Instantiate a LabelSet object for a pedigree set:
	//
	LabelSet labelSet(pedigreeTable);
	std::cout << "No of labels: " << labelSet.getNumberOfLabels() << std::endl;
	
	//
	// Iterate over the pedigrees and draw them:
	//
	std::set<Pedigree*,comparePedigrees>::const_iterator it = _pedigrees.begin();
	while(it != _pedigrees.end()){
		(*it)->draw(&labelSet);
		//
		// If --outputpedtable flag is set print the core/non-core fields to a tab delimited file with the name "FAMILY_ID"input.txt
		//
		if(DrawingMetrics::getHasOutputPedTable())  pedigreeTable->printPedigreeTableAsTabDelimited((*it)->getId()+"input.txt");
		//
		// If --outputdatatable flag is set print the input pedigree file as a tab delimited file with the name "FAMILY_ID"data.txt
		//
		if(DrawingMetrics::getHasOutputDataTable())  pedigreeTable->printInputTableAsTabDelimited((*it)->getId()+"data.txt");
		++it;
	}
	
	std::cout << "End of draw" << std::endl;
	
}
Ejemplo n.º 2
0
//
// draw():
//
std::string PedigreeSet::drawPedigreeImg(const DataTable *const pedigreeTable){

	std::string pedigreeSvg;

	std::cout << "Start of draw output" << std::endl;
	//
	// Make a note if there is only one pedigree to be drawn:
	//
	if( _pedigrees.size()==1 ) DrawingMetrics::setHasOnlyOnePedigreeState(true);

	//
	// Instantiate a LabelSet object for a pedigree set:
	//
	LabelSet labelSet(pedigreeTable);
	std::cout << "No of labels: " << labelSet.getNumberOfLabels() << std::endl;

	//
	// Iterate over the pedigrees and draw them:
	//
	std::set<Pedigree*,comparePedigrees>::const_iterator it = _pedigrees.begin();
	while(it != _pedigrees.end()){
		//(*it)->draw(&labelSet);
		pedigreeSvg += (*it)->drawPedigreeImg(&labelSet);

		++it;
	}

	std::cout << "End of draw" << std::endl;

	return pedigreeSvg;

}
Ejemplo n.º 3
0
int main(int argc, char* argv[]){


	display.create(640, 480);


	// Load geometry data
	//
	GLuint bo_vertex, bo_index;
	glGenBuffers(1, &bo_vertex);
	glGenBuffers(1, &bo_index);

	GLuint* count_nodes = rawdimp("../wtetris/scene.rawd", bo_vertex, bo_index);
	Geom* nodes = (Geom*)(count_nodes + 1);
	Geom* goem_border = nodes;
	Geom* geom_digits = nodes + 1;



	// Create and load shader programs
	//
	char* src_vs = file.loadText("../wtetris/shaders/base.vs");
	char* src_fs = file.loadText("../wtetris/shaders/base.fs");

	GLuint vs = gl.createShader(GL_VERTEX_SHADER, src_vs);
	GLuint fs = gl.createShader(GL_FRAGMENT_SHADER, src_fs);

	GLuint program = gl.createProgram(vs, fs);

	glUseProgram(program);



	// Get handle to shader vars
	//
	GLint loc_world = glGetUniformLocation(program, "world");
	GLint loc_view = glGetUniformLocation(program, "view");
	GLint loc_proj = glGetUniformLocation(program, "proj");
	


	// Camera setup - projecton and initial position
	Camera cam;
	cam.loc_view = loc_view;
	cam.loc_proj = loc_proj;
	matIdent(cam.mat_world);
	toggleProjection(&cam);

	float* p = &cam.mat_world[12];
	p[0] = 12; p[1] = 30; p[2] = 40;



	// Hide mouse, and set to center
	mouse.hide();
	mouse.setPos(display.getWidth()/2, display.getHeight()/2);

	// Persistent OpenGL state
	glEnable(GL_CULL_FACE);
	glCullFace(GL_BACK);
	glFrontFace(GL_CCW);
	glPolygonMode(GL_FRONT, GL_LINE);

	

	
	// Core struct init
	//
	scene.cam = &cam;
	
	Array objects;
	arrayInit(&objects, 5);
	scene.objects = &objects;
	

	// Visible objects ===================================
	
	Board board;
	boardInit(&board, goem_border, 20, 12);

	arrayAppend(&objects, &board);

	
	Label title;
	labelInit(&title, -12.5, 30, geom_digits);
	char text_title[] = "wtetris";
	labelSet(&title, text_title);
	labelScaleSet(&title, 5);

	arrayAppend(&objects, &title);

	Label info;
	labelInit(&info, -3.5, 20, geom_digits);
	char text_info[] = "start:enter\nquit:q";
	labelSet(&info, text_info);
	labelScaleSet(&info, 2);

	arrayAppend(&objects, &info);

	Label time;
	labelInit(&time, -16.5, -18.0, geom_digits);
	char score_text[] = "time:\n2501";
	labelSet(&time, score_text);
	labelScaleSet(&time, 2);
	
	arrayAppend(&objects, &time);

	Label score;
	labelInit(&score, 26, -18.0, geom_digits);
	char text[] = "score:\n0000";
	labelSet(&score, text);
	labelScaleSet(&score, 2);

	arrayAppend(&objects, &score);

	// ===================================================


	Wave wave;
	wave.amp = 2;
	wave.wlen = 2;
	wave.time = 1000;
	waveLocsSet(&wave, program);
	wavePosSet(&wave, &board.piece);

	scene.wave = &wave;


	Renderer renderer;
	renderer.loc_world = loc_world;

	// Initial game state
	//
	scene.state = st_title;

	
	// LOOP -----------------------------------------------------------------------
	
	while (1){

		events.process();

		if (keyboard.keyHit('q')){
			break;
		}

		if (keyboard.keyHit('r')){
			toggleProjection(&cam);
		}

		//fpscont(&cam);
		scene.state(&board);
		
		wave.time += 0.2;
		waveToProg(&wave);

		cameraWorldToView(&cam);
		glUniformMatrix4fv(loc_view, 1, 0, cam.mat_view);

		render(&renderer, &scene);

		display.update();


		SDL_Delay(16);
	}

	return 0;

}