コード例 #1
0
    def __init__(self, mode, garden_cls, w, h):
        self.mode = mode
        self.w = w
        self.h = h
        self.r = (w**2 + h**2)**0.5 / 2

        self.victorious = False
        self.compost = 1000000
        self.ticks = 0
        self.garden = garden_cls(self)

        self.plants = []
        self.plant_index = PlantCoverageIndex()
        self.plant_tally = {}
        self.rebuild_plant_index()

        self.creatures = []
        self.creature_queues = dict([
            (creature_type, 0) for creature_type in self.garden.good_creatures
        ])
        self.creature_index = SpatialIndex()

        self.tagged_entity_index = defaultdict(list)

        self.garden.initial_setup()
        self.compost = self.garden.initial_compost
        self.count_creatures()
コード例 #2
0
    def __init__(self, in_stream, eye_position):
        for line in in_stream:
            if not line.isspace():
                s, g = SEARCH.search(line).groups()
                self.sky_emission = Vector3f_str(s).clamped(ZERO, MAX)
                self.ground_reflection = Vector3f_str(g).clamped(ZERO, ONE)
                self.triangles = []
                try:
                    for i in range(MAX_TRIANGLES):
                        self.triangles.append(Triangle(in_stream))
                except StopIteration:
                    pass
                self.emitters = [
                    triangle for triangle in self.triangles
                    if not triangle.emitivity.is_zero() and triangle.area > 0.0
                ]
                self.index = SpatialIndex(eye_position, None, self.triangles)

                break
コード例 #3
0
 def __init__(self, in_stream, eye_position):
     for l in in_stream:
         if type(l) == type(u""):
             line = l.encode('ascii', 'ignore')
         else:
             line = l
         if not line.isspace():
             s, g = SEARCH(line).groups()
             self.sky_emission = Vector3f(s).clamped(ZERO, MAX)
             self.ground_reflection = Vector3f(g).clamped(ZERO, ONE)
             self.triangles = []
             try:
                 for i in range(MAX_TRIANGLES):
                     self.triangles.append(Triangle(in_stream))
             except StopIteration:
                 pass
             self.emitters = [
                 triangle for triangle in self.triangles
                 if not triangle.emitivity.is_zero() and triangle.area > 0.0
             ]
             self.index = SpatialIndex(eye_position, self.triangles)
             self.get_intersection = self.index.get_intersection
             break