PDA

View Full Version : Keep texture in foreground using addTexquad command


Vishav
11-16-2017, 09:14 PM
Dear all,

As shown in my attached jpeg file I want texture map to come in front of infoBox (i.e. in the foreground) but it is coming in the background. How do i can solve it? I am attaching my source code for the same. Please help in it.

Source Code:

apple_i= viz.add( 'D:\PhD\Study-I_Part_I\Textures\Apple.jpg')
mapPos = [0.5,0.4,1.5]
mapScale = [1.5,1.5,1.5]
apple_i= viz.add( 'D:\PhD\Study-I_Part_I\Textures\Apple.jpg')
map = viz.addTexQuad(viz.SCREEN, align = viz.TEXT_LEFT_CENTER, pos=mapPos, scale =mapScale)
map.texture(apple_i)
infoBox = vizinfo.InfoPanel('What object i am interested in?',fontSize=12,window=viz.MainWindow,margin=
(15.0,15.0),icon=False,align=viz.ALIGN_CENTER)
infoBox.setTitle( 'Question 1' )
Ball= infoBox.addLabelItem('', viz.addRadioButton('color'))
infoBox.addSeparator(padding=(100,100))
Apple = infoBox.addLabelItem('', viz.addRadioButton('color'))
submitButton=infoBox.addItem(viz.addButtonLabel('S ubmit'),align=viz.ALIGN_CENTER)
yield viztask.waitButtonUp(submitButton)

Jeff
11-17-2017, 04:41 AM
To force the texture quad over the info panel, set the quad's draw order to a higher number. Here's an example:

'''
Press 1 to set quad above
Press 2 to set quad below
'''

import viz
import vizinfo
import vizact

viz.go()

quad = viz.addTexQuad(parent=viz.ORTHO, scale=[100]*3)
quad.texture(viz.addTexture('lake3.jpg'))
quad.alignment(viz.ALIGN_CENTER_CENTER)
viz.link(viz.CenterCenter, quad)

info = vizinfo.InfoPanel(title='This is a vizinfo panel', align=viz.ALIGN_CENTER_CENTER,icon=False)

def setQuadAbove():
quad.drawOrder(10)

def setQuadBelow():
quad.drawOrder(-10)

vizact.onkeydown('1',setQuadAbove)
vizact.onkeydown('2',setQuadBelow)

Vishav
11-17-2017, 05:37 AM
Thanks a lot Jeff! It is working