Link appearance の設定方法 - crest-cassia/CrowdWalk GitHub Wiki
Link appearance ファイルを使ってリンクの表示形式を変更することが出来ます。
手順:
- プロパティファイルが存在するディレクトリに Link appearance ファイルを作成します。
- プロパティファイルに Link appearance の設定を追加します。
Link appearance ファイルの記述方法
- JSON 形式で記述します。
- ルートの要素は配列です。その中に複数の連想配列を記述します。
- 連想配列には tag、2D_View、3D_View を記述し、これで一つの定義となります。
- tag には、この定義を適用するリンクを決めるためのキーワードを設定します。このキーワードとリンクタグが以下のルールで照合されます。
- キーワードが "文字列" の場合にはタグに "文字列" が含まれていれば該当します。(部分一致)
- キーワードが "/正規表現/" の場合にはタグがその正規表現とマッチすれば該当します。
- キーワードが "*" の場合にはすべてに該当します。
- 2D_View には 2D シミュレーションビューアで使用するリンクの形状を設定します。
- className にはクラス名を設定します。
- parameters には初期設定用のパラメータを設定します。
- 3D_View には 3D シミュレーションビューアで使用するリンクの形状を設定します。
- className にはクラス名を設定します。
- parameters には初期設定用のパラメータを設定します。
- className に不適切な値を設定すると "Link appearance file error: invalid className" や "java.lang.ClassCastException" が発生して CrowdWalk がエラー終了します。
- 旧書式(タグ名: { 設定内容 })での記述は非推奨になりました。
className 一覧
項目 | className | |
---|---|---|
2D_View | ActualWidth2D | 実際の幅で表示する |
FixedWidth2D | 指定の幅で表示する | |
SolidLine2D | 細い実線で表示する | |
3D_View | ActualWidth3D | 実際の幅で表示する |
FixedWidth3D | 指定の幅で表示する | |
SolidLine3D | 細い実線で表示する |
parameters 一覧
設定項目 | 値 | 意味 | |
---|---|---|---|
width | 実数 | リンクの表示幅(m) | FixedWidth2D/FixedWidth3Dでのみ意味を持ちます |
color | BLACK, BLACK2, GRAY, GRAY2, LIGHTGRAY, RED, GREEN, BLUE, DARKBLUE, LIGHTBLUE, SLATEBLUE, TURQUOISE, YELLOW, WHITE, PINK, LIGHTB, APINK, ALIGHTB, ARED, PURPLE, PRED, BACKGROUND_3D_COLOR, DEFAULT_LINK_COLOR, DEFAULT_AGENT_COLOR | 色名 | 2D_Viewと3D_Viewでは色味が少し異なります |
transparency | 0.0~1.0 | 透明度 | 1.0 で完全に透明 |
method | filling | 内側を塗り潰す表示スタイル | SolidLine3Dでは意味を持ちません |
bordering | リンクの幅に沿って2本の実線を引く表示スタイル | SolidLine3Dでは意味を持ちません |
※使用されないパラメータを設定しても無視されます。
Link appearance ファイルの記述例
[
{
"tag" : "*",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "DEFAULT_LINK_COLOR",
"transparency" : 0.7,
"method" : "bordering"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "DEFAULT_LINK_COLOR",
"transparency" : 0.0,
"method" : "bordering"
}
}
}
]
プロパティファイルの設定方法
link_appearance_file 項目に Link appearance ファイルのパスを指定します。
"link_appearance_file" : "link_appearance.json",
2D シミュレーションビューアのスクリーンショット(上記の記述例を適用)
標準の設定ファイル
標準形式で表示するための設定ファイルが "CrowdWalk/crowdwalk/src/main/resources/link_appearance.json" です。
Link appearance ファイルを使用しない場合、または使用しても適用されなかったリンクには標準の設定が適用されます。
標準の設定ファイルの内容:
[
{
"tag" : "STRUCTURE",
"2D_View" : {
"className" : "FixedWidth2D",
"parameters" : {
"width" : 5.0,
"color" : "WHITE",
"transparency" : 0.245,
"method" : "filling"
}
},
"3D_View" : {
"className" : "FixedWidth3D",
"parameters" : {
"width" : 5.0,
"color" : "WHITE",
"transparency" : 0.245,
"method" : "filling"
}
}
},
{
"tag" : "FLOOR",
"2D_View" : {
"className" : "FixedWidth2D",
"parameters" : {
"width" : 5.0,
"color" : "GRAY",
"transparency" : 0.95,
"method" : "filling"
}
},
"3D_View" : {
"className" : "FixedWidth3D",
"parameters" : {
"width" : 5.0,
"color" : "GRAY",
"transparency" : 0.95,
"method" : "filling"
}
}
},
{
"tag" : "HIGHWAY",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "WHITE",
"transparency" : 0.2525,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "WHITE",
"transparency" : 0.2525,
"method" : "filling"
}
}
},
{
"tag" : "MAINROAD",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "GRAY",
"transparency" : 0.7525,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "GRAY",
"transparency" : 0.7525,
"method" : "filling"
}
}
},
{
"tag" : "RAILWAY",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "GRAY",
"transparency" : 0.2525,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "GRAY",
"transparency" : 0.2525,
"method" : "filling"
}
}
},
{
"tag" : "BRIDGE",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "GRAY",
"transparency" : 0.4525,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "GRAY",
"transparency" : 0.4525,
"method" : "filling"
}
}
},
{
"tag" : "FRAME",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "YELLOW",
"transparency" : 0.2525,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "YELLOW",
"transparency" : 0.2525,
"method" : "filling"
}
}
},
{
"tag" : "ONE-WAY-FORWARD",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "PURPLE",
"transparency" : 0.5,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "PURPLE",
"transparency" : 0.5,
"method" : "filling"
}
}
},
{
"tag" : "ONE-WAY-BACKWARD",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "LIGHTBLUE",
"transparency" : 0.25,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "LIGHTBLUE",
"transparency" : 0.25,
"method" : "filling"
}
}
},
{
"tag" : "ONEWAY",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "ARED",
"transparency" : 0.7525,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "ARED",
"transparency" : 0.7525,
"method" : "filling"
}
}
},
{
"tag" : "ROAD-CLOSED",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "RED",
"transparency" : 0.25,
"method" : "filling"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "RED",
"transparency" : 0.25,
"method" : "filling"
}
}
},
{
"tag" : "BORDERING",
"2D_View" : {
"className" : "ActualWidth2D",
"parameters" : {
"color" : "DEFAULT_LINK_COLOR",
"transparency" : 0.7,
"method" : "bordering"
}
},
"3D_View" : {
"className" : "ActualWidth3D",
"parameters" : {
"color" : "DEFAULT_LINK_COLOR",
"transparency" : 0.0,
"method" : "bordering"
}
}
},
{
"tag" : "*",
"2D_View" : {
"className" : "SolidLine2D",
"parameters" : {
"color" : "DEFAULT_LINK_COLOR",
"transparency" : 0.7
}
},
"3D_View" : {
"className" : "SolidLine3D",
"parameters" : {
"color" : "DEFAULT_LINK_COLOR",
"transparency" : 0.0
}
}
}
]
開発者向け情報
2D_View クラスの作成
2D_View のクラスは CrowdWalk/crowdwalk/src/main/java/nodagumi/ananPJ/Gui/LinkAppearance/view2d ディレクトリに、LinkViewBase2D のサブクラスとして作成します。
- 初期設定パラメータの解析は init() メソッドをオーバーライドして記述します。パラメータの読み取りは JsonicHashMapGetter クラスのメソッドでおこないます。
3D_View クラスの作成
3D_View のクラスは CrowdWalk/crowdwalk/src/main/java/nodagumi/ananPJ/Gui/LinkAppearance/view3d ディレクトリに、LinkViewBase3D のサブクラスとして作成します。
- 初期設定パラメータの解析は init() メソッドをオーバーライドして記述します。パラメータの読み取りは JsonicHashMapGetter クラスのメソッドでおこないます。
クラスローダー用の設定
新しくクラスを作成した時には "CrowdWalk/crowdwalk/src/main/resources/link_appearance_classes.json" に定義を加える必要があります。
{
"ActualWidth2D" : "nodagumi.ananPJ.Gui.LinkAppearance.view2d.ActualWidth2D",
"ActualWidth3D" : "nodagumi.ananPJ.Gui.LinkAppearance.view3d.ActualWidth3D",
"FixedWidth2D" : "nodagumi.ananPJ.Gui.LinkAppearance.view2d.FixedWidth2D",
"FixedWidth3D" : "nodagumi.ananPJ.Gui.LinkAppearance.view3d.FixedWidth3D",
"SolidLine2D" : "nodagumi.ananPJ.Gui.LinkAppearance.view2d.SolidLine2D",
"SolidLine3D" : "nodagumi.ananPJ.Gui.LinkAppearance.view3d.SolidLine3D"
}