コード例 #1
0
ファイル: renderSystem.py プロジェクト: olinord/GameSandbox
	def AdjustView(self, eyePosition, targetPosition, upVector):
		eye = Vector3(eyePosition)
		target = Vector3(targetPosition)
		up = Vector3(upVector)
		zaxis = vector.normalise(eye - target)    # The "forward" vector.
		xaxis = vector.normalise(vector3.cross(up, zaxis)) # The "right" vector.
		yaxis = vector3.cross(zaxis, xaxis)     # The "up" vector.

		# Create a 4x4 view matrix from the right, up, forward and eye position vectors
		self.view.r1 = [xaxis[0], yaxis[0], zaxis[0], 0]
		self.view.r2 = [xaxis[1], yaxis[1], zaxis[1], 0]
		self.view.r3 = [xaxis[2], yaxis[2], zaxis[2], 0]
		self.view.r4 =[-vector3.dot( xaxis, eye ), -vector3.dot( yaxis, eye ), -vector3.dot( zaxis, eye ),  1 ]

		return self.view
コード例 #2
0
ファイル: test_vector3.py プロジェクト: RazerM/Pyrr
    def test_operators_vector3(self):
        v1 = Vector3()
        v2 = Vector3([1.,2.,3.])

        # add
        self.assertTrue(np.array_equal(v1 + v2, [1.,2.,3.]))

        # subtract
        self.assertTrue(np.array_equal(v1 - v2, [-1.,-2.,-3.]))

        # multiply
        self.assertTrue(np.array_equal(v1 * v2, [0.,0.,0.]))

        # divide
        self.assertTrue(np.array_equal(v1 / v2, [0.,0.,0.]))

        # or
        self.assertTrue(np.array_equal(v1 | v2, vector3.dot(v1, v2)))

        # xor
        self.assertTrue(np.array_equal(v1 ^ v2, vector3.cross(v1, v2)))

        # ==
        self.assertTrue(Vector3() == Vector3())
        self.assertFalse(Vector3() == Vector3([1.,1.,1.]))

        # !=
        self.assertTrue(Vector3() != Vector3([1.,1.,1.]))
        self.assertFalse(Vector3() != Vector3())
コード例 #3
0
    def test_operators_vector3(self):
        v1 = Vector3()
        v2 = Vector3([1.,2.,3.])

        # add
        self.assertTrue(np.array_equal(v1 + v2, [1.,2.,3.]))

        # subtract
        self.assertTrue(np.array_equal(v1 - v2, [-1.,-2.,-3.]))

        # multiply
        self.assertTrue(np.array_equal(v1 * v2, [0.,0.,0.]))

        # divide
        self.assertTrue(np.array_equal(v1 / v2, [0.,0.,0.]))

        # or
        self.assertTrue(np.array_equal(v1 | v2, vector3.dot(v1, v2)))

        # xor
        self.assertTrue(np.array_equal(v1 ^ v2, vector3.cross(v1, v2)))

        # ==
        self.assertTrue(Vector3() == Vector3())
        self.assertFalse(Vector3() == Vector3([1.,1.,1.]))

        # !=
        self.assertTrue(Vector3() != Vector3([1.,1.,1.]))
        self.assertFalse(Vector3() != Vector3())
コード例 #4
0
ファイル: test_vector3.py プロジェクト: RazerM/Pyrr
    def test_bitwise(self):
        v1 = Vector3([1.,0.,0.])
        v2 = Vector3([0.,1.,0.])

        # xor (cross)
        self.assertTrue(np.array_equal(v1 ^ v2, vector3.cross(v1, v2)))

        # or (dot)
        self.assertTrue(np.array_equal(v1 | v2, vector3.dot(v1, v2)))
コード例 #5
0
    def test_bitwise(self):
        v1 = Vector3([1.,0.,0.])
        v2 = Vector3([0.,1.,0.])

        # xor (cross)
        self.assertTrue(np.array_equal(v1 ^ v2, vector3.cross(v1, v2)))

        # or (dot)
        self.assertTrue(np.array_equal(v1 | v2, vector3.dot(v1, v2)))
コード例 #6
0
ファイル: test_vector.py プロジェクト: adamlwgriffiths/Pyrr
 def test_dot_batch(self):
     result = vector3.dot([
         [1.,0.,0.],
         [0.,1.,0.],
         [.2,.2,0.]
     ],[
         [0.,1.,0.],
         [0.,1.,0.],
         [2.,-.2,0.]
     ])
     expected = [0.,1.,0.36]
     np.testing.assert_almost_equal(result, expected, decimal=5)
コード例 #7
0
ファイル: test_vector.py プロジェクト: rjsadaye/cse574
 def test_dot_batch(self):
     result = vector3.dot([
         [1.,0.,0.],
         [0.,1.,0.],
         [.2,.2,0.]
     ],[
         [0.,1.,0.],
         [0.,1.,0.],
         [2.,-.2,0.]
     ])
     expected = [0.,1.,0.36]
     np.testing.assert_almost_equal(result, expected, decimal=5)
コード例 #8
0
ファイル: test_vector3.py プロジェクト: rtorresca/Pyrr
 def test_dot_angle(self):
     result = vector3.dot([.2, .2, 0.], [2., -.2, 0.])
     np.testing.assert_almost_equal(result, 0.36, decimal=5)
コード例 #9
0
ファイル: test_vector3.py プロジェクト: rtorresca/Pyrr
 def test_dot_parallel(self):
     result = vector3.dot([0., 1., 0.], [0., 1., 0.])
     np.testing.assert_almost_equal(result, 1.0, decimal=5)
コード例 #10
0
ファイル: test_vector3.py プロジェクト: rtorresca/Pyrr
 def test_dot_adjacent(self):
     result = vector3.dot([1., 0., 0.], [0., 1., 0.])
     np.testing.assert_almost_equal(result, 0.0, decimal=5)
コード例 #11
0
ファイル: test_vector3.py プロジェクト: gamedevtech/Pyrr
 def test_dot_angle(self):
     result = vector3.dot([.2,.2,0.], [2.,-.2,0.])
     np.testing.assert_almost_equal(result, 0.36, decimal=5)
コード例 #12
0
ファイル: test_vector3.py プロジェクト: gamedevtech/Pyrr
 def test_dot_parallel(self):
     result = vector3.dot([0.,1.,0.], [0.,1.,0.])
     np.testing.assert_almost_equal(result, 1.0, decimal=5)
コード例 #13
0
ファイル: test_vector3.py プロジェクト: gamedevtech/Pyrr
 def test_dot_adjacent(self):
     result = vector3.dot([1.,0.,0.], [0.,1.,0.])
     np.testing.assert_almost_equal(result, 0.0, decimal=5)