public InternalRoadJunctionEdge( Factories.Factories factories, RoadJunctionBlock roadJunctionBlock, int index ) : base( factories, Styles.NormalStyle, roadJunctionBlock ) { this._vertexContainer = new InternalRoadJunctionEdgeVertexContainer( this ); this._parent = roadJunctionBlock; this.EdgeIndex = index; }
private IEnumerable<IAction> Convert( RoadJunctionBlock control ) { yield return Actions.CreateControl( control.Id, () => new RoadJunctionBlock( Is.Ioc<Factories.Factories>(), Is.Const( control.Location ) ) ); yield return SetProperties<Vector2>.Create<RoadJunctionBlock>( control.Id, () => control.LeftTop.Location ); yield return SetProperties<Vector2>.Create<RoadJunctionBlock>( control.Id, () => control.RightTop.Location ); yield return SetProperties<Vector2>.Create<RoadJunctionBlock>( control.Id, () => control.RightBottom.Location ); yield return SetProperties<Vector2>.Create<RoadJunctionBlock>( control.Id, () => control.LeftBottom.Location ); if ( control.Connector.LeftEdge != null ) { yield return Actions.Call<RoadJunctionBlock>( control.Id, () => control.Connector.ConnectStartOn( Is.Control( control.Connector.LeftEdge ), Is.Const( EdgeType.Left ) ) ); } if ( control.Connector.RightEdge != null ) { yield return Actions.Call<RoadJunctionBlock>( control.Id, () => control.Connector.ConnectStartOn( Is.Control( control.Connector.RightEdge ), Is.Const( EdgeType.Right ) ) ); } if ( control.Connector.TopEdge != null ) { yield return Actions.Call<RoadJunctionBlock>( control.Id, () => control.Connector.ConnectStartOn( Is.Control( control.Connector.TopEdge ), Is.Const( EdgeType.Top ) ) ); } if ( control.Connector.BottomEdge != null ) { yield return Actions.Call<RoadJunctionBlock>( control.Id, () => control.Connector.ConnectStartOn( Is.Control( control.Connector.BottomEdge ), Is.Const( EdgeType.Bottom ) ) ); } }
public void ConnectWithJunction( RoadJunctionBlock junction, int edge ) { this.JunctionEdge = junction.JunctionEdges[ edge ]; this.JunctionEdge.StartPoint.Translated.Subscribe( s => this._owner.Edge.EndPoint.SetLocation( s.Control.Location ) ); this.JunctionEdge.EndPoint.Translated.Subscribe( s => this._owner.Edge.StartPoint.SetLocation( s.Control.Location ) ); }
public LaneJunction( RoadJunctionBlock control, Func<LaneJunction, IRoadInformation> condutorFactory ) : base( control ) { this.JunctionBuilder = control; this._condutorFactory = condutorFactory; this._roadInformation = this._condutorFactory( this ); this._drawer = new LaneJunctionDrawer( this ); }
public IVertexContainer<VertexPositionColor> Create( RoadJunctionBlock roadJunctionBlock ) { var textureManager = this._container.Resolve<TextureManager>(); return new RoadJunctionBlockVertexContainer( roadJunctionBlock, Styles.NormalStyle ); }
public RoadJunctionBlockConnector( RoadJunctionBlock owner ) { this._owner = owner; }