From e7e0d0013f79bd0722955ce4193ffe9f351a4714 Mon Sep 17 00:00:00 2001 From: Christopher Latza Date: Wed, 10 Jun 2020 22:46:58 +0200 Subject: [PATCH] black white --- src/BasicPathFinding.cs | 17 ++++++++++++----- src/PathFindingSceneGenerator.cs | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/BasicPathFinding.cs b/src/BasicPathFinding.cs index de6c9ea..05e8713 100644 --- a/src/BasicPathFinding.cs +++ b/src/BasicPathFinding.cs @@ -8,6 +8,7 @@ using OpenSim.Region.Framework.Scenes; using OpenSim.Region.ScriptEngine.Interfaces; using OpenSim.Region.ScriptEngine.Shared.Api; using System; +using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Reflection; @@ -137,6 +138,8 @@ namespace OpenSim.Modules.PathFinding private void createPathFindingScene(UUID script, String imageName, Vector3 start, Vector3 target) { + List _pixels = new List(); + try { Bitmap _map = new Bitmap((int)m_scene.RegionInfo.RegionSizeX, (int)m_scene.RegionInfo.RegionSizeY); @@ -148,19 +151,23 @@ namespace OpenSim.Modules.PathFinding int _imageX = ((int)m_scene.RegionInfo.RegionSizeX - 1) - X; int _imageY = ((int)m_scene.RegionInfo.RegionSizeY - 1) - Y; + _pixels.Add(new PixelInfo(new Vector2(_imageX, _imageY))); + float baseheight = (float)m_scene.Heightmap[X, Y]; if (baseheight <= m_scene.RegionInfo.RegionSettings.WaterHeight) - _map.SetPixel(_imageX, _imageY, Color.Blue); + _map.SetPixel(_imageX, _imageY, Color.Black); if (baseheight > m_scene.RegionInfo.RegionSettings.WaterHeight) - _map.SetPixel(_imageX, _imageY, Color.Green); + _map.SetPixel(_imageX, _imageY, Color.White); } } - - _map.SetPixel((int)start.X, (int)start.Y, Color.Aqua); - + PathFindingSceneGenerator.DrawObjectVolume(m_scene, ref _map); + + + + _map.Save(imageName + ".png", ImageFormat.Png); m_scriptModule.DispatchReply(script, 0, "done", imageName); diff --git a/src/PathFindingSceneGenerator.cs b/src/PathFindingSceneGenerator.cs index 54d9260..1658a18 100644 --- a/src/PathFindingSceneGenerator.cs +++ b/src/PathFindingSceneGenerator.cs @@ -37,7 +37,7 @@ namespace OpenSim.Modules.PathFinding if (mapdot.IsPhantom == true) continue; - Color mapdotspot = Color.Red; // Default color when prim color is white + Color mapdotspot = Color.Black; // Default color when prim color is white // Loop over prim in group foreach (SceneObjectPart part in mapdot.Parts) { @@ -45,7 +45,7 @@ namespace OpenSim.Modules.PathFinding continue; if (part.Description.Contains("allowedpath")) - mapdotspot = Color.Green; + mapdotspot = Color.White; // Draw if the object is at least 1 meter wide in any direction if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)