Ejemplo n.º 1
0
void ThreeDWidget::paintGL() 
{

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glMatrixMode(GL_MODELVIEW);

	drawView();
	drawFloor();
	drawOriginal();
	//	drawSkeleton();
	drawPointCloud();
	if(_calibrated)
		drawCameras();
}
Ejemplo n.º 2
0
void GLScenePane::drawGLObjs() {
	glClearColor(1.0, 1.0, 1.0, 1.0);
	if (m_followCamId < 0) {
		glScaled(1. / m_scale, 1. / m_scale, 1. / m_scale);
		glTranslated(-m_center[0], -m_center[1], -m_center[2]);
	} else {
		if (m_pSLAM) {
			const CamPoseItem* cam =
					m_pSLAM->slam[m_followCamId].m_camPos.current();
			if (cam) {
				double mat[16];
				glGetDoublev(GL_MODELVIEW_MATRIX, mat);
				glMatrixMode(GL_MODELVIEW);
				for (int i = 0; i < 3; i++) {
					for (int j = 0; j < 3; j++) {
						mat[j * 4 + i] = cam->R[i * 3 + j];
						mat[j * 4 + 3] = 0;
					}
				}
				mat[12] = cam->t[0];
				mat[13] = cam->t[1];
				mat[14] = cam->t[2];
				mat[15] = 1.0;
				glMultMatrixd(mat);
			}
		}
	}

	glEnable(GL_BLEND);
	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	glEnable(GL_POINT_SMOOTH);
	glEnable(GL_LINE_SMOOTH);
	glEnable(GL_POLYGON_SMOOTH);
	glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
	glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);

	if (m_pSLAM && m_pSLAM->curMapPts.getNum() > 0 && m_pSLAM->curFrame > 1) {
		MyApp::bBusyDrawingModel = true;
		drawPoints();
		drawCameras();
		//drawInfo();
		drawCameraGroups();
		MyApp::bBusyDrawingModel = false;
	}
}