Esempio n. 1
0
	def test_horizontal_Plane(self):
		from lepton.domain import Plane

		for Ny in (1, -1, 50, -50):
			# Simple horizontal plane
			plane = Plane((0,0,0), (0,Ny,0))
			self.assertEqual(plane.generate(), (0,0,0))
			self.failUnless((0,0,0) in plane)
			self.failIf((0, Ny, 0) in plane)
			self.failUnless((0, -Ny, 0) in plane)
			
			# Perpendicular intersection
			p, N = plane.intersect((1, 1, 4), (1, -1, 4))
			self.assertVector(p, (1, 0, 4))
			self.assertVector(N, (0, 1, 0))
			p, N = plane.intersect((-5, -2, 20), (-5, 5, 20))
			self.assertVector(p, (-5, 0, 20))
			self.assertVector(N, (0, -1, 0))

			# Oblique intersection
			plane = Plane((20,5,3000), (0,Ny,0))
			p, N = plane.intersect((0, 7, 0), (4, 3, -4))
			self.assertVector(p, (2, 5, -2))
			self.assertVector(N, (0, 1, -0))

			# No intersection
			self.assertEqual(
				plane.intersect((40, 8, 20), (40, 6, -4)), (None, None))
			self.assertEqual(
				plane.intersect((0, 0, 0), (3, 4, 10)), (None, None))

			# Line in plane
			self.assertEqual(
				plane.intersect((-10, 5, 0), (3, 5, 10)), (None, None))
Esempio n. 2
0
 def test_plane_closest_pt_to(self):
     from lepton.domain import Plane
     from lepton.particle_struct import Vec3
     line = Plane((0, 0, 0), (0, 1, 0))
     for point, closest, normal in [
         ((0, 1, 0), (0, 0, 0), (0, 1, 0)),
         ((5, 0, 5), (5, 0, 5), (0, 1, 0)),
         ((10, -1, 0), (10, 0, 0), (0, -1, 0)),
     ]:
         p, N = line.closest_point_to(point)
         self.assertVector(p, closest)
         self.assertVector(N, normal)
Esempio n. 3
0
	def test_plane_closest_pt_to(self):
		from lepton.domain import Plane
		from lepton.particle_struct import Vec3
		line = Plane((0, 0, 0), (0, 1, 0))
		for point, closest, normal in [
			((0, 1, 0), (0, 0, 0), (0, 1, 0)),
			((5, 0, 5), (5, 0, 5), (0, 1, 0)),
			((10, -1, 0), (10, 0, 0), (0, -1, 0)),
			]:
			p, N = line.closest_point_to(point)
			self.assertVector(p, closest)
			self.assertVector(N, normal)
Esempio n. 4
0
 def test_oblique_Plane(self):
     from lepton.domain import Plane
     from lepton.particle_struct import Vec3
     normal = Vec3(3, 4, 5).normalize()
     plane = Plane((0, 0, 0), normal)
     self.assertEqual(tuple(plane.point), (0, 0, 0))
     self.assertEqual(tuple(plane.normal), tuple(normal))
     self.failIf(normal in plane)
     self.failUnless(plane.point in plane)
     self.failUnless(-normal in plane)
     p, N = plane.intersect((0, 1, 0), (0, -1, 0))
     self.assertVector(p, (0, 0, 0))
     self.assertVector(N, normal)
     p, N = plane.intersect((0, -1, 0), (0, 1, 0))
     self.assertVector(p, (0, 0, 0))
     self.assertVector(N, -normal)
Esempio n. 5
0
	def test_oblique_Plane(self):
		from lepton.domain import Plane
		from lepton.particle_struct import Vec3
		normal = Vec3(3,4,5).normalize()
		plane = Plane((0,0,0), normal)
		self.assertEqual(tuple(plane.point), (0, 0, 0))
		self.assertEqual(tuple(plane.normal), tuple(normal))
		self.failIf(normal in plane)
		self.failUnless(plane.point in plane)
		self.failUnless(-normal in plane)
		p, N = plane.intersect((0,1,0), (0,-1,0))
		self.assertVector(p, (0,0,0))
		self.assertVector(N, normal)
		p, N = plane.intersect((0,-1,0), (0,1,0))
		self.assertVector(p, (0,0,0))
		self.assertVector(N, -normal)
Esempio n. 6
0
    def test_horizontal_Plane(self):
        from lepton.domain import Plane

        for Ny in (1, -1, 50, -50):
            # Simple horizontal plane
            plane = Plane((0, 0, 0), (0, Ny, 0))
            self.assertEqual(plane.generate(), (0, 0, 0))
            self.failUnless((0, 0, 0) in plane)
            self.failIf((0, Ny, 0) in plane)
            self.failUnless((0, -Ny, 0) in plane)

            # Perpendicular intersection
            p, N = plane.intersect((1, 1, 4), (1, -1, 4))
            self.assertVector(p, (1, 0, 4))
            self.assertVector(N, (0, 1, 0))
            p, N = plane.intersect((-5, -2, 20), (-5, 5, 20))
            self.assertVector(p, (-5, 0, 20))
            self.assertVector(N, (0, -1, 0))

            # Oblique intersection
            plane = Plane((20, 5, 3000), (0, Ny, 0))
            p, N = plane.intersect((0, 7, 0), (4, 3, -4))
            self.assertVector(p, (2, 5, -2))
            self.assertVector(N, (0, 1, -0))

            # No intersection
            self.assertEqual(plane.intersect((40, 8, 20), (40, 6, -4)),
                             (None, None))
            self.assertEqual(plane.intersect((0, 0, 0), (3, 4, 10)),
                             (None, None))

            # Line in plane
            self.assertEqual(plane.intersect((-10, 5, 0), (3, 5, 10)),
                             (None, None))
Esempio n. 7
0
		size=(6,6,0),
		velocity=(0,-10,20),
	),
	color=[(1,0,0), (0,1,0), (0,0,1), (1,1,0), (1,0.5,0), (0.5,0,1)],
	rotation=[(0,0,0.3), (0,0,-0.3)],
	position=AABox((-100, 70, -100), (100, 70, -300)),
	deviation=Particle(
		color=(0.1, 0.1, 0.1, 0),
		rotation=(0,0,0.1),
		velocity=(0,5,0),
	)
)

default_system.add_global_controller(
	Movement(),
	Collector(Plane((0, 0, 0), (0, 0, -1))),
	Fader(fade_in_end=15.0),
)

font = pyglet.font.load(size=72)
# Try to force all glyphs into a single texture
font.texture_width = font.texture_height = 1024
letter_textures = font.get_glyphs(string.ascii_lowercase)
texturizer = SpriteTexturizer(
	letter_textures[0].texture.id,
	coords=[tex.tex_coords for tex in letter_textures],
	aspect_adjust_width=True)

group = ParticleGroup(controllers=[emitter],
	renderer=BillboardRenderer(texturizer))