def OnInit( self ): self.sg = basenodes.sceneGraph( children = [ basenodes.Transform( children = [ basenodes.Shape( geometry = basenodes.Box( size = (2,3,4), ), appearance=basenodes.Appearance( material = basenodes.Material( diffuseColor = (1,0,0), ), ), ), ], ), basenodes.PointLight( location=(5,6,5), ), ], ) self.time = Timer( duration = 32.0, repeating = 1 ) self.time.addEventHandler( "fraction", self.OnTimerFraction ) self.time.register (self) self.time.start () self.rotation = 0
def addCar(self, e): car = basenodes.Transform( children=[ # Car Body basenodes.Transform( translation=(-e.size.x / 2, -e.size.y / 2, -e.size.z / 2), children=[ basenodes.Shape( geometry=basenodes.Box(size=e.size, ), appearance=basenodes.Appearance( material=basenodes.Material( diffuseColor=(0.5, 0.0, 0.5), transparency=0.0, ), ), ), ], ), # Neighbours basenodes.Transform( translation=(-e.size.x / 2, -e.size.y / 2, -e.size.z / 2), children=[ basenodes.Shape( geometry=basenodes.Sphere( radius=e.d, slices=24, stacks=24, ), appearance=basenodes.Appearance( material=basenodes.Material( diffuseColor=(0.75, 1.0, 0.75), transparency=0.9, ), ), ), ], ), # View basenodes.Transform( translation=(-e.size.x / 2 + e.d / 2 * math.cos(e.a / 2 * (math.pi / 180)), -e.size.y / 2, -e.size.z / 2), rotation=(0.0, 0.0, 1.0, 90 / 180.0 * pi), children=[ basenodes.Shape( geometry=basenodes.Cone( bottomRadius=e.d * math.sin(e.a / 2 * (math.pi / 180)), height=e.d * math.cos(e.a / 2 * (math.pi / 180)), bottom=False, side=True, slices=24, stacks=24, ), appearance=basenodes.Appearance( material=basenodes.Material( diffuseColor=(0.5, 1.0, 0.5), transparency=0.75, ), ), ), ], ), ], ) self.sg.children.append(car) self.sg.regDefName(e.name, car) car.translation = (e.x, e.y, e.z)
def OnInit(self): # draw the ground surface self.cars = 0 self.returnValues = None # for FullScreen self.sg = basenodes.sceneGraph( children=[ basenodes.Transform( translation=(0, 0, -1), children=[ # Ground basenodes.Shape( geometry=basenodes.Box(size=(100, 100, 1), ), appearance=basenodes.Appearance( material=basenodes.Material( diffuseColor=(0.3, 0.3, 0.15), transparency=0.0, ), #texture = imagetexture.ImageTexture(url = ["traffic.png"]), ), ), # Road 1 basenodes.Transform( translation=(0, -2.5, 0), children=[ basenodes.Shape( geometry=basenodes.Box(size=(100, 2, 1.5), ), appearance=basenodes.Appearance( material=basenodes.Material( diffuseColor=(0.6, 0.6, 0.3), transparency=0.0, ), ), ), ], ), # Road 2 basenodes.Transform( translation=(0, 2.5, 0), children=[ basenodes.Shape( geometry=basenodes.Box(size=(100, 2, 1.5), ), appearance=basenodes.Appearance( material=basenodes.Material( diffuseColor=(0.6, 0.6, 0.3), transparency=0.0, ), ), ), ], ), ], ), # Light basenodes.PointLight(location=(-25, -25, 25), ), basenodes.DirectionalLight( ambientIntensity=2.5, intensity=1.5, color=(1, 1, 1), direction=(1, 1, -1), ), ], ) self.sg.regDefName('Ground', self.sg.children[0]) self.sg.getDEF('Ground').translation = (0.0, 0.0, -1.0) self.addTunnel() # self.addTrafficLight() # self.addCar() self.time = Timer(duration=32.0, repeating=1) self.time.addEventHandler("fraction", self.OnTimerFraction) self.time.register(self) self.time.start() self.rotation = 0.0