Search Results for

    Show / Hide Table of Contents

    Class RnLineString

    線分群クラス. 頂点のリストを持つ

    Inheritance
    System.Object
    ARnPartsBase
    ARnParts<RnLineString>
    RnLineString
    Implements
    IReadOnlyList<Vector3>
    Inherited Members
    ARnPartsBase.DebugMyId
    ARnPartsBase.DebugMemo
    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()
    Namespace: PLATEAU.RoadNetwork.Structure
    Assembly: cs.temp.dll.dll
    Syntax
    public class RnLineString : ARnParts<RnLineString>

    Constructors

    RnLineString()

    Declaration
    public RnLineString()

    RnLineString(IEnumerable<RnPoint>)

    Declaration
    public RnLineString(IEnumerable<RnPoint> points)
    Parameters
    Type Name Description
    IEnumerable<RnPoint> points

    RnLineString(Int32)

    Declaration
    public RnLineString(int initialSize)
    Parameters
    Type Name Description
    System.Int32 initialSize

    Properties

    Count

    Declaration
    public int Count { get; }
    Property Value
    Type Description
    System.Int32

    IsValid

    Declaration
    public bool IsValid { get; }
    Property Value
    Type Description
    System.Boolean

    Item[Int32]

    Declaration
    public Vector3 this[int index] { get; set; }
    Parameters
    Type Name Description
    System.Int32 index
    Property Value
    Type Description
    Vector3

    Points

    Declaration
    public List<RnPoint> Points { get; }
    Property Value
    Type Description
    List<RnPoint>

    Methods

    AddFrontPoint(RnPoint)

    同じ点かどうかのチェック無しに追加する

    Declaration
    public void AddFrontPoint(RnPoint p)
    Parameters
    Type Name Description
    RnPoint p

    AddPoint(RnPoint)

    同じ点かどうかのチェック無しに追加する

    Declaration
    public void AddPoint(RnPoint p)
    Parameters
    Type Name Description
    RnPoint p

    AddPointFrontOrSkip(RnPoint, Single, Single, Single)

    先頭に点を追加する.

    1. 前の点が同じなら追加しない
    2. 追加した結果, 最初3点による二つの直線がほぼ同じ直線になる場合は中間点を削除する
    Declaration
    public void AddPointFrontOrSkip(RnPoint p, float distanceEpsilon = 0F, float degEpsilon = 0.5F, float midPointTolerance = 0.1F)
    Parameters
    Type Name Description
    RnPoint p
    System.Single distanceEpsilon

    距離誤差

    System.Single degEpsilon

    角度誤差(p0 -> p1 -> p2の角度が180±この値以内になるときp1を削除する

    System.Single midPointTolerance

    p0 -> p1 -> p2の3点があったときに、p0->p2の直線とp1の距離がこれ以下ならp1を削除する

    AddPointOrSkip(RnPoint, Single, Single, Single)

    後ろに点を追加する

    1. 後ろの点が同じなら追加しない
    2. 追加した結果, 最後3点による二つの直線がほぼ同じ直線になる場合は中間点を削除する
    Declaration
    public void AddPointOrSkip(RnPoint p, float distanceEpsilon = 0F, float degEpsilon = 0.5F, float midPointTolerance = 0.1F)
    Parameters
    Type Name Description
    RnPoint p
    System.Single distanceEpsilon

    距離誤差

    System.Single degEpsilon

    角度誤差(p0 -> p1 -> p2の角度が180±この値以内になるときp1を削除する

    System.Single midPointTolerance

    p0 -> p1 -> p2の3点があったときに、p0->p2の直線とp1の距離がこれ以下ならp1を削除する

    CalcLength()

    線分の長さを計算する

    Declaration
    public float CalcLength()
    Returns
    Type Description
    System.Single

    CalcLength(Single, Single)

    startPointIndex -> endPointIndexまでの長さを計算する

    Declaration
    public float CalcLength(float startPointIndex, float endPointIndex)
    Parameters
    Type Name Description
    System.Single startPointIndex
    System.Single endPointIndex
    Returns
    Type Description
    System.Single

    Clone(Boolean)

    自身のコピーを作成する. clonePoint : 頂点もコピーするかどうか

    Declaration
    public RnLineString Clone(bool cloneVertex)
    Parameters
    Type Name Description
    System.Boolean cloneVertex
    Returns
    Type Description
    RnLineString

    Create(IEnumerable<RnPoint>, Boolean)

    頂点リストから線分を生成する removeDuplicate : 重複する頂点を取り除くかのフラグ

    Declaration
    public static RnLineString Create(IEnumerable<RnPoint> vertices, bool removeDuplicate = true)
    Parameters
    Type Name Description
    IEnumerable<RnPoint> vertices
    System.Boolean removeDuplicate
    Returns
    Type Description
    RnLineString

    Create(IEnumerable<RnPoint>, Single, Single, Single)

    頂点リストから線分を生成する distanceEpsilon : 頂点間の距離がこの値以下の場合は同じ点とみなす degEpsilon : 3点が同一直線上にあるときの角度誤差. 180±degEpsilon以内の場合は中間点を削除する

    Declaration
    public static RnLineString Create(IEnumerable<RnPoint> vertices, float distanceEpsilon, float degEpsilon, float midPointTolerance)
    Parameters
    Type Name Description
    IEnumerable<RnPoint> vertices
    System.Single distanceEpsilon
    System.Single degEpsilon
    System.Single midPointTolerance
    Returns
    Type Description
    RnLineString

    Create(IEnumerable<Vector3>, Boolean)

    頂点リストから線分を生成する removeDuplicate : 重複する頂点を取り除くかのフラグ

    Declaration
    public static RnLineString Create(IEnumerable<Vector3> vertices, bool removeDuplicate = true)
    Parameters
    Type Name Description
    IEnumerable<Vector3> vertices
    System.Boolean removeDuplicate
    Returns
    Type Description
    RnLineString

    Equals(RnLineString, RnLineString)

    x/yが同じかどうか 参照一致だけでなく値一致でもtrue

    Declaration
    public static bool Equals(RnLineString x, RnLineString y)
    Parameters
    Type Name Description
    RnLineString x
    RnLineString y
    Returns
    Type Description
    System.Boolean

    GetEdgeNormal(Int32)

    頂点 startVertexIndex, startVertexIndex + 1で構成される辺の法線ベクトルを返す 上(Vector3.up)から見て反時計回りを向いている. 正規化済み

    Declaration
    public Vector3 GetEdgeNormal(int startVertexIndex)
    Parameters
    Type Name Description
    System.Int32 startVertexIndex
    Returns
    Type Description
    Vector3

    GetEnumerator()

    Declaration
    public IEnumerator<Vector3> GetEnumerator()
    Returns
    Type Description
    IEnumerator<Vector3>

    GetVertexNormal(Int32)

    頂点 vertexIndex -> vertexIndex, vertexIndex -> vertexIndex + 1の方向に対して 道の外側を向いている法線ベクトルの平均を返す.正規化済み.

    Declaration
    public Vector3 GetVertexNormal(int vertexIndex)
    Parameters
    Type Name Description
    System.Int32 vertexIndex
    Returns
    Type Description
    Vector3

    ReplacePoint(RnPoint, RnPoint)

    ポイントの入れ替え

    Declaration
    public int ReplacePoint(RnPoint oldPoint, RnPoint newPoint)
    Parameters
    Type Name Description
    RnPoint oldPoint
    RnPoint newPoint
    Returns
    Type Description
    System.Int32

    Split(Int32, Boolean, Func<Int32, Single>)

    自身をnum分割して返す. 分割できない(頂点空)の時は空リストを返す rateSelector : 分割線分の長さを取得する関数.numでちょうど1になるようにする必要がある. nullの場合は等分割. rateSel

    Declaration
    public List<RnLineString> Split(int num, bool insertNewPoint, Func<int, float> rateSelector = null)
    Parameters
    Type Name Description
    System.Int32 num
    System.Boolean insertNewPoint
    Func<System.Int32, System.Single> rateSelector
    Returns
    Type Description
    List<RnLineString>

    SplitByIndex(Single, out RnLineString, out RnLineString, Func<Vector3, RnPoint>)

    index指定で前半/後半に分割したLineStringを返す(非破壊)

    Declaration
    public bool SplitByIndex(float index, out RnLineString front, out RnLineString back, Func<Vector3, RnPoint> createPoint = null)
    Parameters
    Type Name Description
    System.Single index
    RnLineString front
    RnLineString back
    Func<Vector3, RnPoint> createPoint
    Returns
    Type Description
    System.Boolean

    Implements

    IReadOnlyList<>
    In This Article
    Back to top PLATEAU SDK for Unity