예제 #1
0
        public void CurveType(
            NodePosition startPosition1, RoadType startType1,
            NodePosition endPosition1, RoadType endType1,
            NodePosition startPosition2, RoadType startType2,
            NodePosition endPosition2, RoadType endType2,
            RoadTextureType expectedCurveType)
        {
            var start1 = new MapObject(NodePositions[startPosition1], 0, startType1, default);
            var end1   = new MapObject(NodePositions[endPosition1], 0, endType1, default);
            var start2 = new MapObject(NodePositions[startPosition2], 0, startType2, default);
            var end2   = new MapObject(NodePositions[endPosition2], 0, endType2, default);

            var template = new RoadTemplate("SideWalk3");

            var topology = new RoadTopology();

            topology.AddSegment(template, start1, end1);
            topology.AddSegment(template, start2, end2);

            topology.AlignOrientation();

            var curveNode       = topology.Nodes.Single(n => n.Edges.Count == 2);
            var actualCurveType = CurvedRoadSegment.ChooseCurveType(topology.Edges[0], topology.Edges[1], curveNode.Position);

            Assert.Equal(expectedCurveType, actualCurveType);
        }
예제 #2
0
        private void AssertCurveType(RoadTopologyNode node, RoadTextureType expectedCurveType)
        {
            var actualCurveType = CurvedRoadSegment.ChooseCurveType(node.Edges[0], node.Edges[1], node.Position);

            Assert.Equal(expectedCurveType, actualCurveType);
        }