Exemplo n.º 1
0
MyQGLViewer::MyQGLViewer(QWidget* parent, const QGLWidget* shareWidget)
    : QGLViewer(parent, shareWidget)
{
    // Move camera according to viewer type (on X, Y or Z axis)
    camera()->setPosition(Vec(0.0, 0.0, 1.0));
    camera()->lookAt(sceneCenter());
    camera()->setFOVToFitScene();

    camera()->setType(Camera::ORTHOGRAPHIC);
//    camera()->showEntireScene();

    // Forbid rotation
    WorldConstraint* constraint = new WorldConstraint();
    constraint->setRotationConstraintType(AxisPlaneConstraint::FORBIDDEN);
    camera()->frame()->setConstraint(constraint);

    glEnable(GL_DEPTH_TEST);
}
Exemplo n.º 2
0
Viewer::Viewer(string strName_, DataLive::tp_shared_ptr pData, QWidget* parent, const QGLWidget* shareWidget)
:QGLViewer(parent, shareWidget)
{
	_pData = pData;
	_strViewer = strName_;
	_bShowText = true;

	// Forbid rotation
	if(!_strViewer.compare("global_view") ){
		setAxisIsDrawn(false);
		setFPSIsDisplayed();
		setGridIsDrawn(false);
	}
	else
	{
		setAxisIsDrawn(false);
		setGridIsDrawn(false);
		WorldConstraint* constraint = new WorldConstraint();
		constraint->setRotationConstraintType(AxisPlaneConstraint::FORBIDDEN);
		constraint->setTranslationConstraintType(AxisPlaneConstraint::FORBIDDEN);
		camera()->frame()->setConstraint(constraint);
	}
}
Exemplo n.º 3
0
functionCube::functionCube(QObject *parent):QObject(parent)
{
    int i;
    for(i=0;i<19;i++)
    {
	frame_[i] = new ManipulatedFrame(); 
	/*
	if(i>0)
	    frame(i)->setReferenceFrame(frame(i-1));
	    */
    }
 
/*
    LocalConstraint* edgeConstraint = new LocalConstraint();
    edgeConstraint->setTranslationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    */
 

    WorldConstraint* edgeConstraintX = new WorldConstraint();
    edgeConstraintX->setRotationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    edgeConstraintX->setTranslationConstraint(AxisPlaneConstraint::AXIS, Vec(0.0,1.0,0.0));

    WorldConstraint* edgeConstraintY = new WorldConstraint();
    edgeConstraintY->setRotationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    edgeConstraintY->setTranslationConstraint(AxisPlaneConstraint::AXIS, Vec(1.0,0.0,0.0));

    WorldConstraint* edgeConstraintZ = new WorldConstraint();
    edgeConstraintZ->setRotationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    edgeConstraintZ->setTranslationConstraint(AxisPlaneConstraint::AXIS, Vec(0.0,0.0,1.0));

    WorldConstraint* faceConstraintX = new WorldConstraint();
    faceConstraintX->setRotationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    faceConstraintX->setTranslationConstraint(AxisPlaneConstraint::PLANE, Vec(1.0,0.0,0.0));

    WorldConstraint* faceConstraintY = new WorldConstraint();
    faceConstraintY->setRotationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    faceConstraintY->setTranslationConstraint(AxisPlaneConstraint::PLANE, Vec(0.0,1.0,0.0));
    
    WorldConstraint* faceConstraintZ = new WorldConstraint();
    faceConstraintZ->setRotationConstraint(AxisPlaneConstraint::FORBIDDEN, Vec(0.0,0.0,0.0));
    faceConstraintZ->setTranslationConstraint(AxisPlaneConstraint::PLANE, Vec(0.0,0.0,1.0));




    QVector3D v[8]={
	QVector3D(-0.25, -0.25, -0.25),
	QVector3D(0.25, -0.25, -0.25),
	QVector3D(0.25, 0.25, -0.25),
	QVector3D(-0.25, 0.25, -0.25),
	QVector3D(-0.25, 0.25, 0.25),
	QVector3D(0.25, 0.25, 0.25),
	QVector3D(0.25, -0.25, 0.25),
	QVector3D(-0.25, -0.25, 0.25)
    };
    for(i=0; i<8; i++)
	node[i] = new functionNode(this, v[i]);

    edge[0] = new functionEdge(this, node[0], node[1]);
    edge[1] = new functionEdge(this, node[1], node[2]);
    edge[2] = new functionEdge(this, node[2], node[3]);
    edge[3] = new functionEdge(this, node[3], node[0]);
    edge[4] = new functionEdge(this, node[4], node[5]);
    edge[5] = new functionEdge(this, node[5], node[6]);
    edge[6] = new functionEdge(this, node[6], node[7]);
    edge[7] = new functionEdge(this, node[7], node[4]);
    edge[8] = new functionEdge(this, node[0], node[7]);
    edge[9] = new functionEdge(this, node[1], node[6]);
    edge[10] = new functionEdge(this, node[2], node[5]);
    edge[11] = new functionEdge(this, node[3], node[4]);

    QVector3D ve[12]={
	QVector3D(0, -0.25, -0.25),
	QVector3D(0.25, 0, -0.25),
	QVector3D(0, 0.25, -0.25),
	QVector3D(-0.25, 0, -0.25),
	QVector3D(-0.25, 0, 0.25),
	QVector3D(0, 0.25, 0.25),
	QVector3D(0.25, 0, 0.25),
	QVector3D(0, -0.25, 0.25),
	QVector3D(-0.25, -0.25, 0),
	QVector3D(0.25, -0.25, 0),
	QVector3D(0.25, 0.25, 0),
	QVector3D(-0.25, 0.25, 0)
    };

    for(i=0; i<12; i++)
    {
	edgeNode[i] = new functionNode(this, ve[i]); 
	edgeNode[i]->setColor(QColor(Qt::green));
	frame(i)->setTranslation(Vec(ve[i].x(), ve[i].y(), ve[i].z()));
	if(i==3 || i ==1 || i == 4 || i==6)
	{
	    frame(i)->setConstraint(edgeConstraintX);
	}else
	if(i==0 || i==2 || i ==5 || i==7)
	{
	    frame(i)->setConstraint(edgeConstraintY);
	}else
	if(i==8||i==9||i==10||i==11)
	{
	    frame(i)->setConstraint(edgeConstraintZ);
	}
    
    }

    QVector3D vf[6]={
	QVector3D(0, 0, -0.25),
	QVector3D(0, 0, 0.25),
	QVector3D(0, -0.25, 0),
	QVector3D(0.25, 0, 0),
	QVector3D(0, 0.25, 0),
	QVector3D(-0.25, 0, 0)
    
    };

    for(i=0; i<6; i++)
    {
	faceNode[i] = new functionNode(this, vf[i]); 
	faceNode[i]->setColor(QColor(Qt::green));
	frame(12+i)->setTranslation(Vec(vf[i].x(), vf[i].y(), vf[i].z()));
	if(i==3|| i==5)
	{
	    frame(12+i)->setConstraint(faceConstraintX);
	}else if(i==0||i==1)
	{
	    	
	    frame(12+i)->setConstraint(faceConstraintZ);
	
	}else if(i==4||i==2)
	{
	    frame(12+i)->setConstraint(faceConstraintY);
	}
    }

    middleNode = new functionNode(this, QVector3D(0, 0, 0));    
    middleNode->setColor(QColor(Qt::blue));
    frame(18)->setTranslation(Vec(0, 0, 0));

    faceEdge[0] = new functionEdge(this, faceNode[0], edgeNode[0]);
    faceEdge[1] = new functionEdge(this, faceNode[0], edgeNode[1]);
    faceEdge[2] = new functionEdge(this, faceNode[0], edgeNode[2]);
    faceEdge[3] = new functionEdge(this, faceNode[0], edgeNode[3]);
    faceEdge[4] = new functionEdge(this, faceNode[1], edgeNode[4]);
    faceEdge[5] = new functionEdge(this, faceNode[1], edgeNode[5]);
    faceEdge[6] = new functionEdge(this, faceNode[1], edgeNode[6]);
    faceEdge[7] = new functionEdge(this, faceNode[1], edgeNode[7]);
    faceEdge[8] = new functionEdge(this, faceNode[2], edgeNode[0]);
    faceEdge[9] = new functionEdge(this, faceNode[2], edgeNode[9]);
    faceEdge[10] = new functionEdge(this, faceNode[2], edgeNode[7]);
    faceEdge[11] = new functionEdge(this, faceNode[2], edgeNode[8]);
    faceEdge[12] = new functionEdge(this, faceNode[3], edgeNode[1]);
    faceEdge[13] = new functionEdge(this, faceNode[3], edgeNode[10]);
    faceEdge[14] = new functionEdge(this, faceNode[3], edgeNode[6]);
    faceEdge[15] = new functionEdge(this, faceNode[3], edgeNode[9]);
    faceEdge[16] = new functionEdge(this, faceNode[4], edgeNode[2]);
    faceEdge[17] = new functionEdge(this, faceNode[4], edgeNode[10]);
    faceEdge[18] = new functionEdge(this, faceNode[4], edgeNode[5]);
    faceEdge[19] = new functionEdge(this, faceNode[4], edgeNode[11]);
    faceEdge[20] = new functionEdge(this, faceNode[5], edgeNode[3]);
    faceEdge[21] = new functionEdge(this, faceNode[5], edgeNode[11]);
    faceEdge[22] = new functionEdge(this, faceNode[5], edgeNode[4]);
    faceEdge[23] = new functionEdge(this, faceNode[5], edgeNode[8]);

    for(i=0; i<6; i++)
    {
	innerEdge[i] = new functionEdge(this, middleNode, faceNode[i]);
    }
    selected = 19;

}