jeudi 16 juin 2016

Qt: Show Edges for 3D Cuboids

I am using Qt3D to draw intersecting cuboids.Every thing is fine expect for the edges as they don't appear.I checked for properties in QCuboidMesh and QPhongAlphaMaterial but I couldn't find such one.

enter image description here

The code:

SceneModifier::SceneModifier(Qt3DCore::QEntity *rootEntity)
    : m_rootEntity(rootEntity)
{

    //Outer Cuboid shape data
    cuboid = new Qt3DExtras::QCuboidMesh();
    cuboid->setXExtent(4);
    cuboid->setYExtent(4);
    cuboid->setZExtent(8);
    // CuboidMesh Transform
    Qt3DCore::QTransform *cuboidTransform = new Qt3DCore::QTransform();

    Qt3DExtras::QPhongAlphaMaterial *cuboidMaterial = new Qt3DExtras::QPhongAlphaMaterial();
    cuboidMaterial->setDiffuse(QColor(QRgb(0xff0ff0)));
    cuboidMaterial->setAlpha(0.5);

    //Cuboid
    m_cuboidEntity = new Qt3DCore::QEntity(m_rootEntity);
    m_cuboidEntity->addComponent(cuboid);
    m_cuboidEntity->addComponent(cuboidMaterial);

    // Inner Cuboid shape data
     cuboid2 = new Qt3DExtras::QCuboidMesh();
     cuboid2->setXExtent(2);
     cuboid2->setYExtent(2);
     cuboid2->setZExtent(8);


     Qt3DExtras::QPhongMaterial *cuboidMaterial2 = new Qt3DExtras::QPhongMaterial();
     cuboidMaterial2->setDiffuse(QColor(QRgb(0xffffff)));

     //Cuboid

     m_cuboidEntity2 = new Qt3DCore::QEntity(m_rootEntity);

     m_cuboidEntity2->addComponent(cuboid2);
     m_cuboidEntity2->addComponent(cuboidMaterial2);

     Qt3DCore::QTransform* cuboidTransform3 = new Qt3DCore::QTransform();
     cuboidTransform3->setRotation(QQuaternion::fromAxisAndAngle(QVector3D(0.1f, -0.1f, 0.0f), 45.0f));

     m_rootEntity->addComponent(cuboidTransform3);
}

Aucun commentaire:

Enregistrer un commentaire