diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..3615bbd Binary files /dev/null and b/.DS_Store differ diff --git a/PlateauToolkit.Maps/.DS_Store b/PlateauToolkit.Maps/.DS_Store new file mode 100644 index 0000000..7a9f45f Binary files /dev/null and b/PlateauToolkit.Maps/.DS_Store differ diff --git a/PlateauToolkit.Maps/Editor/DbfReader.cs b/PlateauToolkit.Maps/Editor/DbfReader.cs index 6f45e6b..6dd3b03 100644 --- a/PlateauToolkit.Maps/Editor/DbfReader.cs +++ b/PlateauToolkit.Maps/Editor/DbfReader.cs @@ -10,8 +10,8 @@ public class DbfRecord public enum SupportedEncoding { - UTF8, // 0 - ShiftJIS // 1 + ShiftJIS, // 0 + UTF8 // 1 } namespace PlateauToolkit.Maps.Editor diff --git a/PlateauToolkit.Maps/Editor/GeoJsonLoader.cs b/PlateauToolkit.Maps/Editor/GeoJsonLoader.cs index f879047..e5d5e16 100644 --- a/PlateauToolkit.Maps/Editor/GeoJsonLoader.cs +++ b/PlateauToolkit.Maps/Editor/GeoJsonLoader.cs @@ -18,13 +18,15 @@ public class GeoJsonLoader : IDisposable GameObject m_PositionMarkerSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); GameObject m_PointDataPrefab; GameObject m_PointMarkerDefaultPrefab; + bool m_LoopLineRenderer; - public GeoJsonLoader(GameObject pointDataPrefab = null) + public GeoJsonLoader(bool closeLineRenderer, GameObject pointDataPrefab = null) { m_GeoRef = GameObject.FindObjectOfType(); m_PositionMarkerSphere.transform.SetParent(m_GeoRef.transform); m_PositionMarkerSphere.AddComponent(); m_PointDataPrefab = pointDataPrefab; + m_LoopLineRenderer = closeLineRenderer; } public bool ReadAll(string pathToFolder, float height, float lineWidth) @@ -199,7 +201,14 @@ GameObject InstantiateShape(GameObject shapeParent, GameObject parentObject, str instance.transform.parent = parentObject.transform; LineRenderer lineRenderer = instance.GetComponent(); - lineRenderer.loop = true; + if (m_LoopLineRenderer) + { + lineRenderer.loop = true; + } + else + { + lineRenderer.loop = false; + } lineRenderer.startWidth = lineWidth; lineRenderer.endWidth = lineWidth; diff --git a/PlateauToolkit.Maps/Editor/PlateauToolkitMapsWindow.cs b/PlateauToolkit.Maps/Editor/PlateauToolkitMapsWindow.cs index 97c84b8..acbac80 100644 --- a/PlateauToolkit.Maps/Editor/PlateauToolkitMapsWindow.cs +++ b/PlateauToolkit.Maps/Editor/PlateauToolkitMapsWindow.cs @@ -66,6 +66,7 @@ class PlateauToolkitMapsWindow : EditorWindow string m_GisTargetFolderName; int m_SelectedShpRenderingIndex; int m_GisModeIndex; + bool m_CloseLineRendererLoop; static readonly string[] k_ShpRenderingModes = { "Mesh", "Line" }; static readonly string[] k_GisMode = { "SHP", "GeoJson" }; @@ -503,15 +504,16 @@ bool TabButton(string iconPath, Tab tab) { EditorGUILayout.LabelField("描画タイプ", "ジオメトリから判断する"); } - if (m_SelectedShpRenderingIndex == 1) + if (m_SelectedShpRenderingIndex == 1 || m_GisModeIndex != 0) { m_LineRendererWidth = EditorGUILayout.FloatField("GISの線幅", m_LineRendererWidth); + m_CloseLineRendererLoop = EditorGUILayout.Toggle("LineRenderer Loop", m_CloseLineRendererLoop); } if (GUILayout.Button("GISデータの読み込み")) { if (m_GisModeIndex == 0) { - using (m_ShapefileRenderManager = new ShapefileRenderManager(m_GisTargetFolderName, m_SelectedShpRenderingIndex, m_GisRenderHeight, m_MergeMesh, m_SupportedEncoding, m_PointDataPrefab)) + using (m_ShapefileRenderManager = new ShapefileRenderManager(m_GisTargetFolderName, m_SelectedShpRenderingIndex, m_GisRenderHeight, m_MergeMesh, m_CloseLineRendererLoop, m_SupportedEncoding, m_PointDataPrefab)) { if (m_ShapefileRenderManager.Read(m_LineRendererWidth)) { @@ -528,7 +530,7 @@ bool TabButton(string iconPath, Tab tab) } else { - using (GeoJsonLoader geoJsonLoader = new GeoJsonLoader(m_PointDataPrefab)) + using (GeoJsonLoader geoJsonLoader = new GeoJsonLoader(m_CloseLineRendererLoop, m_PointDataPrefab)) { if (geoJsonLoader.ReadAll(m_GisTargetFolderName, m_GisRenderHeight, m_LineRendererWidth)) { diff --git a/PlateauToolkit.Maps/Editor/ShapefileRenderManager.cs b/PlateauToolkit.Maps/Editor/ShapefileRenderManager.cs index 2df4f2b..d9b9a12 100644 --- a/PlateauToolkit.Maps/Editor/ShapefileRenderManager.cs +++ b/PlateauToolkit.Maps/Editor/ShapefileRenderManager.cs @@ -32,16 +32,18 @@ public class ShapefileRenderManager : IDisposable string m_CurrentRenderingObject; float m_RenderHeight; bool m_MergeMeshes; + bool m_LoopLineRenderer; GameObject m_PointDataPrefab; - public ShapefileRenderManager(string folderPath, int renderMode, float renderHeight, bool mergeMeshes, SupportedEncoding supportedEncoding, GameObject pointDataPrefab = null) + public ShapefileRenderManager(string folderPath, int renderMode, float renderHeight, bool mergeMeshes, bool loopLineRenderer, SupportedEncoding supportedEncoding, GameObject pointDataPrefab = null) { m_GeoRef = GameObject.FindObjectOfType(); m_FolderPath = folderPath; m_RenderMode = renderMode; m_RenderHeight = renderHeight; m_MergeMeshes = mergeMeshes; + m_LoopLineRenderer = loopLineRenderer; m_PointDataPrefab = pointDataPrefab; m_SupportedStringEncoding = supportedEncoding; m_DbfReader = null; @@ -246,7 +248,14 @@ void DrawPolygonOrPolyline(IShape shape, int index, float lineWidth, GameObject lineRenderer.startWidth = lineWidth; // Set the start width lineRenderer.endWidth = lineWidth; lineRenderer.SetPositions(partPointsWorld.ToArray()); - lineRenderer.loop = true; + if (m_LoopLineRenderer) + { + lineRenderer.loop = true; + } + else + { + lineRenderer.loop = false; + } if (!string.IsNullOrEmpty(m_DbfFilePath) && dbfRead && dbfReader.GetRecordLength() == m_ListOfShapes.Count) { AttachMetadata(shpParentInstance, record); diff --git a/package.json b/package.json index cff9743..d750295 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.plateautoolkit.maps", "displayName": "PLATEAU SDK-Maps-Toolkit for Unity", - "version": "1.0.1", + "version": "1.0.2", "unity": "2021.3", "description": "PLATEAUの3D都市モデルを用いた空間解析、可視化、建築情報との連携など、地図アプリ開発等を行うためのツールキットです。", "keywords": [