Ejemplo n.º 1
0
void BccWorld::draw()
{
    // BoundingBox box;
    // m_grid->getBounding(box);
    
    // glColor3f(.21f, .21f, .21f);
    // m_drawer->boundingBox(box);
    
    // m_grid->draw(m_drawer, (unsigned *)m_mesh.m_anchorBuf->data());

	drawTetrahedronMesh();
	drawAnchor();
	drawTriangleMesh();
    
	glDisable(GL_DEPTH_TEST);
    // glColor3f(.59f, .02f, 0.f);
    // drawCurves();
	// drawCurveStars();
	
	const unsigned selectedCurveGrp = m_cluster->currentGroup();
	if(m_cluster->isGroupIdValid(selectedCurveGrp)) {
		m_drawer->setGroupColorLight(selectedCurveGrp);
		m_drawer->geometry(m_cluster->group(selectedCurveGrp));
	}
	
	// m_drawer->drawKdTree(m_triIntersect);
}
Ejemplo n.º 2
0
void BccWorld::drawTetrahedronMesh()
{
	unsigned i=0;
	for(;i<m_numMeshes; i++) {
    glEnable(GL_DEPTH_TEST);
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
	glColor3f(0.51f, 0.53f, 0.52f);
	drawTetrahedronMesh(m_meshes[i].numTetrahedrons(), m_meshes[i].points(),
	         m_meshes[i].indices());

	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
	glColor3f(.03f, .14f, .44f);
    drawTetrahedronMesh(m_meshes[i].numTetrahedrons(), m_meshes[i].points(),
	         m_meshes[i].indices());
	}
}
Ejemplo n.º 3
0
void BccInterface::drawWorld(BccWorld * world, KdTreeDrawer * drawer)
{
	const float das = world->drawAnchorSize();
	const unsigned n = world->numTetrahedronMeshes();
	unsigned i;
	for(i=0;i<n;i++) {
		drawTetrahedronMesh(world->tetrahedronMesh(i), drawer);
		drawAnchors(world->tetrahedronMesh(i), drawer, das);
	}
	
	if(world->triangleGeometries()) drawGeometry(world->triangleGeometries(), drawer);
	
	unsigned igroup;
	GeometryArray * selected = world->selectedGroup(igroup);
	if(selected) {
		drawer->setGroupColorLight(igroup);
		glDisable(GL_DEPTH_TEST);
		drawer->geometry(selected);
	}
	
	if(m_patchMesh) {
		glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
		glColor3f(.03f, .14f, .44f);
		drawer->geometry(m_patchMesh);
	}
    
    if(m_tetMesh) {
#if 0
		drawTetrahedronMesh(m_tetMesh, drawer);
#else
		glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
		glColor3f(.03f, .14f, .44f);
		drawer->tetrahedronMesh(m_tetMesh);
#endif
	}
	
    const std::vector<AOrientedBox> * boxes = world->patchBoxes();
	glColor3f(0.f, 0.99f, 0.f);
	glBegin(GL_LINES);
	std::vector<AOrientedBox>::const_iterator it = boxes->begin();
	for(;it!=boxes->end();++it)
		drawer->orientedBox(&(*it));
	glEnd();
}