Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/sand worm2 0 #105

Merged
merged 193 commits into from
Mar 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
4aedb24
Initial K4A support
philipbelesky Nov 21, 2019
d12e107
Merge branch 'refs/heads/master' into feature/#61-kinect-azure
philipbelesky Nov 21, 2019
b8f6458
Revert unintended update to Grasshopper/Rhinocommon
philipbelesky Nov 21, 2019
7bdbb99
Add parameter to options for specifying Kinect hardware
philipbelesky Nov 21, 2019
7ef8c74
Begin to split code paths based on Kinect model
philipbelesky Nov 21, 2019
695892b
Bump .NET slightly further (actually need 4.6.1)
philipbelesky Nov 21, 2019
7ff5f79
Add k4a sensor setup; touch up earlier hardware option parsing
philipbelesky Nov 21, 2019
b53cef0
Merge branch 'refs/heads/master' into feature/#61-kinect-azure
philipbelesky Nov 28, 2019
385cf2e
Resolve issues with hardcoded resolutions in elevationArray+runningSu…
philipbelesky Nov 28, 2019
ce750e8
Add depthengine reference + prototype device capture function
philipbelesky Nov 28, 2019
b516d8c
Properly set initial frameCount value
philipbelesky Dec 20, 2019
e57a23f
Allow for initialisation errors to be properly surface to component
philipbelesky Dec 20, 2019
8322908
Shift over to official MS SDK
philipbelesky Aug 14, 2020
3d0593a
Fix externals path
philipbelesky Aug 14, 2020
298e66d
Capture at every mesh component update, array accessor.
BarusXXX Aug 14, 2020
3c1e437
Update to Core
BarusXXX Aug 14, 2020
2b53d40
In progress Update
BarusXXX Aug 14, 2020
ebb1c3d
Update SetupComponent.cs
BarusXXX Aug 15, 2020
67e7ec2
Latest Working
BarusXXX Aug 15, 2020
67e8efc
Wire up the kinectType parameter to be used in k4aController
philipbelesky Aug 16, 2020
760225b
HotFix
BarusXXX Aug 16, 2020
03073cc
After Update
BarusXXX Aug 16, 2020
520f4a3
Update BaseKinectComponent.cs
BarusXXX Aug 16, 2020
b4cddad
Re-orient waterplane
BarusXXX Aug 24, 2020
1e6eca8
Initial cleanup. Tests with K4A
mariuszhermansdorfer May 25, 2021
5215086
Undistort prototype
mariuszhermansdorfer May 28, 2021
39e251d
Proper display of the mesh component.
mariuszhermansdorfer May 31, 2021
f7c2c22
Further work on the LUT logic
mariuszhermansdorfer Jun 1, 2021
5b26c76
Add custom component
mariuszhermansdorfer Jun 1, 2021
840f215
First stab at custom component's UI
mariuszhermansdorfer Jun 1, 2021
0da46da
Add vectorization function for array multiplication
mariuszhermansdorfer Jun 4, 2021
f13e7b2
Added TrimXY lookup table.
BarusXXX Jul 9, 2021
3590d45
Fix typo
mariuszhermansdorfer Jul 9, 2021
a270da5
Merge branch 'feature/SandWorm2-0' of https://github.com/mariuszherma…
mariuszhermansdorfer Jul 9, 2021
20b1c9d
Fix code formatting
mariuszhermansdorfer Jul 9, 2021
6dbaa04
Changes to contouring algorithm, 40% reduction in execution time.
BarusXXX Jul 12, 2021
9493c95
Merge branch 'feature/SandWorm2-0' of https://github.com/mariuszherma…
BarusXXX Jul 12, 2021
9325e35
Fix setup update.
mariuszhermansdorfer Jul 13, 2021
335c037
Merge branch 'feature/SandWorm2-0' of https://github.com/mariuszherma…
mariuszhermansdorfer Jul 13, 2021
5489074
Major code restructuring.
mariuszhermansdorfer Jul 14, 2021
1a985b1
Add buttons & wires on AddedToDocument
mariuszhermansdorfer Jul 15, 2021
24a7530
Add refresh rate drop down & functionality.
mariuszhermansdorfer Jul 15, 2021
7f602fb
Move UI to separate file.
mariuszhermansdorfer Jul 15, 2021
6e2ee2f
Rearrange variables
mariuszhermansdorfer Jul 15, 2021
e7fe8b1
Clean up using statements
mariuszhermansdorfer Jul 15, 2021
4edae34
Add color gradient range functionality
mariuszhermansdorfer Jul 15, 2021
260a747
Fix slope calculations with a temporary hack.
mariuszhermansdorfer Jul 15, 2021
be49af4
Remove unnecessary call to GH document
mariuszhermansdorfer Jul 15, 2021
998386b
Make elevation analysis default
mariuszhermansdorfer Jul 15, 2021
ab37e5e
Fix buttons being added on each document open
mariuszhermansdorfer Jul 15, 2021
a813832
Add support for different drawing units.
mariuszhermansdorfer Jul 16, 2021
47f8a75
Add point cloud display.
mariuszhermansdorfer Jul 16, 2021
9645d6b
Update to Rhinocommon 6.2 to use VertexPoint3dArray
mariuszhermansdorfer Jul 16, 2021
b0119b2
Changed to Point3d to speed up point cloud generation
mariuszhermansdorfer Jul 16, 2021
9293479
Fix water level plane. Base it off of the point cloud rather than mesh.
mariuszhermansdorfer Jul 16, 2021
57f12b9
Remove unnecessary argument from a function definition.
mariuszhermansdorfer Jul 16, 2021
fd99a5b
Add variable output parameters
mariuszhermansdorfer Jul 16, 2021
dfd08bf
Add reset on sensor type change
mariuszhermansdorfer Aug 10, 2021
93aa835
Add support for WFOV
mariuszhermansdorfer Aug 10, 2021
744f327
Fix outputs instead of using VariableParameterComponent
mariuszhermansdorfer Aug 11, 2021
9e888aa
Fixed trimming of columns & rows requiring a reset
mariuszhermansdorfer Aug 11, 2021
d040d02
Optimize code to only recalculate lookup tables when necessary
mariuszhermansdorfer Aug 11, 2021
8dc5886
Adapt slope calculation logic to work with Kinect azure
mariuszhermansdorfer Aug 11, 2021
12b1305
Add support for RGB analysis
mariuszhermansdorfer Aug 11, 2021
99c8cff
Bump assembly version
mariuszhermansdorfer Aug 11, 2021
dc3e078
Add RGB support for the WFOV
mariuszhermansdorfer Aug 11, 2021
d903872
First stab at the contouring algorithm
mariuszhermansdorfer Aug 12, 2021
2f1ac43
Add adaptive grid to the contour line algorithm
mariuszhermansdorfer Aug 12, 2021
9c8ad1b
Fix bugs in the contouring logic.
mariuszhermansdorfer Aug 13, 2021
c6689a6
Add contours display to DrawViewportWires
mariuszhermansdorfer Aug 13, 2021
3fcca43
Fix bugs in contouring algorithm
mariuszhermansdorfer Aug 13, 2021
f6bd4c8
Reset button now also fixes the glitch in render buffer when setting …
mariuszhermansdorfer Aug 13, 2021
7e3f5d1
Add proper bounding box definition
mariuszhermansdorfer Aug 13, 2021
d0ec387
Experiment with water level colors
mariuszhermansdorfer Aug 13, 2021
db0dae0
Further bug fixes of the contouring logic
mariuszhermansdorfer Aug 14, 2021
1aee468
Remove contour lines output to speed things up
mariuszhermansdorfer Aug 14, 2021
c0b3def
Change default slider values.
mariuszhermansdorfer Aug 14, 2021
a0c2aac
Fix contours for WFOV
mariuszhermansdorfer Aug 15, 2021
3692d57
Remove old contouring logic
mariuszhermansdorfer Aug 15, 2021
53da4de
Add selector for color palettes & custom color provided by users
mariuszhermansdorfer Aug 15, 2021
3d29e6b
Fix frame averaging while using WFOV
mariuszhermansdorfer Aug 15, 2021
3597304
Fix water level display for WFOV
mariuszhermansdorfer Aug 15, 2021
601faa4
Add Kinect for Windows support.
mariuszhermansdorfer Aug 16, 2021
0690b81
Remove broken references
mariuszhermansdorfer Aug 16, 2021
deb0cd8
Fix left & right trimming mismatch in Kinect for Windows
mariuszhermansdorfer Aug 16, 2021
5d02aa2
Bug fixes & code optimization.
mariuszhermansdorfer Aug 16, 2021
c62a5bf
Removed old component used for debugging.
mariuszhermansdorfer Aug 16, 2021
7dde9b9
Fix bug with letf/right columns calculation.
mariuszhermansdorfer Aug 16, 2021
36ecf81
Make contour lines algorithm adapt to Rhino's drawing units
mariuszhermansdorfer Aug 17, 2021
dfcc283
Add 'turbo' palette option
philipbelesky Aug 18, 2021
80c8c8a
Update debug method to use Rhino7 and to activate on valid build target
philipbelesky Aug 18, 2021
7f3d49e
Update debug method to use Rhino7 and to activate on valid build target
philipbelesky Aug 18, 2021
6b41be2
Rework lookup table calculation to handle dynamic palette lengths
philipbelesky Aug 18, 2021
37ffc08
Merge pull request #80 from philipbelesky/fix/build-debug
mariuszhermansdorfer Aug 18, 2021
4f8de3d
Simplified the UI.
mariuszhermansdorfer Aug 18, 2021
f9ba3fe
Rework color lists to be properly dynamic + better handle custom type…
philipbelesky Aug 19, 2021
0ebf817
Add Viridis, remove Rainbow, closes #19
philipbelesky Aug 19, 2021
9801a79
Merge pull request #82 from philipbelesky/feature/perceptual-ramps
mariuszhermansdorfer Aug 19, 2021
031e82c
Fix bug introduced in last UI changes.
mariuszhermansdorfer Aug 19, 2021
910b086
Code cleanup
mariuszhermansdorfer Aug 19, 2021
6e568e0
Adjust defaults.
mariuszhermansdorfer Aug 20, 2021
68c4fda
Change tooltip
mariuszhermansdorfer Aug 20, 2021
b9022ba
First Jab at Water Simulation
BarusXXX Aug 23, 2021
c8f7dd1
Add calibration functionality for Kinect Azure
mariuszhermansdorfer Aug 26, 2021
7a9d291
Added calibration for Kinect for Windows
mariuszhermansdorfer Aug 26, 2021
175b7c6
Merge pull request #83 from mariuszhermansdorfer/feature/Calibration
mariuszhermansdorfer Aug 26, 2021
68eec16
Initial CutFill support
mariuszhermansdorfer Aug 26, 2021
67da1b4
UI tweak
mariuszhermansdorfer Aug 26, 2021
1a59f98
Remove old setup component
mariuszhermansdorfer Aug 26, 2021
e294943
Add color palettes support for CutFill analysis
mariuszhermansdorfer Aug 26, 2021
0fffee6
Move water analysis to a separate branch
mariuszhermansdorfer Aug 27, 2021
fa72d93
Speed up resetting procedure for Kinect Azure
mariuszhermansdorfer Aug 27, 2021
ca90e38
Clean up comments
mariuszhermansdorfer Aug 27, 2021
4226b14
Merge branch 'feature/SandWorm2-0' into feature/CutFill2-0
mariuszhermansdorfer Aug 27, 2021
169373b
Merge pull request #84 from mariuszhermansdorfer/feature/CutFill2-0
mariuszhermansdorfer Aug 27, 2021
d9e428a
Better handling of switching between analysis types
mariuszhermansdorfer Aug 27, 2021
19d8c8f
Add labels
mariuszhermansdorfer Aug 27, 2021
3082849
Only display labels for relevant analysis types
mariuszhermansdorfer Aug 27, 2021
235ca7f
Add CutFill stats output.
mariuszhermansdorfer Aug 27, 2021
38a98a5
Speed up contour display by outputting GH_Line instead of Rhino.Geome…
mariuszhermansdorfer Aug 27, 2021
064d18b
Don't try to read serialised state if no key exists
philipbelesky Aug 29, 2021
5a48ea4
Don't try to draw labels if they have not been init-ed
philipbelesky Aug 29, 2021
72da3b0
Don't try to read stored values when they don't exist
philipbelesky Aug 29, 2021
a6ec68c
Change the 'zero' color for cut/fill for better contrast with labels/…
philipbelesky Aug 29, 2021
2a635e4
Output volume stats as clean ints so they can be more easily used dow…
philipbelesky Aug 29, 2021
5605b04
Merge pull request #85 from philipbelesky/fixes/misc
mariuszhermansdorfer Aug 30, 2021
06b19d6
Merge pull request #87 from philipbelesky/suggestions/output-stats
mariuszhermansdorfer Aug 30, 2021
4b12c32
Initial commit
mariuszhermansdorfer Aug 31, 2021
bfb62e2
Adjust age value
mariuszhermansdorfer Aug 31, 2021
9545afb
Raise flowlines slightly above terrain
mariuszhermansdorfer Aug 31, 2021
43f7bfb
Differentiate stats output between debug/release versions
mariuszhermansdorfer Aug 31, 2021
2d7f1a0
Added random distribution to flowlines
mariuszhermansdorfer Sep 1, 2021
597e6fc
Clean up flowlines code
mariuszhermansdorfer Sep 1, 2021
2c5d3e2
Make raindrops smarter
mariuszhermansdorfer Sep 1, 2021
c6dcf37
Expose max flowline length parameter to users
mariuszhermansdorfer Sep 1, 2021
57f2d1b
Clean up flowlines code
mariuszhermansdorfer Sep 2, 2021
b51594e
Move flowline code to dedicated functoin
mariuszhermansdorfer Sep 2, 2021
fc59e4b
Minor code clean ups
mariuszhermansdorfer Sep 2, 2021
a246b08
Fix bug in flowlines
mariuszhermansdorfer Sep 3, 2021
1a30321
Parallelize flowlines
mariuszhermansdorfer Sep 3, 2021
016a08c
Add 'Water Flow' UI tab.
mariuszhermansdorfer Sep 6, 2021
a173b52
Merge branch 'feature/SandWorm2-0' into feature/PolyAutomata
mariuszhermansdorfer Sep 6, 2021
7665ef6
Merge pull request #91 from mariuszhermansdorfer/feature/PolyAutomata
mariuszhermansdorfer Sep 6, 2021
b89b2a9
Add better descriptions for debug stats.
mariuszhermansdorfer Sep 6, 2021
1a39543
Miscelaneous code cleanups.
mariuszhermansdorfer Sep 6, 2021
eca46b4
Initial commit
mariuszhermansdorfer Sep 8, 2021
4f77741
Iinitial water mesh attempt.
mariuszhermansdorfer Sep 8, 2021
34f212c
Make borders absolute sinks
mariuszhermansdorfer Sep 9, 2021
0804f30
Added dictionary for index/slope pairs
mariuszhermansdorfer Sep 9, 2021
635ec70
Change border resetting algorightm for mesh water flow
mariuszhermansdorfer Sep 10, 2021
d92ebb8
Test with game engine approach
mariuszhermansdorfer Sep 10, 2021
d000d46
Experiment with flow directions
mariuszhermansdorfer Sep 13, 2021
21674fc
First truly working prototype
mariuszhermansdorfer Sep 14, 2021
cfc7481
Add UI controls to mesh water flow
mariuszhermansdorfer Sep 14, 2021
a191a21
Added comments
mariuszhermansdorfer Sep 14, 2021
86bc7bc
Fix bug with flowlines spanning across borders.
mariuszhermansdorfer Sep 14, 2021
ce7011f
Add runoff coefficients.
mariuszhermansdorfer Sep 14, 2021
8b7d82f
Remove unused struct
mariuszhermansdorfer Sep 14, 2021
f3e1d9b
Update NuGet packages
mariuszhermansdorfer Sep 14, 2021
51b3378
Update OpenCV
mariuszhermansdorfer Sep 14, 2021
658945d
Add ILGPU
mariuszhermansdorfer Sep 14, 2021
7fc9c28
Initial ILGPU setup
mariuszhermansdorfer Sep 14, 2021
ffa9d1b
Working GPU acceleration
mariuszhermansdorfer Sep 14, 2021
5277e40
Fix bug with GPU water analysis and trimming of rows/columns
mariuszhermansdorfer Sep 14, 2021
78bf8f3
Attempt to get the best GPU for accelerating mesh flow.
mariuszhermansdorfer Sep 15, 2021
e512be8
Fix for openCL GPUs
mariuszhermansdorfer Sep 15, 2021
a7b8fed
Fix buffer overflow bug in water simulation
mariuszhermansdorfer Sep 15, 2021
469ce5e
Fix bugs while resetting.
mariuszhermansdorfer Sep 27, 2021
62c406a
Adapt flow lines to units other than mm
mariuszhermansdorfer Sep 28, 2021
7d6dd9d
Made unitsMultiplier to static variable.
mariuszhermansdorfer Sep 28, 2021
b9e44c3
Make slopes analysis units independent.
mariuszhermansdorfer Sep 28, 2021
6b27222
Bump version
mariuszhermansdorfer Sep 29, 2021
3880f72
Merge pull request #93 from mariuszhermansdorfer/feature/MeshWaterFlow
mariuszhermansdorfer Sep 29, 2021
ad60a53
Implement slider for label/contour colors
philipbelesky Jan 24, 2022
89436d4
Merge branch 'feature/SandWorm2-0' into fixes/cutfillcolor
philipbelesky Jan 24, 2022
7d0a119
Merge pull request #86 from philipbelesky/fixes/cutfillcolor
mariuszhermansdorfer Jan 27, 2022
b39faff
Implement font DPI scaling using existing functions; closes #81
philipbelesky Jan 31, 2022
23f2ee6
Add MenuButton widget and basic layout for reset/calibrate buttons
philipbelesky Jan 31, 2022
472a7b4
Merge pull request #97 from philipbelesky/feature/#81-dpi-scaling
mariuszhermansdorfer Jan 31, 2022
48fc5d6
Merge branch 'feature/SandWorm2-0' into feature/#88-inline-buttons
philipbelesky Feb 1, 2022
41a848c
Revert button-isation of Reset param; implement button states and too…
philipbelesky Feb 1, 2022
91caeed
Decouple calibration and reset actions
philipbelesky Feb 2, 2022
9ade1f0
Clarify (?) role of the reset button
philipbelesky Feb 3, 2022
2c26a27
Merge pull request #98 from philipbelesky/feature/#88-inline-buttons
mariuszhermansdorfer Feb 3, 2022
00b5a6a
Fix division by 0 error in large-swatch color palettes
philipbelesky Mar 14, 2022
284c7d1
Increase permitted sensor elevation
philipbelesky Mar 14, 2022
194c9d6
Merge pull request #101 from philipbelesky/viridis-fix
mariuszhermansdorfer Mar 23, 2022
9018d79
Merge pull request #102 from philipbelesky/extra-range
mariuszhermansdorfer Mar 23, 2022
1878429
Converted the "Make it rain" checkbox to a button.
mariuszhermansdorfer Mar 23, 2022
fbdc991
Merge pull request #104 from mariuszhermansdorfer/TweakUI
mariuszhermansdorfer Mar 23, 2022
eca1f57
Change button tooltip messages.
mariuszhermansdorfer Mar 23, 2022
1c1a9a6
Embed external references to Kinect libraries
mariuszhermansdorfer Mar 23, 2022
fbbdbb5
Adjust min sensor elevation to make slider input more precise
mariuszhermansdorfer Mar 23, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions SandWorm.sln
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.489
# Visual Studio Version 16
VisualStudioVersion = 16.0.30621.155
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SandWorm", "SandWorm\SandWorm.csproj", "{23B848FB-52C2-4E58-B86F-F69B076045DE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SandwormBenchmarks", "SandwormBenchmarks\SandwormBenchmarks.csproj", "{8637E765-912C-4964-9BC5-6BB972AF86D6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -23,14 +21,6 @@ Global
{23B848FB-52C2-4E58-B86F-F69B076045DE}.Release|Any CPU.Build.0 = Release|Any CPU
{23B848FB-52C2-4E58-B86F-F69B076045DE}.Release|x64.ActiveCfg = Release|x64
{23B848FB-52C2-4E58-B86F-F69B076045DE}.Release|x64.Build.0 = Release|x64
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Debug|x64.ActiveCfg = Debug|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Debug|x64.Build.0 = Debug|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Release|Any CPU.Build.0 = Release|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Release|x64.ActiveCfg = Release|Any CPU
{8637E765-912C-4964-9BC5-6BB972AF86D6}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
60 changes: 4 additions & 56 deletions SandWorm/Analysis.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,60 +8,6 @@ namespace SandWorm
{
public static class Analysis
{
/// <summary>Abstractions for managing analysis state.</summary>
public static class AnalysisManager
{
/// <summary>Stories copies of each analysis option and interfaces their use with components.</summary>
public static List<MeshAnalysis> options;

static AnalysisManager() // Note that the order of items here determines their menu order
{
options = new List<MeshAnalysis>
{
new Analytics.WaterLevel(), new Analytics.Contours(),
new Analytics.None(),
new Analytics.Elevation(), new Analytics.Slope(), new Analytics.Aspect()
};
// Default to showing elevation analysis
options[3].isEnabled = true;
}

public static List<MeshAnalysis> GetEnabledAnalyses()
{
return options.FindAll(x => x.isEnabled);
}

public static MeshColorAnalysis GetEnabledMeshColoring()
{
foreach (var enabledOption in GetEnabledAnalyses())
if (enabledOption.GetType().IsSubclassOf(typeof(MeshColorAnalysis)))
return enabledOption as MeshColorAnalysis;
return null; // Shouldn't happen; a mesh coloring option (even no color) is always set
}

public static List<MeshGeometryAnalysis> GetEnabledMeshAnalytics()
{
var enabledGeometryAnalysis = new List<MeshGeometryAnalysis>();
foreach (var enabledOption in GetEnabledAnalyses())
{
// Testing inheritance with generics is not going to work; so just check if the option is not a color one
if (enabledOption.GetType().IsSubclassOf(typeof(MeshGeometryAnalysis)))
enabledGeometryAnalysis.Add(enabledOption as MeshGeometryAnalysis);
}
return enabledGeometryAnalysis;
}

public static void SetEnabledOptions(ToolStripMenuItem selectedMenuItem)
{
var selectedOption = options.Find(x => x.MenuItem == selectedMenuItem);
if (selectedOption.IsExclusive)
foreach (var exclusiveOption in options.FindAll(x => x.IsExclusive))
exclusiveOption.isEnabled =
selectedOption == exclusiveOption; // Toggle selected item; untoggle other exclusive items
else
selectedOption.isEnabled = !selectedOption.isEnabled; // Simple toggle for independent items
}
}

public class VisualisationRangeWithColor
{
Expand Down Expand Up @@ -118,8 +64,10 @@ public abstract class MeshColorAnalysis : MeshAnalysis
public MeshColorAnalysis(string menuName) : base(menuName, true)
{
} // Note: is mutually exclusive

public abstract void ComputeLookupTableForAnalysis(double sensorElevation);

// Provide two methods for overloading; one for custom-gradient-using options and one for the others
public virtual void ComputeLookupTableForAnalysis(double sensorElevation, double gradientRange) { return; }
public virtual void ComputeLookupTableForAnalysis(double sensorElevation, double gradientRange, int paletteOptions = 0) { return; }

public void ComputeLinearRanges(params VisualisationRangeWithColor[] lookUpRanges)
{
Expand Down
6 changes: 3 additions & 3 deletions SandWorm/Analytics/Aspect.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ private Color GetColorForAspect(short aspectValue)
return lookupTable[aspectValue];
}

public Color[] GetColorCloudForAnalysis(double[] pixelArray, int width, int height)
public Color[] GetColorCloudForAnalysis(double[] pixelArray, int width, int height, double gradientRange)
{
if (lookupTable == null)
{
ComputeLookupTableForAnalysis(0.0);
ComputeLookupTableForAnalysis(0.0, gradientRange);
}
var vertexColors = new Color[pixelArray.Length];

Expand Down Expand Up @@ -165,7 +165,7 @@ public Color[] GetColorCloudForAnalysis(double[] pixelArray, int width, int heig
return vertexColors;
}

public override void ComputeLookupTableForAnalysis(double sensorElevation)
public override void ComputeLookupTableForAnalysis(double sensorElevation, double gradientRange)
{
var north = new ColorHSL(0.7, 1, 0.90); // North = Blue
var east = new ColorHSL(0.9, 1, 0.5); // East = Pink
Expand Down
124 changes: 124 additions & 0 deletions SandWorm/Analytics/ColorPalettes.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
using System.Collections.Generic;
using System.Drawing;

namespace SandWorm
{
public static class ColorPalettes
{
public static List<Color> GenerateColorPalettes(Structs.ColorPalettes palette, List<Color> customColors)
{
List<Color> paletteSwatches = new List<Color>();

switch (palette)
{
case Structs.ColorPalettes.Custom:
if (customColors.Count == 0) // No inputs provided; use placeholder
{
paletteSwatches.Add(Color.FromArgb(122, 122, 122));
paletteSwatches.Add(Color.FromArgb(122, 122, 122));
}

for (int i = 0; i < customColors.Count; i++)
paletteSwatches.Add(customColors[i]);
break;

case Structs.ColorPalettes.Chile:
paletteSwatches.Add(Color.FromArgb(38, 115, 0));
paletteSwatches.Add(Color.FromArgb(124, 191, 48));
paletteSwatches.Add(Color.FromArgb(255, 247, 52));
paletteSwatches.Add(Color.FromArgb(196, 65, 0));
paletteSwatches.Add(Color.FromArgb(230, 188, 167));
break;

case Structs.ColorPalettes.CutFill:
paletteSwatches.Add(Color.FromArgb(235, 100, 75));
paletteSwatches.Add(Color.FromArgb(40, 40, 40));
paletteSwatches.Add(Color.FromArgb(164, 206, 101));
break;

case Structs.ColorPalettes.Desert:
paletteSwatches.Add(Color.FromArgb(55, 101, 84));
paletteSwatches.Add(Color.FromArgb(73, 117, 100));
paletteSwatches.Add(Color.FromArgb(172, 196, 160));
paletteSwatches.Add(Color.FromArgb(148, 131, 85));
paletteSwatches.Add(Color.FromArgb(217, 209, 190));
break;

case Structs.ColorPalettes.Europe:
paletteSwatches.Add(Color.FromArgb(36, 121, 36));
paletteSwatches.Add(Color.FromArgb(89, 148, 54));
paletteSwatches.Add(Color.FromArgb(181, 195, 80));
paletteSwatches.Add(Color.FromArgb(208, 191, 94));
paletteSwatches.Add(Color.FromArgb(115, 24, 19));
break;

case Structs.ColorPalettes.Greyscale:
paletteSwatches.Add(Color.FromArgb(40, 40, 40));
paletteSwatches.Add(Color.FromArgb(80, 80, 80));
paletteSwatches.Add(Color.FromArgb(120, 120, 120));
paletteSwatches.Add(Color.FromArgb(160, 160, 160));
paletteSwatches.Add(Color.FromArgb(200, 200, 200));
break;

case Structs.ColorPalettes.Dune:
paletteSwatches.Add(Color.FromArgb(80, 80, 80));
paletteSwatches.Add(Color.FromArgb(122, 91, 76));
paletteSwatches.Add(Color.FromArgb(191, 118, 40));
paletteSwatches.Add(Color.FromArgb(240, 173, 50));
paletteSwatches.Add(Color.FromArgb(255, 210, 128));
break;

case Structs.ColorPalettes.Ocean:
paletteSwatches.Add(Color.FromArgb(47, 34, 58));
paletteSwatches.Add(Color.FromArgb(62, 90, 146));
paletteSwatches.Add(Color.FromArgb(80, 162, 162));
paletteSwatches.Add(Color.FromArgb(152, 218, 164));
paletteSwatches.Add(Color.FromArgb(250, 250, 200));
break;

case Structs.ColorPalettes.Turbo:
paletteSwatches.Add(Color.FromArgb(48, 18, 59));
paletteSwatches.Add(Color.FromArgb(65, 69, 171));
paletteSwatches.Add(Color.FromArgb(70,117,237));
paletteSwatches.Add(Color.FromArgb(57, 162, 252));
paletteSwatches.Add(Color.FromArgb(27, 207, 212));
paletteSwatches.Add(Color.FromArgb(36, 236, 166));
paletteSwatches.Add(Color.FromArgb(97, 252, 108));
paletteSwatches.Add(Color.FromArgb(164, 252, 59));
paletteSwatches.Add(Color.FromArgb(209, 232, 52));
paletteSwatches.Add(Color.FromArgb(243, 198, 58));
paletteSwatches.Add(Color.FromArgb(254, 155, 45));
paletteSwatches.Add(Color.FromArgb(243, 99, 21));
paletteSwatches.Add(Color.FromArgb(217, 56, 6));
paletteSwatches.Add(Color.FromArgb(177, 25, 1));
paletteSwatches.Add(Color.FromArgb(122, 4, 2));
break;

case Structs.ColorPalettes.Viridis:
paletteSwatches.Add(Color.FromArgb(52, 0, 66));
paletteSwatches.Add(Color.FromArgb(55, 8, 85));
paletteSwatches.Add(Color.FromArgb(55, 23, 100));
paletteSwatches.Add(Color.FromArgb(53, 37, 110));
paletteSwatches.Add(Color.FromArgb(48, 52, 117));
paletteSwatches.Add(Color.FromArgb(44, 65, 121));
paletteSwatches.Add(Color.FromArgb(39, 80, 123));
paletteSwatches.Add(Color.FromArgb(36, 93, 123));
paletteSwatches.Add(Color.FromArgb(33, 106, 123));
paletteSwatches.Add(Color.FromArgb(31, 120, 122));
paletteSwatches.Add(Color.FromArgb(30, 134, 120));
paletteSwatches.Add(Color.FromArgb(32, 148, 115));
paletteSwatches.Add(Color.FromArgb(38, 162, 108));
paletteSwatches.Add(Color.FromArgb(52, 178, 98));
paletteSwatches.Add(Color.FromArgb(73, 190, 84));
paletteSwatches.Add(Color.FromArgb(101, 202, 68));
paletteSwatches.Add(Color.FromArgb(132, 212, 50));
paletteSwatches.Add(Color.FromArgb(171, 219, 32));
paletteSwatches.Add(Color.FromArgb(212, 225, 21));
paletteSwatches.Add(Color.FromArgb(252, 229, 30));
break;
}

return paletteSwatches;
}
}
}
21 changes: 0 additions & 21 deletions SandWorm/Analytics/Contours.cs

This file was deleted.

Loading