#1
|
|||
|
|||
Texturing a quad from within a class
So I'm trying to texture a quad bound to the screen from within a class.
Can anyone explain why this sample code works : Code:
image = viz.add('Textures/VialLabels/Inventory Image - WHITE.png') quad = viz.addTexQuad(viz.SCREEN,align=viz.TEXT_LEFT_BOTTOM,pos=(0,0,0)) quad.texture(image) quad.setScale(6,3,1) Code:
import viz class inventory(object): global bulkInventoryBins,medicationVials def __init__(self,contentsImage=""): self.obj = viz.add('box.wrl') self.obj.infoImage = contentsImage def showInfoImage(self): self.infoQuad = viz.addTexQuad(viz.SCREEN,align=viz.TEXT_LEFT_BOTTOM,pos=(0,0,0)) self.infoQuad.texture(self.obj.infoImage) self.infoQuad.setScale(6,3,1) def removeInfoImage(self): self.infoQuad.remove() A = inventory("Textures/VialLabels/Inventory Image - WHITE.png") A.showInfoImage() viz.go() |
#2
|
|||
|
|||
Clarification:
With the first piece of code, the quad appears, sized/positioned correctly, and with the texture applied. Also, "quad.remove()" will delete the quad. With the second piece of code, the quad appears, sized/positioned correctly, however, it remains white with no texture. Also, "self.infoQuad.remove()" doesn't seem to remove it. |
#3
|
|||
|
|||
In the second example you are not actually creating a texture object. You are just passing the string containing the filename to the texture command. Unfortunately, the texture command silently ignores this error. It will be modified in a future release to raise an exception in this case. Either way, you can fix this problem by modifying the line:
Code:
self.obj.infoImage = contentsImage Code:
self.obj.infoImage = viz.add(contentsImage) |
#4
|
|||
|
|||
Awesome, thanks. ? Are you the only developer on the forums? Haven't seen anything from Jeff or Gladsome in a while.
Any idea why the remove doesn't seem to be working right? |
#5
|
|||
|
|||
There should be other developers and support team members active on this forum.
Your sample code never actually calls the removeInfoImage command. I tried adding a call to that command and it seems to work fine. You will need to make sure it is called after showInfoImage since the infoQuad attribute will not have been created yet. |
#6
|
|||
|
|||
ah, thanks :-)
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Jumping to a class object from one of it's components | EnvisMJ | Vizard | 0 | 04-25-2011 12:22 PM |
Collision of an avatar with a quad | Frank Verberne | Vizard | 8 | 06-04-2008 10:44 AM |
quad buffered stereo? | halley | Vizard | 2 | 10-19-2005 01:28 PM |
method of a class instance not accepted as Callback | Gilliard | Vizard | 1 | 08-10-2005 06:49 PM |
texturing on-the-fly objects | vr_boyko | Vizard | 1 | 05-11-2005 06:06 PM |