Esempio n. 1
0
  def test_ndc_to_screen_exception_screen_dimensions_raised(self):
    """Tests that an exception is raised when `screen_dimensions` is not strictly positive."""
    point = np.random.uniform(size=(3,))
    lower_left_corner = np.random.uniform(size=(2,))
    screen_dimensions = np.random.uniform(-1.0, 0.0, size=(2,))
    near = np.random.uniform(1.0, 10.0, size=(1,))
    far = near + np.random.uniform(0.1, 1.0, size=(1,))

    with self.subTest("negative_screen_dimensions"):
      with self.assertRaises(tf.errors.InvalidArgumentError):
        self.evaluate(
            glm.ndc_to_screen(point, lower_left_corner, screen_dimensions, near,
                              far))

    with self.subTest("zero_screen_dimensions"):
      with self.assertRaises(tf.errors.InvalidArgumentError):
        self.evaluate(
            glm.ndc_to_screen(point, lower_left_corner, np.array((0.0, 0.0)),
                              near, far))
Esempio n. 2
0
  def test_ndc_to_screen_exception_far_raised(self):
    """Tests that an exception is raised if `far` is not greater than `near`."""
    point = np.random.uniform(size=(3,))
    lower_left_corner = np.random.uniform(size=(2,))
    screen_dimensions = np.random.uniform(1.0, 2.0, size=(2,))
    near = np.random.uniform(1.0, 10.0, size=(1,))
    far = near + np.random.uniform(-1.0, 0.0, size=(1,))

    with self.assertRaises(tf.errors.InvalidArgumentError):
      self.evaluate(
          glm.ndc_to_screen(point, lower_left_corner, screen_dimensions, near,
                            far))
Esempio n. 3
0
  def test_ndc_to_screen_preset(self):
    """Tests that ndc_to_screen generates expected results."""
    point = ((1.1, 2.2, 3.3), (5.1, 5.2, 5.3))
    lower_left_corner = ((6.4, 4.8), (0.0, 0.0))
    screen_dimensions = ((640.0, 480.0), (300.0, 400.0))
    near = ((1.0,), (11.0,))
    far = ((10.0,), (100.0,))

    pred = glm.ndc_to_screen(point, lower_left_corner, screen_dimensions, near,
                             far)

    gt = ((678.40002441, 772.79998779, 20.34999847), (915.0, 1240.0,
                                                      291.3500061))
    self.assertAllClose(pred, gt)
Esempio n. 4
0
  def test_ndc_to_screen_preset(self):
    """Tests that ndc_to_screen generates expected results."""
    point = ((0.0, 0.0, 0.0), (1.0, 1.0, 0.0), (-1.0, -1.0, 1.0), (1.0, -1.0,
                                                                   -1.0))
    lower_left_corner = ((0.0, 0.0), (0.0, 0.0), (3.0, 4.0), (4.0, 3.0))
    screen_dimensions = ((10.0, 10.0), (5.0, 10.0), (20.0, 20.0), (15.0, 35.0))
    near = ((1.0,), (1.0,), (2.0,), (3.0,))
    far = ((11.0,), (11.0,), (20.0,), (4.0,))

    pred = glm.ndc_to_screen(point, lower_left_corner, screen_dimensions, near,
                             far)

    gt = ((5.0, 5.0, 6.0), (5.0, 10.0, 6.0), (3.0, 4.0, 20.0), (19.0, 3.0, 3.0))
    self.assertAllClose(pred, gt)