Пример #1
0
 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
Пример #2
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)
Пример #3
0
    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