problems with collision

can sombody tell me why this isn’t working, I am getting this error:

C:\Panda3D-1.6.2\mystuff>ppython loc.py
DirectStart: Starting the game.
Known pipe types:
  wglGraphicsPipe
(all display modules loaded.)
Assertion failed: !collider.is_empty() && collider.node()->is_of_type(CollisionN
ode::get_class_type()) at line 111 of c:\p\p3d\panda3d-1.6.2\panda\src\collide\c
ollisionTraverser.cxx
Traceback (most recent call last):
  File "loc.py", line 73, in <module>
    base.cTrav .addCollider(m, handler)
AssertionError: !collider.is_empty() && collider.node()->is_of_type(CollisionNod
e::get_class_type()) at line 111 of c:\p\p3d\panda3d-1.6.2\panda\src\collide\col
lisionTraverser.cxx

and this is my code in python:

import direct.directbase.DirectStart 
from pandac.PandaModules import * 
from direct.showbase import DirectObject 
from direct.task import Task 
from direct.actor import Actor 
from direct.interval.IntervalGlobal import * 
from direct.gui.OnscreenText import OnscreenText 
from direct.task.Task import Task 
import math 

#Load the first environment model 
m = loader.loadModel("models/teapot") 
m.reparentTo(render) 
m.setScale(0.25,0.25,0.25) 
m.setPos(-8,42,5) 
m.setH(m,-90) 

#Load the first environment model 
s = loader.loadModel("models/teapot") 
s.reparentTo(render) 
s.setScale(0.5,0.5,0.5) 
s.setPos(0,42,5)

# 
#Collision traverser: 
# 

base.cTrav = CollisionTraverser('traverser name') 



# 
segment = CollisionSegment(0, 0, 0, 0, 10, 0) 

cnodePath5 = m.attachNewNode(CollisionNode('cnode5')) 
cnodePath5.node().addSolid(segment) 

#cnodePath5.show() 

# 
sphere = CollisionSphere(0, 0, 0, 4) 

cnodePath = s.attachNewNode(CollisionNode('cnode1')) 
cnodePath.node().addSolid(sphere) 

#cnodePath.show() 

# 
#Collision handler: 
# 
handler = CollisionHandlerEvent()
handler.addInPattern('cnode5-into-cnode1')

class MyObject(DirectObject.DirectObject): 
    def __init__(self): 
        self.accept('cnode5-into-cnode1', self.handler) 
        
    def handler(self, entry): 
        print 'entry' 

# 
#Movement task: 
# 

def movementktask(task): 
    m.setPos(m,0,0.1,0) 
    return task.again 

taskMgr.add(movementktask, 'movement1') 


# 
base.cTrav .addCollider(m, handler) 
# 
h = MyObject() 
traverser()

run() 

I’m not sure what it is you’re trying to do, precisely, but the particular error is being caused because “m” is not a CollisionNode, it’s a model.

David

so if I would replace m by ‘cnode5’, it would work