Class RnRoadEx
Inheritance
System.Object
RnRoadEx
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Assembly: cs.temp.dll.dll
Syntax
public static class RnRoadEx
Methods
CreateRoadGroup(RnRoad)
selfと隣接しているRoadをすべてまとめたRoadGroupを返す
Declaration
public static RnRoadGroup CreateRoadGroup(this RnRoad self)
Parameters
| Type |
Name |
Description |
| RnRoad |
self |
|
Returns
CreateRoadGroupOrDefault(RnRoad)
selfと隣接しているRoadをすべてまとめたRoadGroupを返す.
返せない場合はnullを返す
Declaration
public static RnRoadGroup CreateRoadGroupOrDefault(this RnRoad self)
Parameters
| Type |
Name |
Description |
| RnRoad |
self |
|
Returns
GetConnectedLanes(RnRoad, RnWay)
Declaration
public static IEnumerable<RnLane> GetConnectedLanes(this RnRoad self, RnWay border)
Parameters
Returns
| Type |
Description |
| IEnumerable<RnLane> |
|
GetLaneCrossPoints(RnRoad, LineSegment3D)
selfの全LinestringとlineSegmentの交点を取得する
Declaration
public static LineCrossPointResult GetLaneCrossPoints(this RnRoad self, LineSegment3D lineSegment)
Parameters
| Type |
Name |
Description |
| RnRoad |
self |
|
| LineSegment3D |
lineSegment |
|
Returns
| Type |
Description |
| LineCrossPointResult |
|
GetMergedSideWays(RnRoad, Nullable<RnDir>)
道路の両端のWayを取得する. dirが指定されている場合はその方向の車線だけで絞って返す.
dir = null道路全体の両端のWayを返す
dir = Left(Right). 左(右)車線だけみた両端のwayを返す
Declaration
public static IEnumerable<RnWay> GetMergedSideWays(this RnRoad self, RnDir? dir = null)
Parameters
| Type |
Name |
Description |
| RnRoad |
self |
|
| System.Nullable<RnDir> |
dir |
|
Returns
| Type |
Description |
| IEnumerable<RnWay> |
|
GetNeighborRoad(RnRoad, RnLaneBorderType)
borderTypeで指定した隣の道路(交差点)を取得する
Declaration
public static RnRoadBase GetNeighborRoad(this RnRoad self, RnLaneBorderType borderType)
Parameters
Returns
GetOppositeRoad(RnRoad, RnRoadBase)
selfのPrev/Nextのうち, otherじゃない方を返す.
両方ともotherじゃない場合は例外を投げる
Declaration
public static RnRoadBase GetOppositeRoad(this RnRoad self, RnRoadBase other)
Parameters
Returns
IsValidBorderAdjacentNeighbor(RnRoad, RnLaneBorderType, Boolean)
Declaration
public static bool IsValidBorderAdjacentNeighbor(this RnRoad self, RnLaneBorderType borderType, bool noBorderIsTrue)
Parameters
Returns
| Type |
Description |
| System.Boolean |
|
TryGetAdjustBorderSegment(RnRoad, RnLaneBorderType, out LineSegment3D)
roadのMergedSideWayから計算された進行方向に垂直な境界線を取得する
Declaration
public static bool TryGetAdjustBorderSegment(this RnRoad self, RnLaneBorderType borderType, out LineSegment3D adjustedBorderLeft2Right)
Parameters
| Type |
Name |
Description |
| RnRoad |
self |
|
| RnLaneBorderType |
borderType |
|
| LineSegment3D |
adjustedBorderLeft2Right |
垂直な境界線(左車線->右車線の方向)
|
Returns
| Type |
Description |
| System.Boolean |
|
TryGetNearestDistanceToSideWays(RnRoad, RnLineString, out Single)
selfの両端のWayとlineの最も近い点との距離をdistanceに格納する
その結果, lineがselfの内部を通っているときは, lineに幅を持たせてもselfのLane内をはみ出さないような最大の幅となる
Declaration
public static bool TryGetNearestDistanceToSideWays(this RnRoad self, RnLineString line, out float distance)
Parameters
Returns
| Type |
Description |
| System.Boolean |
|
TryGetVerticalSliceSegment(RnRoad, RnLaneBorderType, Single, out LineSegment3D)
selfのborderSide側からborderOffsetだけ離れた位置に道路を垂直に分割する線分を計算する
Declaration
public static bool TryGetVerticalSliceSegment(this RnRoad self, RnLaneBorderType borderSide, float borderOffset, out LineSegment3D segment)
Parameters
| Type |
Name |
Description |
| RnRoad |
self |
|
| RnLaneBorderType |
borderSide |
|
| System.Single |
borderOffset |
|
| LineSegment3D |
segment |
|
Returns
| Type |
Description |
| System.Boolean |
|
TryMerge2NeighborIntersection(RnRoad, RnLaneBorderType)
Declaration
public static bool TryMerge2NeighborIntersection(this RnRoad self, RnLaneBorderType borderType)
Parameters
Returns
| Type |
Description |
| System.Boolean |
|