/// <summary> /// Modifiy the terrain for the junction /// </summary> /// <param name="sections">The number of sections</param> /// <param name="tm">The terrain modifier</param> private void CreateJunctionsTerrain(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; RoadCrossSection rA, rB, rC; 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); int connectionSet = IntersectionManager.Instance.AddLinkedIntersecions(rA, rB, rC); RoadNetworkNode roadNetworkNode = _roadNetworkNode; string materialName = RoadConstructorHelper.GetMainMaterial(materialFrequency); DrawDetailsJunctionRoad drs = new DrawDetailsJunctionRoad(connectionSet, roadNetworkNode, materialName); drs.ModifyTerrain(_roadNetworkNode.BuildData, tm); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 0); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 1); RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 2); }
/// <summary> /// Add a junction road section /// </summary> /// <param name="connectionSet">The connection index</param> /// <param name="roadNetworkNode">THe master node for the junction</param> /// <param name="materialName">The name of the material to use</param> internal void AddJunctionRoad(int connectionSet, RoadNetworkNode roadNetworkNode, string materialName) { DrawDetailsJunctionRoad drs = new DrawDetailsJunctionRoad(connectionSet, roadNetworkNode, materialName); _drawDetails.Add(drs); }