/// <summary> /// Create the terrain for the road /// </summary> /// <param name="sections">The number of sections</param> /// <param name="tm">The terrain modifier</param> private void CreateCrossRoadsTerrain(int sections, TerrainModifier tm) { float couveSize = 2.5f; _roadNetworkNode.OrderRoads(); IMaterialFrequency materialFrequency = _roadNetworkNode.GetComponent <OverridableMaterialFrequency>(); if (materialFrequency == null) { materialFrequency = RoadConstructorHelper.MaterialFrequencySet; } RoadNetworkNode roadA, roadB, roadC, roadD; RoadCrossSection rA, rB, rC, rD; RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 0, _roadNetworkNode, out roadA, out rA); RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 1, _roadNetworkNode, out roadB, out rB); RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 2, _roadNetworkNode, out roadC, out rC); RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 3, _roadNetworkNode, out roadD, out rD); int connectionSet = IntersectionManager.Instance.AddLinkedIntersecions(rA, rB, rC, rD); DrawDetailsCrossRoad drs = new DrawDetailsCrossRoad(connectionSet, _roadNetworkNode, RoadConstructorHelper.GetMainMaterial(materialFrequency)); drs.ModifyTerrain(_roadNetworkNode.BuildData, tm); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 0); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 1); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 2); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 3); }
/// <summary> /// Add a cross road section /// </summary> /// <param name="connectionSet">The connection index</param> /// <param name="roadNetworkNode">THe master node for the cross road</param> /// <param name="materialName">The name of the material to use</param> internal void AddCrossRoad(int connectionSet, RoadNetworkNode roadNetworkNode, string materialName) { DrawDetailsCrossRoad drs = new DrawDetailsCrossRoad(connectionSet, roadNetworkNode, materialName); _drawDetails.Add(drs); }