Example #1
0
def buildGeometry():
    from OpenGLContext.scenegraph import basenodes
    return basenodes.sceneGraph(
        children = [
        basenodes.Transform(
            translation = (3,0,0),
            children = [
                basenodes.TouchSensor(),
                basenodes.Shape(
                    geometry = basenodes.Sphere( radius = 2 ),
                    appearance = basenodes.Appearance(
                        material = basenodes.Material( diffuseColor = (0,1,1))),
                ),
            ],
        ),
        basenodes.Transform(
            translation = (-3,2,-1),
            children = [
                basenodes.TouchSensor(),
                basenodes.Shape(
                    geometry = basenodes.Sphere( radius = 1 ),
                    appearance = basenodes.Appearance(
                        material = basenodes.Material( diffuseColor = (1,1,0))),
                ),
            ],
        ),

        basenodes.Transform(
            translation = (0,-2,2),
            children = [
                basenodes.TouchSensor(),
                basenodes.Shape(
                    geometry = basenodes.Sphere( radius = .25 ),
                    appearance = basenodes.Appearance(
                        material = basenodes.Material( diffuseColor = (0,1,0))),
                ),
            ],
        ),
    ])
Example #2
0
 def buildGeometry( self ):
     """Create some named geometry for selection"""
     objects = []
     while len(objects) < self.COUNT:
         p = random.random()*6-3, random.random()*6-3, random.random()*6-3
         c = (1,1,1)#random.random(), random.random(), random.random()
         s = random.random()/2.0
         t = basenodes.Transform(
             translation = p,
             children = [
                 basenodes.TouchSensor(),
                 basenodes.Shape(
                     geometry = basenodes.Sphere( radius = s ),
                     appearance = basenodes.Appearance(
                         material = basenodes.Material( diffuseColor = c),
                     ),
                 ),
             ],
         )
         objects.append( t)
     self.objects.children = objects
Example #3
0
 def addTrafficLight(self, e):
     # Traffic Light
     traffic = basenodes.Transform(
         children=[
             # Foot
             basenodes.Transform(
                 translation=(e.x, e.y, e.z + 1.5),
                 rotation=(1.0, 0.0, 0.0, 90 / 180.0 * pi),
                 children=[
                     basenodes.Shape(
                         geometry=basenodes.Cylinder(
                             height=3.5,
                             radius=0.2,
                             side=True,
                             top=False,
                             bottom=False,
                         ),
                         appearance=basenodes.Appearance(
                             material=basenodes.Material(
                                 diffuseColor=(0.5, 0.5, 0.5),
                                 transparency=0.0,
                             ), ),
                     ),
                 ],
             ),
             # Head
             basenodes.Transform(
                 translation=(e.x, e.y, e.z + 4.0),
                 children=[
                     basenodes.Shape(
                         geometry=basenodes.Sphere(radius=0.75, ),
                         appearance=basenodes.Appearance(
                             material=basenodes.Material(
                                 diffuseColor=(0.0, 1.0, 0.0),
                                 emissiveColor=(0.0, 1.0, 0.0),
                                 ambientIntensity=0.5,
                                 transparency=0.25,
                             ), ),
                     ),
                 ],
             ),
             # Light
             #                basenodes.Transform(
             #                    children = [
             #                        basenodes.SpotLight(
             #                            location= (8, -3, 4),
             #                            intensity = 1.0,
             #                            direction = (-1, -1, -1),
             #                            color = (0, 1, 0),
             #                            on = True,
             #                        ),
             #                        basenodes.PointLight(
             #                            location= (8, -3, 4),
             #                            intensity = 1.0,
             #                            color = (0, 1, 0),
             #                            on = True,
             #                            radius = 15
             #                        ),
             #                    ],
             #                ),
         ], )
     self.sg.children.append(traffic)
     self.sg.regDefName(e.name, traffic)
Example #4
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)