Skip to content

Commit

Permalink
Release/v3.1.1 (Synesthesias#335)
Browse files Browse the repository at this point in the history
* 重いモデルで属性情報のインポートがとても重いのを改善 (Synesthesias#334)

* 重いモデルで属性情報のインポートがとても重いのを改善

* 同上

* 開発中のメニューを削除

* libをSubMesh結合修正版のリリースビルドに置き換え
  • Loading branch information
linoal authored Nov 8, 2024
1 parent e005788 commit 1f02382
Show file tree
Hide file tree
Showing 22 changed files with 31 additions and 51 deletions.
4 changes: 2 additions & 2 deletions Editor/RoadNetwork/RoadNetworkEditorWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ public static IRoadNetworkEditingSystemInterface GetEditorInterface()
return GetWindow(false).EditorInterface;
}

// 2024年7月のリリース準備のため、開発中の機能を一時的にメニューから非表示にしています。
// リリース準備のため、開発中の機能を一時的にメニューから非表示にしています。
// リリースが終わったら下のコメント行を復活させてください。
[MenuItem("PLATEAU_Dev/PLATEAU RoadNetwork Editor")]
// [MenuItem("PLATEAU_Dev/PLATEAU RoadNetwork Editor")]
public static void ShowWindow()
{
GetWindow(true);
Expand Down
4 changes: 2 additions & 2 deletions Plugins/Android/libplateau.so
Git LFS file not shown
4 changes: 2 additions & 2 deletions Plugins/Linux/x86_64/libplateau.so
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libOpenMeshCore.8.0.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libOpenMeshCore.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libOpenMeshTools.8.0.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libOpenMeshTools.dylib
Git LFS file not shown
4 changes: 2 additions & 2 deletions Plugins/MacOS/arm64/libplateau.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libz.1.2.13.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libz.1.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/arm64/libz.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libOpenMeshCore.8.0.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libOpenMeshCore.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libOpenMeshTools.8.0.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libOpenMeshTools.dylib
Git LFS file not shown
4 changes: 2 additions & 2 deletions Plugins/MacOS/x86_64/libplateau.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libz.1.2.13.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libz.1.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/MacOS/x86_64/libz.dylib
Git LFS file not shown
2 changes: 1 addition & 1 deletion Plugins/Windows/x86_64/plateau.dll
Git LFS file not shown
Binary file modified Plugins/iOS/plateau.framework/plateau
Binary file not shown.
32 changes: 6 additions & 26 deletions Runtime/CityImport/Import/Convert/AttributeDataHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -181,17 +181,18 @@ private CityObjectList GetSerializableCityObjectForNonArea()
CityObjectList cityObjList = new CityObjectList();
foreach (var cityObjSer in cityObjSerArr)
{
cityObjSer.CityObjectIndex = GetCurrentCityObjectIndex(index, currentNode, cityObjSer.GmlID).ToArray(); // 分割結合時に必要
cityObjSer.CityObjectIndex = index.ToArray(); // 分割結合時に必要

if (!string.IsNullOrEmpty(this.parentGmlID))
cityObjList.outsideParent = this.parentGmlID;
foreach (var id in indexList)

for (int i = 0; i < indexList.Count; i++)
{
var id = indexList[i];
if (id.PrimaryID == id.AtomicID) continue;
var childCityObj = serializedCityObjectGetter.GetDstCityObjectByGmlID(id.AtomicID, id.Index);
if (childCityObj == null) continue;
childCityObj.CityObjectIndex = GetCurrentCityObjectIndex(id.Index, currentNode, id.AtomicID).ToArray(); // 分割結合時に必要
childCityObj.CityObjectIndex = id.Index.ToArray(); // 分割結合時に必要
cityObjSer.Children.Add(childCityObj);
}
cityObjList.rootCityObjects.Add(cityObjSer);
Expand All @@ -201,27 +202,6 @@ private CityObjectList GetSerializableCityObjectForNonArea()
return cityObjList;
}

private CityObjectIndex GetCurrentCityObjectIndex(CityObjectIndex id, Node node, string gmlID)
{
// Nodeから、idに対応するCityObjectIndexを取得します。
// 見つからなかった場合、このクラスに記録されたCityObjectIndexを返します。
// FIXME: Node優先なら全部Nodeで良いのでは。このクラスにCityObjectIndexを記録するなど、無駄な処理があるのでは。
var currentID = new CityObjectIndex(id.PrimaryIndex, id.AtomicIndex);
if (node.Mesh != null)
{
var col = node.Mesh.CityObjectList;
var indices = col.GetAllKeys();
Func<CityObjectIndex, bool> searchPredicate = idx => col.GetAtomicID(idx) == gmlID;
if (indices.Any(searchPredicate))
{
var nodeIdx = indices.First(searchPredicate);
return nodeIdx;
}

}
return currentID;
}

/// <summary>
/// 地域単位結合モデルの場合のシリアライズ可能なデータへの変換です
/// rootCityObjectsが空の場合はnullを返します
Expand Down Expand Up @@ -250,7 +230,7 @@ private CityObjectList GetSerializableCityObjectForArea()
if (id.PrimaryID != id.AtomicID) continue; // まずは主要地物から見る

// TODO 下の処理は GetByIDメソッド内にまとめられそう?
cityObj.CityObjectIndex = GetCurrentCityObjectIndex(id.Index, currentNode, id.PrimaryID).ToArray(); // 分割結合時に必要
cityObj.CityObjectIndex = id.Index.ToArray(); // 分割結合時に必要

// var ser = CityObjectSerializableConvert.FromCityGMLCityObject(cityObj, id.Index);
if (!chidrenMap.ContainsKey(id.PrimaryID)) continue;
Expand Down

0 comments on commit 1f02382

Please sign in to comment.