PDA

View Full Version : error while setting material properties.


Chandan
10-25-2006, 08:13 AM
Hi,

I get the following error while trying to set material attributes like sethardness()

the function is called as follows an example code:

import viz
import vizmat

viz.go()

viz.translate(viz.HEAD_POS,0,5,-10)
viz.lookat(0,0,0)

ground = viz.add('ground.wrl')
ground.collideplane()

ball = viz.add('ball.wrl')
ball.collidesphere()
ball.sethardness(0.1)


ball.reset()
ground.reset()

ball.translate(0,10,0)
ball.scale(0.6,0.6,0.6)

viz.phys.enable()


When I try to run this code, I get the following error:


Scaling image 'worlds/yellow.GIF' from (640,400) to (512,512)
Traceback (most recent call last):
File "<string>", line 11, in ?
File "myproj.py", line 14, in ?
ball.sethardness(0.1)
AttributeError: 'VizChild' object has no attribute 'sethardness'
Scaling image 'worlds/blue.GIF' from (640,400) to (512,512)

Gladsomebeast
10-25-2006, 09:31 AM
setHardness is a method of VizPhysicsShape, not of VizNode/VizChild. Check the example again. In addition, the case of the letters in the method mater.


ball = viz.add('ball.wrl')
shape = ball.collideBox()
shape.setHardness(.5)


As we see here, setHardness is called on the object that returns from the collideBox() function. This is because you can have multiple collide shapes assosated with one node, such as the ball.

Check out this code to see multiple collide shapes:

box = viz.add('box.wrl')
box.collideBox()

ball = box.add('ball.wrl')
ball.scale(2,2,2)
ball.translate(0.5,-0.5,0)
box.collideSphere(pos=(0.5,-0.5,0))