WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   TypeError: Could not convert list item to float (https://forum.worldviz.com/showthread.php?t=3797)

new_horizon 06-16-2011 08:51 AM

TypeError: Could not convert list item to float
 
Hi All,

I have created a virtual environment whereby a photographic car approaches the observer viewpoint and the degree of expansion of the object on approach is manipulated according to a Psychophysical procedure.

I am now trying to insert some distracter motion and have so far been successful in inserting some pedestrians on the sidewalks. I have created some other cars by inserting quads and wrapping a car image around them. However, after inserting the necessary commands into the procedure - I get the error message "TypeError: Could not convert list item to float".

I understand that there is a lot of code in my script, so I have included only the parts where the error and where I created the object "vehicledummy2" is occuring for now...

## Create Dummy Car Left Facing Side ##
dummy2carsize = [3.2, 1.65] # [ height, width ]
cardummyleft = viz.addTexture('Van Right Facing.tif')
vehicledummy2 = viz.addTexQuad(viz.WORLD,viz.MainScene,1) # 1m sq quad
vehicledummy2.texture(cardummyleft)
vehicledummy2.setScale(dummy2carsize[0],dummy2carsize[1],1) # Size to car width & height
vehicledummy2.setEuler(90,0,0)
vehicledummy2.setPosition(outofview)
vehicledummy2.appearance(viz.TEXMODULATE)# ----------------------------------------------#
# MOVE THE OBJECT FOR THE SPEC'D TIME #
# ----------------------------------------------#

def render_ball1(on_switch, Loom_level):
global select,rng,plgit, mlgit,prob, nv, trialsplt,nv_p,sgn,sgn_p,reverse, X_motion,Obs_rotn, L_inc,Min_loom,Obj_sz,Obj_scale, T_exp, Z_dist,Z_far, Speed
global Vert_screen, Aspect, Z_observer, pixelcm, pixeldg,Lpixels,selectM, remove
object1.setPosition(xobs,yobs,Z_dist)
theta_start = math.atan(Obj_sz/Z_dist)
theta_final = theta_start + Loom_level*T_exp
Rescale = theta_final/theta_start # zero shift if not a descent trial
if on_switch == 0:
Rescale = 1.0
Size_shift = vizact.size(Rescale*Obj_scale[0],Rescale*Obj_scale[1],1,T_exp,viz.TIME)
# Calculate random side motion.
side = [-0.5, 0.5, -1, 1]
updn = [-0.5, 0.5, -1, 1]
random.shuffle(side); random.shuffle(updn);
X_shift = X_motion[select]*side[0] # Use observer rotn instead
Y_shift = Y_motion[select]*updn[0] # Use observer rotn instead
#Pos_shift=vizact.goto(0*X_shift,0*Y_shift,Z_dist, T_exp,viz.TIME)
#print X_shift,Y_shift,Z_dist
#motion = vizact.parallel(Size_shift,Pos_shift)
cross1.visible(viz.OFF)
time1=viz.tick()
object1.visible(viz.ON)
time2=viz.tick()
male = viz.add('vcc_male.cfg')
male.setPosition(xobs+3, 0, Z_observer+25)
male.setEuler(0,0,0)
male.state(2)
m_walk = vizact.goto(xobs+3, 0, Z_observer+26, 0.25, viz.TIME)
m_walking_sequence = vizact.sequence(m_walk, remove)
male.addAction(m_walking_sequence)
female = viz.add('vcc_female.cfg')
female.setEuler(180,0,0)
female.state(2)
female.setPosition(xobs+4, 0, Z_observer+28)
f_walk = vizact.goto(xobs+4, 0, Z_observer+27, 0.25, viz.TIME)
f_walking_sequence = vizact.sequence(f_walk, remove)
female.addAction(f_walking_sequence)
female2 = viz.add('vcc_female.cfg')
female2.setEuler(180,0,0)
female2.state(1)
female2.setPosition(xobs-15, 0, Z_observer+80)
f_walk2 = vizact.goto(xobs-15, 0, Z_observer+80, 0.25, viz.TIME)
f_walking_sequence2 = vizact.sequence(f_walk2, remove)
female2.addAction(f_walking_sequence2)
#Add the models
vehicledummy2set = vizact.goto(xobs-1, 0, Z_observer+10)
vehicledummy2move = vizact.goto(xobs-1, 0, Z_observer+10, 0.25, viz.TIME)
vehicledummy2sequence = vizact.goto(vehicledummy2set, vehicledummy2move, remove)
vehicledummy2.addAction(vehicledummy2sequence)
# if selectM == 0:
view.goto(xobs,yobs,Z_observer,T_exp,viz.TIME)
# if selectM == 1:
# view.spinto(side[0],updn[0],0,Obs_rotn,T_exp,viz.TIME)
time3=viz.tick()
object1.add(Size_shift)
time4=viz.tick()
# print time1,time2,time3,time4

Obviously a number of these variables have been defined earlier in the script - can anyone shed any light on why this error message might be surfacing?

Thanks

new_horizon 06-16-2011 08:54 AM

Apologies for double post - this post can be removed as I forgot to wrap the code to preserve indentation!

farshizzo 06-16-2011 08:58 AM

You didn't post the entire Python error traceback. It will give you the exact line where the error is occurring. Somewhere on that line you are trying to convert an incompatible type to a floating point number.

new_horizon 06-20-2011 03:02 AM

Apologies, here is the full traceback...

Traceback (most recent call last):
File "C:\Program Files\WorldViz\Vizard30/python\viz.py", line 9091, in __update
self.nextAction(pool)
File "C:\Program Files\WorldViz\Vizard30/python\viz.py", line 9144, in nextAction
callAction.begin(newAction._obj_)
File "C:\Program Files\WorldViz\Vizard30/python\vizact.py", line 469, in begin
self.begin_node(object)
File "C:\Program Files\WorldViz\Vizard30/python\vizact.py", line 507, in begin_node
distance = vizmat.Distance(self.beginLoc,self.endLoc)
TypeError: Could not convert list item to float

Thanks


All times are GMT -7. The time now is 12:20 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC