예제 #1
0
def test_pair_simple():
    geometry1 = Geometry(*get_simple_model1())
    geometry2 = Geometry(*get_simple_model2())
    sender = Sender()
    scanner = PairScanner(
        send=sender,
        geometry1=geometry1,
        geometry2=geometry2,
        action_radius=10.0,
        hit_tolerance=0.1,
        rotation2=None,
    )
    scanner.run()
    assert len(sender.connections) == 1
예제 #2
0
def test_pair_simple_rot():
    geometry1 = Geometry(*get_simple_model1())
    geometry2 = Geometry(*get_simple_model2())
    rot = Rotation.from_properties(-0.5*np.pi, [0, 1, 0], False)
    sender = Sender()
    scanner = PairScanner(
        send=sender,
        geometry1=geometry1,
        geometry2=geometry2,
        action_radius=10.0,
        hit_tolerance=0.1,
        rotation2=rot,
    )
    scanner.run()
    assert len(sender.connections) == 2
예제 #3
0
def test_triangle_simple():
    geometry1 = Geometry(*get_simple_model1())
    geometry2 = Geometry(*get_simple_model2())
    sender = Sender()
    scanner = TriangleScanner(
        send=sender,
        geometry1=geometry1,
        geometry2=geometry2,
        action_radius=10.0,
        hit_tolerance=0.1,
        allow_inversions=True,
        minimum_trianlge_area=0.001**2,
    )
    scanner.run()
    assert len(sender.connections) == 2
예제 #4
0
 def read_geometry(frame, geometry_index, connect_description,
                   repulse_description):
     coordinates = []
     connect_masks = []
     radii = []
     for child in frame.children:
         if isinstance(child, GLTransformationMixin) and \
            isinstance(child.transformation, Translation):
             is_connect, radius = get_parameters(
                 child, "connecting", geometry_index,
                 *connect_description)
             if is_connect:
                 coordinates.append(child.transformation.t)
                 connect_masks.append(True)
                 radii.append(radius)
             else:
                 is_repulse, radius = get_parameters(
                     child, "repulsive", geometry_index,
                     *repulse_description)
                 if is_repulse:
                     coordinates.append(child.transformation.t)
                     connect_masks.append(False)
                     radii.append(radius)
     return Geometry(
         numpy.array(coordinates, float),
         numpy.array(connect_masks, bool),
         numpy.array(radii, float),
     )
예제 #5
0
def test_pair_ego_precursor():
    geometry = Geometry(*get_precursor_model())
    sender = Sender()
    scanner = PairScanner(
        send=sender,
        geometry1=geometry,
        geometry2=None,
        action_radius=5.0,
        hit_tolerance=0.1,
        rotation2=None,
    )
    scanner.run()
예제 #6
0
def test_pair_ego_precursor_rot():
    geometry = Geometry(*get_precursor_model())
    rot = Rotation.from_properties(-0.5*np.pi, [-1, 1, 0], False)
    sender = Sender()
    scanner = PairScanner(
        send=sender,
        geometry1=geometry,
        geometry2=None,
        action_radius=10.0,
        hit_tolerance=0.1,
        rotation2=rot,
    )
    scanner.run()
예제 #7
0
def test_triangle_ego_precursor():
    geometry = Geometry(*get_precursor_model())
    sender = Sender()
    scanner = TriangleScanner(
        send=sender,
        geometry1=geometry,
        geometry2=None,
        action_radius=5.0,
        hit_tolerance=0.1,
        allow_inversions=True,
        minimum_trianlge_area=0.001**2,
    )
    scanner.run()