From 3d5e81fc5ae5617c27da0c3aca08d111f4bd9381 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Sun, 22 Apr 2018 18:27:15 +1000 Subject: [PATCH 01/18] Fix GROUNDHOG-S where there are too few flow points to automatically calculate step size --- CHANGELOG.md | 4 ++++ plugin/Hydro/FlowCalculations.cs | 17 ++++++++++++++++- plugin/Hydro/groundhogMeshFlowPathComponent.cs | 2 +- .../Hydro/groundhogSurfaceFlowPathComponent.cs | 4 ++-- plugin/groundhog_component.cs | 15 ++++++++++----- 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e682b956..fcf2e56b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Changelog +#### [0.7.3b] - ????-??-?? +###### Fixed +- Flow components will no longer crash when given fewer than three points without a specified Fidelity + #### [0.7.2b] - 2018-04-15 ###### Added - Exception reporting diff --git a/plugin/Hydro/FlowCalculations.cs b/plugin/Hydro/FlowCalculations.cs index 9b9adf8f..5f9931c1 100644 --- a/plugin/Hydro/FlowCalculations.cs +++ b/plugin/Hydro/FlowCalculations.cs @@ -12,8 +12,23 @@ public static class FlowCalculations { - public static double getSensibleFidelity(List flowPathPoints) + public static double getSensibleFidelity(List flowPathPoints, Mesh mesh, Surface surface) { + // Below method fails if there aren't at least three points; use this instead + if (flowPathPoints.Count <= 3) { + var bbox = new BoundingBox(); + if (mesh != null) + { + bbox = mesh.GetBoundingBox(false); + } + if (surface != null) + { + bbox = surface.GetBoundingBox(false); + } + var span = bbox.Center.DistanceTo(bbox.GetCorners()[0]); + return span / 25; + } + // Measure distances between each of the points List distances = new List(); for (var i = 1; i < flowPathPoints.Count; i++) diff --git a/plugin/Hydro/groundhogMeshFlowPathComponent.cs b/plugin/Hydro/groundhogMeshFlowPathComponent.cs index 74aebb5e..550c21ad 100644 --- a/plugin/Hydro/groundhogMeshFlowPathComponent.cs +++ b/plugin/Hydro/groundhogMeshFlowPathComponent.cs @@ -60,7 +60,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) if (FLOW_FIDELITY == 0) { - FLOW_FIDELITY = FlowCalculations.getSensibleFidelity(FLOW_ORIGINS); + FLOW_FIDELITY = FlowCalculations.getSensibleFidelity(FLOW_ORIGINS, FLOW_MESH, null); } var startPoints = FLOW_ORIGINS.ToArray(); // Array for multithreading diff --git a/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs b/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs index e468b249..a93b839c 100644 --- a/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs +++ b/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs @@ -27,7 +27,7 @@ public groundhogSurfaceFlowComponent() protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddSurfaceParameter("Surface", "S", "Base landscape form (as a surface) for the flow calculation", GH_ParamAccess.item); - pManager.AddPointParameter("Points", "P", "Start points for the flow paths (will be projected on to the surface)", GH_ParamAccess.list); + pManager.AddPointParameter("Points", "P", "Start points for the flow paths. These should be above the surface (they will be projected on to it)", GH_ParamAccess.list); pManager.AddNumberParameter("Fidelity", "F", "Amount to move for each flow iteration. Small numbers may take a long time to compute. If not specified or set to 0 a (hopefully) sensible step size will be calculated.", GH_ParamAccess.item, 0); pManager[2].Optional = true; pManager.AddIntegerParameter("Steps", "L", "A limit to the number of flow iterations. Leave unset or to 0 for an unlimited set of iterations", GH_ParamAccess.item, 0); @@ -60,7 +60,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) if (FLOW_FIDELITY == 0) { - FLOW_FIDELITY = FlowCalculations.getSensibleFidelity(FLOW_ORIGINS); + FLOW_FIDELITY = FlowCalculations.getSensibleFidelity(FLOW_ORIGINS, null, FLOW_SURFACE); } var startPoints = FLOW_ORIGINS.ToArray(); // Array for multithreading diff --git a/plugin/groundhog_component.cs b/plugin/groundhog_component.cs index 8b4549c5..dd87f341 100644 --- a/plugin/groundhog_component.cs +++ b/plugin/groundhog_component.cs @@ -82,8 +82,9 @@ public override bool Read(GH_IO.Serialization.GH_IReader reader) } // Components must implement the method - protected abstract void GroundHogSolveInstance(IGH_DataAccess DA); + protected abstract void GroundHogSolveInstance(IGH_DataAccess DA); + #if !DEBUG // Override the main solve instance method to wrap it in a try/catch for error re"ortin purposes protected override void SolveInstance(IGH_DataAccess DA) { @@ -93,14 +94,18 @@ protected override void SolveInstance(IGH_DataAccess DA) catch (Exception componentException) { Console.WriteLine("Exception caught: {0}", componentException); - #if !DEBUG // Log exception to Sentry constructRavenClient().Capture(new SentryEvent(componentException)); - #endif - // Throw the error anyway so it bubbles up - throw; + // Throw the error anyway so it bubbles up + throw; } } + #else + protected override void SolveInstance(IGH_DataAccess DA) + { + GroundHogSolveInstance(DA); + } + #endif // Pass the constructor parameters up to the main GH_Component abstract class protected GroundHog_Component(string name, string nickname, string description, string category, string subCategory) From 6c3288e7ab86149da009f8ed59f7f68a234ef786 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Sun, 22 Apr 2018 19:48:45 +1000 Subject: [PATCH 02/18] Whitespace --- plugin/Hydro/groundhogMeshFlowPathComponent.cs | 4 ++-- plugin/Hydro/groundhogSurfaceFlowPathComponent.cs | 2 +- plugin/Mapping/groundhogFieldComponent.cs | 4 +--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/plugin/Hydro/groundhogMeshFlowPathComponent.cs b/plugin/Hydro/groundhogMeshFlowPathComponent.cs index 550c21ad..c68c5e54 100644 --- a/plugin/Hydro/groundhogMeshFlowPathComponent.cs +++ b/plugin/Hydro/groundhogMeshFlowPathComponent.cs @@ -27,7 +27,7 @@ public groundhogMeshFlowComponent() protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddMeshParameter("Mesh", "M", "Base landscape form (as a mesh) for the flow calculation", GH_ParamAccess.item); - pManager.AddPointParameter("Points", "P", "Start points for the flow paths (will be projected on to the mesh)", GH_ParamAccess.list); + pManager.AddPointParameter("Points", "P", "Start points for the flow paths. These should be above the mesh (they will be projected on to it)", GH_ParamAccess.list); pManager.AddNumberParameter("Fidelity", "F", "Amount to move for each flow iteration. Small numbers may take a long time to compute. If not specified or set to 0 a (hopefully) sensible step size will be calculated.", GH_ParamAccess.item, 0); pManager[2].Optional = true; pManager.AddIntegerParameter("Steps", "L", "A limit to the number of flow iterations. Leave unset or to 0 for an unlimited set of iterations", GH_ParamAccess.item, 0); @@ -84,7 +84,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) } private List DispatchFlowPoints(Mesh FLOW_MESH, Point3d initialStartPoint, - double MOVE_DISTANCE, int FLOW_LIMIT) + double MOVE_DISTANCE, int FLOW_LIMIT) { var flowPoints = new List(); // Holds each step diff --git a/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs b/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs index a93b839c..5b501510 100644 --- a/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs +++ b/plugin/Hydro/groundhogSurfaceFlowPathComponent.cs @@ -87,7 +87,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) } private List DispatchFlowPoints(Brep FLOW_SURFACE, Point3d initialStartPoint, - double MOVE_DISTANCE, int FLOW_LIMIT) + double MOVE_DISTANCE, int FLOW_LIMIT) { var flowPoints = new List(); // Holds each step diff --git a/plugin/Mapping/groundhogFieldComponent.cs b/plugin/Mapping/groundhogFieldComponent.cs index 599ffb6a..563778d1 100644 --- a/plugin/Mapping/groundhogFieldComponent.cs +++ b/plugin/Mapping/groundhogFieldComponent.cs @@ -151,9 +151,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) for (var j = 0; j < size1; j++) pointsList.Add(gridPts[i, j].Location); - var fieldSrf = - NurbsSurface.CreateFromPoints(pointsList, xGridExtents, yGridExtents, 3, - 3); // points, x/y counts, u/v degrees + var fieldSrf = NurbsSurface.CreateFromPoints(pointsList, xGridExtents, yGridExtents, 3, 3); // Assign variables to output parameters DA.SetData(0, fieldSrf); From 505ec00bfc68682779c55e073b8a44f172c402b1 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Sun, 22 Apr 2018 20:17:10 +1000 Subject: [PATCH 03/18] Better handle bad input in FieldComponent Fixes GROUNDHOG-Q and GROUNDHOG-P --- CHANGELOG.md | 1 + plugin/Mapping/groundhogFieldComponent.cs | 44 +++++++++++++++-------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcf2e56b..086af06b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ #### [0.7.3b] - ????-??-?? ###### Fixed - Flow components will no longer crash when given fewer than three points without a specified Fidelity +- Providing bad input to the Field Mapper component will now reject it rather than proceeding and creating an error #### [0.7.2b] - 2018-04-15 ###### Added diff --git a/plugin/Mapping/groundhogFieldComponent.cs b/plugin/Mapping/groundhogFieldComponent.cs index 563778d1..6a3d9d41 100644 --- a/plugin/Mapping/groundhogFieldComponent.cs +++ b/plugin/Mapping/groundhogFieldComponent.cs @@ -26,7 +26,7 @@ public groundhogFieldComponent() protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddCurveParameter("Bounds", "B", "Boundary box for the resulting field", GH_ParamAccess.item); - pManager.AddNumberParameter("Divisions", "D", "Sample points spacings for the resulting field (greatest extent in one direction)", GH_ParamAccess.item); + pManager.AddIntegerParameter("Divisions", "D", "Sample points spacings for the resulting field (greatest extent in one direction)", GH_ParamAccess.item); pManager.AddCurveParameter("Areas", "A", "Boundary box for the resulting field", GH_ParamAccess.list); pManager.AddNumberParameter("Z Range", "Z", "Maximum height of the surface field (defaults to 5% of boundary width/height)", GH_ParamAccess.item, 0.0); } @@ -41,7 +41,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) { // Create holder variables for input parameters Curve gridBounds = null; - var gridDivisions = 24.0; + var gridDivisions = 24; var areas = new List(); var zRange = 0.0; // Default value; is later set to 5% of maximum dimension if still 0 @@ -57,27 +57,41 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) var ALL_DATA_REGIONS = areas; var INTERPOLATE = true; + // Input Validation if (gridDivisions < 4) - AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Numver of grid divisions must be greater than 4 in order to create a surface"); - - // Validate input curves are planar + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "The number of grid divisions must be greater than 4 in order to create a field"); + return; + } if (!BOUNDARY.IsPlanar()) - AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Boundary curve is not planar"); + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Boundary curve is not planar"); + return; + } if (!BOUNDARY.IsClosed) - AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Boundary curve is not closed"); - + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Boundary curve is not closed"); + return; + } for (var i = 0; i < areas.Count; i = i + 1) { if (areas[i] == null) - AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "An area curve is not defined (null)"); - else - if (!areas[i].IsPlanar()) - AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "A boundary curve is not planar"); - if (!areas[i].IsClosed) - AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "A boundary curve is not closed"); + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "An area curve is not defined (null)"); + return; + } + else if (!areas[i].IsPlanar()) + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "An area curve curve is not planar"); + return; + } + else if (!areas[i].IsClosed) + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "An area curve curve is not closed"); + return; + } } - // Construct the bounding box for the search limits boundary; identify its extents and if its square var boundaryBox = BOUNDARY.GetBoundingBox(false); // False = uses estimate method var BOUNDARY_IS_RECT = IsBoundaryRect(BOUNDARY, TOLERANCE); From 1ff33b2afc5b3e15ac8b8b0c71b361ae3ebd6b84 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Sun, 22 Apr 2018 20:24:06 +1000 Subject: [PATCH 04/18] Update contours demo --- .../contours/Groundhog - Contour Examples.ghx | 1040 ++++++++++------- 1 file changed, 592 insertions(+), 448 deletions(-) diff --git a/docs/contours/Groundhog - Contour Examples.ghx b/docs/contours/Groundhog - Contour Examples.ghx index 80a209c7..0e041816 100644 --- a/docs/contours/Groundhog - Contour Examples.ghx +++ b/docs/contours/Groundhog - Contour Examples.ghx @@ -48,10 +48,10 @@ - 534 - 538 + -338 + 346 - 1.31925869 + 1 @@ -83,10 +83,37 @@ - 21 + 23 - + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + b3ad00e4-49ea-4994-abca-8702ec4da69a + 967eb040-b136-4fc1-9595-f7511072b603 + b78592f4-22b6-4f3a-93e4-8e5d58d82520 + 3 + 5d1c115a-2f52-4090-bc41-4c279657be3b + Group + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -111,7 +138,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -136,7 +163,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -161,7 +188,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -186,7 +213,7 @@ - + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 Curve @@ -207,14 +234,14 @@ - -95 - 266 + -102 + 269 71 20 - -59.49433 - 276.736 + -66.49433 + 279.736 @@ -243,7 +270,7 @@ - + 2e78987b-9dfb-42a2-8b76-3923ac8bd91a Boolean Toggle @@ -263,8 +290,8 @@ - -218 - 316 + 543 + 553 199 22 @@ -274,51 +301,6 @@ - - - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider - - - - - Numeric slider for single values - 33fa4171-ccf2-49c9-a381-eb9454f74062 - Number Slider - Gap Bridging Tolerance - false - 0 - - - - - - -246 - 216 - 247 - 20 - - - -245.3486 - 216.9801 - - - - - - 3 - 1 - 1 - 10 - 0 - 0 - 7 - - - - - - d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 @@ -339,14 +321,14 @@ - -93 - 167 + -94 + 217 60 20 - -62.73465 - 177.4459 + -63.73465 + 227.4459 @@ -952,14 +934,14 @@ - 52 - 63 + 106 + 102 199 150 - 151 - 138 + 205 + 177 @@ -978,14 +960,14 @@ - 54 - 65 + 108 + 104 82 146 - 96.5 - 138 + 150.5 + 177 @@ -1005,14 +987,14 @@ - 166 - 65 + 220 + 104 83 73 - 207.5 - 101.5 + 261.5 + 140.5 @@ -1032,14 +1014,14 @@ - 166 - 138 + 220 + 177 83 73 - 207.5 - 174.5 + 261.5 + 213.5 @@ -1068,14 +1050,14 @@ - 392 - 221 + 489 + 282 188 119 - 509 - 281 + 606 + 342 @@ -1094,14 +1076,14 @@ - 394 - 223 + 491 + 284 100 38 - 445.5 - 242.1667 + 542.5 + 303.1667 @@ -1121,14 +1103,14 @@ - 394 - 261 + 491 + 322 100 38 - 445.5 - 280.5 + 542.5 + 341.5 @@ -1148,14 +1130,14 @@ - 394 - 299 + 491 + 360 100 39 - 445.5 - 318.8333 + 542.5 + 379.8333 @@ -1175,14 +1157,14 @@ - 524 - 223 + 621 + 284 54 57 - 551 - 251.75 + 648 + 312.75 @@ -1202,14 +1184,14 @@ - 524 - 280 + 621 + 341 54 58 - 551 - 309.25 + 648 + 370.25 @@ -1227,8 +1209,9 @@ - + Checks contours meet a specific boundary, otherwise extend/trim them + true b76b9255-1c82-45ec-affe-74ac3f16ad94 Contour Clip Contour Clip @@ -1237,14 +1220,14 @@ - 719 - 432 + 795 + 483 211 95 - 825 - 480 + 901 + 531 @@ -1263,14 +1246,14 @@ - 721 - 434 + 797 + 485 89 30 - 767 - 449.1667 + 843 + 500.1667 @@ -1290,14 +1273,14 @@ - 721 - 464 + 797 + 515 89 30 - 767 - 479.5 + 843 + 530.5 @@ -1317,14 +1300,14 @@ - 721 - 494 + 797 + 545 89 31 - 767 - 509.8333 + 843 + 560.8334 @@ -1344,14 +1327,14 @@ - 840 - 434 + 916 + 485 88 30 - 884 - 449.1667 + 960 + 500.1667 @@ -1371,14 +1354,14 @@ - 840 - 464 + 916 + 515 88 30 - 884 - 479.5 + 960 + 530.5 @@ -1398,14 +1381,14 @@ - 840 - 494 + 916 + 545 88 31 - 884 - 509.8333 + 960 + 560.8334 @@ -1417,71 +1400,78 @@ - 9c53bac0-ba66-40bd-8154-ce9829b9db1a - Colour Swatch + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider - - Colour (palette) swatch - f650bbee-3f29-40ef-b054-1e11e8cc8062 - Colour Swatch - Colour Swatch + + Numeric slider for single values + b78592f4-22b6-4f3a-93e4-8e5d58d82520 + Number Slider + Bridging Distance false 0 - - 255;0;255;190 - - + - 300 - 94 - 124 + -246 + 315 + 219 20 - 300.4209 - 94.05518 + -245.1192 + 315.9139 + + + 3 + 1 + 1 + 10000 + 0 + 0 + 2000 + + - 9c53bac0-ba66-40bd-8154-ce9829b9db1a - Colour Swatch + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve - - Colour (palette) swatch - ce338299-c8ac-468d-9da4-3b36fefa73a5 - Colour Swatch - Colour Swatch + + Contains a collection of generic curves + true + 365cf975-ab39-403c-92a1-48dc9c7094c0 + Curve + Fixed Contours (in Bounds) false - 0 - - 255;239;255;10 - + ea078bac-8564-4910-a281-cc52167a354f + 1 - 614 - 96 - 124 + 1114 + 458 + 153 20 - 614.2928 - 96.76865 + 1191.469 + 468.75 @@ -1491,172 +1481,217 @@ - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve - - Numeric slider for single values - b78592f4-22b6-4f3a-93e4-8e5d58d82520 - Number Slider - Number Slider + + Contains a collection of generic curves + true + 36be4986-29cb-4454-9ae2-2ff827616d3a + Curve + Fixed Contours (to and around Bounds) false - 0 + bf56be67-9271-4bbb-9551-3516ea64bfe1 + 1 - + - -213 - 365 - 203 + 1112 + 570 + 217 20 - -212.1192 - 365.9139 + 1221.082 + 580.5292 - - - 3 - 1 - 1 - 10000 - 0 - 0 - 2000 - - - 537b0419-bbc2-4ff4-bf08-afe526367b2c - Custom Preview + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group - - Allows for customized geometry previews - f0b27638-2f55-42c0-a037-9be2877293de - Custom Preview - Custom Preview - + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + c09fdc36-a147-4f4a-83a3-55e86357eb99 + b3f27ebd-8192-49e7-b079-a238a6e43e3a + 2 + 7bed013f-fc17-4527-b471-a65a8369e424 + Group + - + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + false + + -275.432 + -228.1133 + + + -27.12634 + -228.1133 + + + -27.12634 + -207.4776 + + + -275.432 + -207.4776 + + A quick note + Microsoft Sans Serif + c09fdc36-a147-4f4a-83a3-55e86357eb99 + false + Scribble + Scribble + 22 + Groundhog Example File + + + + - 472 - 17 - 86 - 118 + -280.432 + -233.1133 + 258.3057 + 30.63574 - 544 - 76 + -275.432 + -228.1133 - - - Geometry to preview - true - 182b1747-9fd3-4f7b-8d87-f02029765948 - Geometry - Geometry - false - 8075fc1f-6215-4313-9424-86297501e053 - 1 - - - - - - 474 - 19 - 55 - 57 - - - 503 - 47.5 - - - - - - - - The preview shader override - c0666f45-6c52-431c-be76-47ae2d7d1eb5 - Shader - Shader - false - f650bbee-3f29-40ef-b054-1e11e8cc8062 - 1 - - - - - - 474 - 76 - 55 - 57 - - - 503 - 104.5 - - - - - - 1 - - - - - 1 - {0} - - - - - - 255;0;0;0 - - - 255;255;105;180 - - - 255;76;32;54 - - 00000000-0000-0000-0000-000000000000 - 0.5 - - 255;255;255;255 - - 0 - - - - - - - + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + b3f27ebd-8192-49e7-b079-a238a6e43e3a + Panel + + false + 0 + 0 + Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + +Contact groundhog@philipbelesky.com for support or feedback. + +This is an example file related to the plugin's documentation. + +This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 + + + + + + -279 + -193 + 264 + 176 + + 0 + 0 + 0 + + -278.3271 + -192.429 + + + + + + 1 + + 255;245;245;245 + + true + true + true + false + true + - + + + 9c53bac0-ba66-40bd-8154-ce9829b9db1a + Colour Swatch + + + + + Colour (palette) swatch + 1874126b-6f16-4231-966e-ee615982105d + Colour Swatch + Colour Swatch + false + 0 + + 255;84;84;84 + + + + + + + 1205 + 520 + 124 + 20 + + + 1205.293 + 520.7686 + + + + + + + + 537b0419-bbc2-4ff4-bf08-afe526367b2c Custom Preview @@ -1665,23 +1700,23 @@ Allows for customized geometry previews - e313f305-6a79-47d2-a888-c8fb3e0b2126 + e61d7a43-f9b5-4bb5-964e-6da31078a385 Custom Preview - Custom Preview + Bridged Gaps - 805 - 15 + 1396 + 446 86 - 118 + 101 - 877 - 74 + 1468 + 497 @@ -1689,25 +1724,25 @@ Geometry to preview true - d6c3b0e3-a399-4c2f-9061-4a0f8aee0155 + 49176d6f-8386-4b68-a453-a66c13ea9692 Geometry Geometry false - f27b65ac-0e9b-4551-9e61-810c6f26e77a + 365cf975-ab39-403c-92a1-48dc9c7094c0 1 - 807 - 17 + 1398 + 448 55 - 57 + 48 - 836 - 45.5 + 1427 + 472.25 @@ -1716,25 +1751,25 @@ The preview shader override - 7046009c-bd34-422a-83f4-cb306f6e9fc2 + 48564a44-dfeb-4bf3-81bb-6bf519495102 Shader Shader false - ce338299-c8ac-468d-9da4-3b36fefa73a5 + 1874126b-6f16-4231-966e-ee615982105d 1 - 807 - 74 + 1398 + 496 55 - 57 + 49 - 836 - 102.5 + 1427 + 520.75 @@ -1778,34 +1813,36 @@ - + - d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 - Curve + 9c53bac0-ba66-40bd-8154-ce9829b9db1a + Colour Swatch - Contains a collection of generic curves - 365cf975-ab39-403c-92a1-48dc9c7094c0 - Curve - Fixed Contours (in Bounds) + Colour (palette) swatch + ec987d8c-367d-42f1-a342-aa1ce9222928 + Colour Swatch + Colour Swatch false - ea078bac-8564-4910-a281-cc52167a354f - 1 + 0 + + 255;0;255;190 + - 1037 - 439 - 153 + 656 + 106 + 124 20 - 1114.469 - 449.75 + 656.4209 + 106.0552 @@ -1813,34 +1850,36 @@ - + - d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 - Curve + 9c53bac0-ba66-40bd-8154-ce9829b9db1a + Colour Swatch - Contains a collection of generic curves - 36be4986-29cb-4454-9ae2-2ff827616d3a - Curve - Fixed Contours (to and around Bounds) + Colour (palette) swatch + 54307c80-d0fa-42e3-a26d-3d2106b92a81 + Colour Swatch + Colour Swatch false - bf56be67-9271-4bbb-9551-3516ea64bfe1 - 1 + 0 + + 255;239;255;10 + - 1033 - 491 - 217 + 987 + 97 + 124 20 - 1142.082 - 501.5292 + 987.2928 + 97.7686 @@ -1848,140 +1887,245 @@ - - - c552a431-af5b-46a9-a8a4-0fcbc27ef596 - Group - - - - - 1 - - 200;255;141;101 - - A group of Grasshopper objects - c09fdc36-a147-4f4a-83a3-55e86357eb99 - b3f27ebd-8192-49e7-b079-a238a6e43e3a - 2 - 7bed013f-fc17-4527-b471-a65a8369e424 - Group - - - - - - - - - + - 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe - Scribble + 537b0419-bbc2-4ff4-bf08-afe526367b2c + Custom Preview - - false - - -275.432 - -228.1133 - - - -27.12634 - -228.1133 - - - -27.12634 - -207.4776 - - - -275.432 - -207.4776 - - A quick note - Microsoft Sans Serif - c09fdc36-a147-4f4a-83a3-55e86357eb99 - false - Scribble - Scribble - 22 - Groundhog Example File - - + + Allows for customized geometry previews + 5ca93c32-37c7-4ece-b87b-5f5ddd5a39f7 + Custom Preview + Clipped Contours + - + - -280.432 - -233.1133 - 258.3057 - 30.63574 + 810 + 23 + 86 + 126 - -275.432 - -228.1133 + 882 + 86 + + + Geometry to preview + true + 381347b7-b990-445b-a852-a55067ceadbe + Geometry + Geometry + false + 8075fc1f-6215-4313-9424-86297501e053 + 1 + + + + + + 812 + 25 + 55 + 61 + + + 841 + 55.5 + + + + + + + + The preview shader override + 246f68f7-d25a-467c-b3b3-29e39adbf42d + Shader + Shader + false + ec987d8c-367d-42f1-a342-aa1ce9222928 + 1 + + + + + + 812 + 86 + 55 + 61 + + + 841 + 116.5 + + + + + + 1 + + + + + 1 + {0} + + + + + + 255;0;0;0 + + + 255;255;105;180 + + + 255;76;32;54 + + 00000000-0000-0000-0000-000000000000 + 0.5 + + 255;255;255;255 + + 0 + + + + + + + + - + - 59e0b89a-e487-49f8-bab8-b5bab16be14c - Panel + 537b0419-bbc2-4ff4-bf08-afe526367b2c + Custom Preview - - A panel for custom notes and text values - b3f27ebd-8192-49e7-b079-a238a6e43e3a - Panel - - false - 0 - 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ - -Contact groundhog@philipbelesky.com for support or feedback. - -This is an example file related to the plugin's documentation. - -This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 + + Allows for customized geometry previews + 8f97b336-aec0-4b03-b6de-3322a0f193a3 + Custom Preview + Bridged Gaps + - + - + - -279 - -193 - 264 - 176 + 1143 + 33 + 86 + 101 - 0 - 0 - 0 - -278.3271 - -192.429 + 1215 + 84 - + + + Geometry to preview + true + 1588bbcb-bd7f-4eaf-9582-e4086c1ba348 + Geometry + Geometry + false + f27b65ac-0e9b-4551-9e61-810c6f26e77a + 1 + + + + + + 1145 + 35 + 55 + 48 + + + 1174 + 59.25 + + + + + + - 1 - - 255;245;245;245 - - true - true - true - false - true + The preview shader override + 98662adc-09e6-478f-9691-b1e7ad8121d9 + Shader + Shader + false + 54307c80-d0fa-42e3-a26d-3d2106b92a81 + 1 + + + + + 1145 + 83 + 55 + 49 + + + 1174 + 107.75 + + + + + + 1 + + + + + 1 + {0} + + + + + + 255;0;0;0 + + + 255;255;105;180 + + + 255;76;32;54 + + 00000000-0000-0000-0000-000000000000 + 0.5 + + 255;255;255;255 + + 0 + + + + + + + @@ -1994,7 +2138,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 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 From aad2968a826a13bc3339a50b0e8a73e3e859ddeb Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Sun, 22 Apr 2018 21:31:46 +1000 Subject: [PATCH 05/18] Improve error handling in contour components --- CHANGELOG.md | 1 + .../contours/Groundhog - Contour Examples.3dm | 4 +- .../contours/Groundhog - Contour Examples.ghx | 854 ++++++++++++------ .../groundhogContourCheckGapsComponent.cs | 64 +- .../Terrain/groundhogContourClipComponent.cs | 9 +- 5 files changed, 644 insertions(+), 288 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 086af06b..484f58bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ###### Fixed - Flow components will no longer crash when given fewer than three points without a specified Fidelity - Providing bad input to the Field Mapper component will now reject it rather than proceeding and creating an error +- Improved some error handling on the Contour components #### [0.7.2b] - 2018-04-15 ###### Added diff --git a/docs/contours/Groundhog - Contour Examples.3dm b/docs/contours/Groundhog - Contour Examples.3dm index 07b18f48..84a363b4 100644 --- a/docs/contours/Groundhog - Contour Examples.3dm +++ b/docs/contours/Groundhog - Contour Examples.3dm @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fee622766e955a005a82907654572e662e518ab666d55803440d192045d3fb58 -size 535647 +oid sha256:1b7270c924bf59c08e9d66ef819ab26818daa5ff64f4847c76533b297888082a +size 551387 diff --git a/docs/contours/Groundhog - Contour Examples.ghx b/docs/contours/Groundhog - Contour Examples.ghx index 0e041816..43c2d9c6 100644 --- a/docs/contours/Groundhog - Contour Examples.ghx +++ b/docs/contours/Groundhog - Contour Examples.ghx @@ -23,7 +23,7 @@ d9688a1a-c5cb-4064-9dda-5e94e23f7fdf - Shaded + Wireframe 1 100;150;0;0 @@ -48,10 +48,10 @@ - -338 - 346 + -143 + 330 - 1 + 0.7779942 @@ -83,9 +83,9 @@ - 23 + 26 - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 @@ -290,8 +290,8 @@ - 543 - 553 + 772 + 586 199 22 @@ -339,572 +339,632 @@ - 94 + 104 {0} - + -1 - 1f384324-1332-40b6-bcef-b1873f315727 + 2ec87e3d-72c7-4b9c-8758-eeea9397213f -1 - eaa368c6-ac52-4097-808f-3e972f84e287 + 13c2f93d-c92e-43db-8a7e-3a561995eb34 -1 - 744f2d4f-dc36-4f5c-a7bc-c02d9d7fbe5c + 91ed5e90-cd7e-4e3e-ba99-0d8f58244693 -1 - e337714c-9db3-4673-b7f1-3e7cf272bbf2 + 80b1c343-7412-4cd7-8f10-a8eeabd32bd7 -1 - 26444362-6126-43cc-ba11-04ccddbecb65 + 9cf533ce-71a2-4dfd-b353-10ea7917587f -1 - 77ea328c-1645-4cdd-a00d-5a6d87a73014 + 4dc548f6-aa4b-4150-b558-1a677ae1c327 -1 - 5fa63f5e-1069-4fbb-a4e2-d1bfdf5f718a + 97cc4d55-258c-4bd1-91ef-3a4f128f29e9 -1 - 5dc5df7b-d3b0-4c0a-b05f-c9d06c1b30cd + 509494a4-cad3-4349-a02a-9f3bf2a4dec9 -1 - 321559d2-f599-497a-8450-0e22f4d263b8 + 3876b561-cc62-49ef-9702-646b889be4e6 -1 - 399e55dd-787c-4214-9f02-63365e933262 + 1337c593-0f85-45e8-b5e5-f02d2b2bef64 -1 - 1d879678-7b9b-4736-9439-8f785f77bce4 + 14a66581-ae45-4663-8e5b-42052f6656c6 -1 - 3fcbcce0-a616-4b04-af98-6d436ecad9fe + 489427e7-0884-4db2-877b-338a3f9f6da6 -1 - 5260168c-2199-4da8-b5e3-d22db6a1548b + f836894b-8266-4f23-beae-fc43af865c1c -1 - f2cdddca-a200-44d1-9b44-923c671655a5 + 29211511-e737-4b66-82b2-2aae3a30084f -1 - 01a59334-7d76-4d02-bb91-7ee9944782e7 + 2ae93da9-c64f-4e15-9264-c9d1fd61dac7 -1 - ce6d8105-1339-48bb-bd95-82ef1c96417b + dc261a73-2295-48a4-90c5-7171a7932bc1 -1 - e8c87761-6e43-402c-aa16-6b5e71d5aed9 + d28a5818-3970-4f80-8860-f1e8f6e35bdf -1 - efe560c3-8874-40e1-88a2-988a8754b92b + 41aeaaa8-2073-4b8b-a891-7bee0ef7a9e5 -1 - 0c15adfc-ecc8-4911-aee1-ece2bd243131 + 4d1e21ef-3202-4b0f-bed4-6e761fc53334 -1 - dc91d2ec-4562-4008-874b-85471ea587fc + d790035b-18d0-4e2d-9b35-70233b903e7b -1 - 70282a4e-ed9e-4d33-92de-7d97c224d2d7 + 0830564b-dd2b-482f-80cb-efba4ff4cb48 -1 - becbae73-35cb-4464-8604-c45b9da61b9d + 1f384324-1332-40b6-bcef-b1873f315727 -1 - 530662cc-cfaa-4297-8fcd-4d4df59451e9 + eaa368c6-ac52-4097-808f-3e972f84e287 -1 - eafa4849-53ef-4411-93b5-92e55137b46e + 744f2d4f-dc36-4f5c-a7bc-c02d9d7fbe5c -1 - 8dbca4db-4f3c-4290-b0c0-0c6ea1fc91bc + e337714c-9db3-4673-b7f1-3e7cf272bbf2 -1 - 6e4a6f59-d16f-452f-9f8d-313dca187e64 + 26444362-6126-43cc-ba11-04ccddbecb65 -1 - 9159b809-454e-4db8-b2e2-681453170ad8 + 77ea328c-1645-4cdd-a00d-5a6d87a73014 -1 - 81ab8303-8246-4871-9e63-349b2c4e9ab7 + 5fa63f5e-1069-4fbb-a4e2-d1bfdf5f718a -1 - f776187a-b5d4-4a74-bf44-a828c65437d3 + 5dc5df7b-d3b0-4c0a-b05f-c9d06c1b30cd -1 - 6d2e3d2a-ee7b-4a1b-ba55-28730a247a8a + 321559d2-f599-497a-8450-0e22f4d263b8 -1 - 8e1a3e56-af4e-4942-8a4b-0a32d1554ee2 + 1d879678-7b9b-4736-9439-8f785f77bce4 -1 - e8490ccf-45de-459a-a3d6-b60b1b381834 + 3fcbcce0-a616-4b04-af98-6d436ecad9fe -1 - 2984d863-9eb9-4c81-ab25-6183c2866bbd + 5260168c-2199-4da8-b5e3-d22db6a1548b -1 - 6bdf4874-8285-4af2-bab5-e3f1b994adf4 + f2cdddca-a200-44d1-9b44-923c671655a5 -1 - 69d84d7c-b89e-4fae-9498-08747eabe63d + 01a59334-7d76-4d02-bb91-7ee9944782e7 -1 - 3856615d-7cd2-47c2-86d4-12afbbf0129a + ce6d8105-1339-48bb-bd95-82ef1c96417b -1 - ff2d5421-c05d-42a5-b81f-eab2c7aafb85 + e8c87761-6e43-402c-aa16-6b5e71d5aed9 -1 - 522d655e-6246-4d16-93d8-47f4c2068796 + efe560c3-8874-40e1-88a2-988a8754b92b -1 - 4b90477a-b825-41be-95f6-43cfa7803d9c + 0c15adfc-ecc8-4911-aee1-ece2bd243131 -1 - b9b55966-ed6c-4a89-a761-2d7ba2929840 + dc91d2ec-4562-4008-874b-85471ea587fc -1 - ed36c858-dafe-4029-b557-cbf52d034468 + 70282a4e-ed9e-4d33-92de-7d97c224d2d7 -1 - 29be9dff-07a9-4c3f-89b8-373797f611b3 + becbae73-35cb-4464-8604-c45b9da61b9d -1 - ff0f2c02-9c22-49fe-8c74-30e40a23f6f3 + 530662cc-cfaa-4297-8fcd-4d4df59451e9 -1 - 09ae2c0c-0ea4-4b6a-b53e-0e1c00107562 + eafa4849-53ef-4411-93b5-92e55137b46e -1 - af27dd4d-6c0a-418b-a303-74eaef6f1cc3 + 8dbca4db-4f3c-4290-b0c0-0c6ea1fc91bc -1 - 148391b7-bca1-41de-bc0e-a181310f7fa9 + 6e4a6f59-d16f-452f-9f8d-313dca187e64 -1 - 4eb5993b-81b8-4127-8832-3a1b5a384d0a + 9159b809-454e-4db8-b2e2-681453170ad8 -1 - 4de3c62f-49ef-4fc2-9a00-a80a1dae2464 + 81ab8303-8246-4871-9e63-349b2c4e9ab7 -1 - a56be863-8748-4a03-991a-e7406630f736 + f776187a-b5d4-4a74-bf44-a828c65437d3 -1 - 59b4b8a4-5c87-41a0-adca-46819b58b92a + 6d2e3d2a-ee7b-4a1b-ba55-28730a247a8a -1 - a30ff286-f8f1-4fdb-97b4-39e321a18cbc + 8e1a3e56-af4e-4942-8a4b-0a32d1554ee2 -1 - 1d86b051-a3a8-4157-b86d-e58cd0b14d9d + e8490ccf-45de-459a-a3d6-b60b1b381834 -1 - 4e55f5a4-6685-4470-9a26-f8a1d1d31301 + 2984d863-9eb9-4c81-ab25-6183c2866bbd -1 - bce0e263-614f-4ccb-b4e7-1c585f1e408e + 6bdf4874-8285-4af2-bab5-e3f1b994adf4 -1 - b53b2980-691e-442d-bfc2-18aca66a3e08 + 69d84d7c-b89e-4fae-9498-08747eabe63d -1 - d1275541-1f1d-4bfe-8de3-3818c6dc640a + 3856615d-7cd2-47c2-86d4-12afbbf0129a -1 - badf3ef8-92c2-45dc-9096-2260f58fb947 + ff2d5421-c05d-42a5-b81f-eab2c7aafb85 -1 - 65e26fa8-0459-47fa-962f-c22f9776b265 + 522d655e-6246-4d16-93d8-47f4c2068796 -1 - 8556ed37-b999-4e76-9298-6c68b6dedd76 + 4b90477a-b825-41be-95f6-43cfa7803d9c -1 - 62b4cc8d-6a18-4715-ba6e-d99fedf63591 + af27dd4d-6c0a-418b-a303-74eaef6f1cc3 -1 - 428653f8-3b9d-43e9-9fb2-720bedd5c571 + 148391b7-bca1-41de-bc0e-a181310f7fa9 -1 - 9bf0ff4a-7701-47cd-aa4c-b9276e704163 + 4eb5993b-81b8-4127-8832-3a1b5a384d0a -1 - c5e9fae8-80a5-483c-ae04-6faa7e68c64e + 4de3c62f-49ef-4fc2-9a00-a80a1dae2464 -1 - a8010255-6698-4ed8-98a9-a532fed7b561 + a56be863-8748-4a03-991a-e7406630f736 -1 - f56baebb-091a-4eb7-8b69-e80fe88b9241 + 59b4b8a4-5c87-41a0-adca-46819b58b92a -1 - d199ae0c-5fd4-471c-a36d-0ed83f183469 + a30ff286-f8f1-4fdb-97b4-39e321a18cbc -1 - 5b5abd2a-f079-4726-ae31-0fcace1fb26f + 1d86b051-a3a8-4157-b86d-e58cd0b14d9d -1 - 07ee71b3-7ce6-4b79-a8c9-6db0ed0f31e1 + 4e55f5a4-6685-4470-9a26-f8a1d1d31301 -1 - 9719d478-e58a-4f17-9067-7fd8b488414e + bce0e263-614f-4ccb-b4e7-1c585f1e408e -1 - a0f13e57-862a-4c64-906f-885c620b16a6 + b53b2980-691e-442d-bfc2-18aca66a3e08 -1 - 66ba71f7-6716-4e85-8b71-1954446dadb0 + d1275541-1f1d-4bfe-8de3-3818c6dc640a -1 - 0e765e06-491b-431b-a2d5-e209aaf44c46 + badf3ef8-92c2-45dc-9096-2260f58fb947 -1 - 6c720142-0874-4d93-a068-83af9e3c6965 + 62b4cc8d-6a18-4715-ba6e-d99fedf63591 -1 - 9d8ec0d5-9aef-478b-9850-96d2e4e762c7 + 428653f8-3b9d-43e9-9fb2-720bedd5c571 -1 - ff938403-995f-4fe0-a1e1-350e074c511c + 9bf0ff4a-7701-47cd-aa4c-b9276e704163 -1 - 9e986e4c-5257-427c-acae-80ec6604491f + c5e9fae8-80a5-483c-ae04-6faa7e68c64e -1 - 3d76dc60-9eec-449f-bd34-64557948e4fd + a8010255-6698-4ed8-98a9-a532fed7b561 -1 - 5a2553f9-3782-4956-b55c-377108ffac85 + f56baebb-091a-4eb7-8b69-e80fe88b9241 -1 - 16933596-0328-46e1-b3e0-4e702ab9b8d1 + d199ae0c-5fd4-471c-a36d-0ed83f183469 -1 - a70bf70e-7c3e-4bc0-8155-1a7075b389bd + 5b5abd2a-f079-4726-ae31-0fcace1fb26f -1 - e8a7ff1c-2f3d-4c60-bdd6-47a2b18bc6fc + 07ee71b3-7ce6-4b79-a8c9-6db0ed0f31e1 -1 - f4c922e5-3bc7-4b0c-acfd-cab39d8a5acd + 9719d478-e58a-4f17-9067-7fd8b488414e -1 - 5fed971c-3b35-48f8-8458-58379b6bb4d9 + a0f13e57-862a-4c64-906f-885c620b16a6 -1 - dfe7f666-ae99-4c3a-b711-4d0c45194d29 + 66ba71f7-6716-4e85-8b71-1954446dadb0 -1 - 8f0487f8-1b36-4ae4-b7c6-e604a389321f + 0e765e06-491b-431b-a2d5-e209aaf44c46 -1 - e8d78bc7-f3a4-4b87-8e39-8c1dfb80b9cd + 6c720142-0874-4d93-a068-83af9e3c6965 -1 - 71f03cf9-c76a-48db-996e-befeb82592cd + 9d8ec0d5-9aef-478b-9850-96d2e4e762c7 -1 - 9f3c8d7c-68e6-4087-a03c-d7719694935f + ff938403-995f-4fe0-a1e1-350e074c511c -1 - a9e78620-963a-4bcd-a214-9a7550390044 + 9e986e4c-5257-427c-acae-80ec6604491f -1 - 1aa16f3f-a6a7-48d5-8d04-5152519990ee + 3d76dc60-9eec-449f-bd34-64557948e4fd -1 - 85392884-d4e5-4ede-9361-cef5f4f657d2 + 5a2553f9-3782-4956-b55c-377108ffac85 -1 - cbbd20ea-57f3-4836-adbc-0f168166ba5f + 16933596-0328-46e1-b3e0-4e702ab9b8d1 -1 - c0d468df-6bfe-45ba-851c-e3f0b7b4e935 + a70bf70e-7c3e-4bc0-8155-1a7075b389bd -1 - 0830564b-dd2b-482f-80cb-efba4ff4cb48 + e8a7ff1c-2f3d-4c60-bdd6-47a2b18bc6fc + + + + + -1 + f4c922e5-3bc7-4b0c-acfd-cab39d8a5acd + + + + + -1 + 5fed971c-3b35-48f8-8458-58379b6bb4d9 + + + + + -1 + dfe7f666-ae99-4c3a-b711-4d0c45194d29 + + + + + -1 + 8f0487f8-1b36-4ae4-b7c6-e604a389321f + + + + + -1 + e8d78bc7-f3a4-4b87-8e39-8c1dfb80b9cd + + + + + -1 + 71f03cf9-c76a-48db-996e-befeb82592cd + + + + + -1 + 1aa16f3f-a6a7-48d5-8d04-5152519990ee + + + + + -1 + 85392884-d4e5-4ede-9361-cef5f4f657d2 + + + + + -1 + cbbd20ea-57f3-4836-adbc-0f168166ba5f + + + + + -1 + c0d468df-6bfe-45ba-851c-e3f0b7b4e935 @@ -934,14 +994,14 @@ - 106 - 102 + 373 + 91 199 150 - 205 - 177 + 472 + 166 @@ -953,21 +1013,21 @@ Contour Curves Contour Curves false - 967eb040-b136-4fc1-9595-f7511072b603 + 8dc2b340-bb12-41ec-8d9f-f29a19d1226e 1 - 108 - 104 + 375 + 93 82 146 - 150.5 - 177 + 417.5 + 166 @@ -987,14 +1047,14 @@ - 220 - 104 + 487 + 93 83 73 - 261.5 - 140.5 + 528.5 + 129.5 @@ -1014,14 +1074,14 @@ - 220 - 177 + 487 + 166 83 73 - 261.5 - 213.5 + 528.5 + 202.5 @@ -1050,14 +1110,14 @@ - 489 - 282 + 704 + 302 188 119 - 606 - 342 + 821 + 362 @@ -1076,14 +1136,14 @@ - 491 - 284 + 706 + 304 100 38 - 542.5 - 303.1667 + 757.5 + 323.1667 @@ -1103,14 +1163,14 @@ - 491 - 322 + 706 + 342 100 38 - 542.5 - 341.5 + 757.5 + 361.5 @@ -1130,14 +1190,14 @@ - 491 - 360 + 706 + 380 100 - 39 + 38 - 542.5 - 379.8333 + 757.5 + 399.8333 @@ -1157,14 +1217,14 @@ - 621 - 284 + 836 + 304 54 57 - 648 - 312.75 + 863 + 332.75 @@ -1184,14 +1244,14 @@ - 621 - 341 + 836 + 361 54 58 - 648 - 370.25 + 863 + 390.25 @@ -1220,14 +1280,14 @@ - 795 - 483 + 1017 + 520 211 95 - 901 - 531 + 1123 + 568 @@ -1246,14 +1306,14 @@ - 797 - 485 + 1019 + 522 89 30 - 843 - 500.1667 + 1065 + 537.1667 @@ -1273,14 +1333,14 @@ - 797 - 515 + 1019 + 552 89 30 - 843 - 530.5 + 1065 + 567.5 @@ -1300,14 +1360,14 @@ - 797 - 545 + 1019 + 582 89 31 - 843 - 560.8334 + 1065 + 597.8334 @@ -1327,14 +1387,14 @@ - 916 - 485 + 1138 + 522 88 30 - 960 - 500.1667 + 1182 + 537.1667 @@ -1354,14 +1414,14 @@ - 916 - 515 + 1138 + 552 88 30 - 960 - 530.5 + 1182 + 567.5 @@ -1381,14 +1441,14 @@ - 916 - 545 + 1138 + 582 88 31 - 960 - 560.8334 + 1182 + 597.8334 @@ -1464,14 +1524,14 @@ - 1114 - 458 + 1369 + 465 153 20 - 1191.469 - 468.75 + 1446.411 + 475.912 @@ -1500,14 +1560,14 @@ - 1112 - 570 + 1369 + 620 217 20 - 1221.082 - 580.5292 + 1478.355 + 630.1008 @@ -1551,20 +1611,20 @@ false - -275.432 - -228.1133 + -275.9908 + -278.4018 - -27.12634 - -228.1133 + -27.68512 + -278.4018 - -27.12634 - -207.4776 + -27.68512 + -257.7661 - -275.432 - -207.4776 + -275.9908 + -257.7661 A quick note Microsoft Sans Serif @@ -1581,14 +1641,14 @@ - -280.432 - -233.1133 + -280.9908 + -283.4018 258.3057 30.63574 - -275.432 - -228.1133 + -275.9908 + -278.4018 @@ -1624,16 +1684,16 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org -279 - -193 + -243 264 - 176 + 229 0 0 0 - -278.3271 - -192.429 + -278.8859 + -242.6321 @@ -1669,21 +1729,21 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org false 0 - 255;84;84;84 + 255;250;250;250 - 1205 - 520 + 1430 + 554 124 20 - 1205.293 - 520.7686 + 1430.432 + 554.6356 @@ -1709,14 +1769,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1396 - 446 + 1638 + 490 86 101 - 1468 - 497 + 1710 + 541 @@ -1728,21 +1788,21 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org Geometry Geometry false - 365cf975-ab39-403c-92a1-48dc9c7094c0 + 36be4986-29cb-4454-9ae2-2ff827616d3a 1 - 1398 - 448 + 1640 + 492 55 48 - 1427 - 472.25 + 1669 + 516.25 @@ -1762,14 +1822,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1398 - 496 + 1640 + 540 55 49 - 1427 - 520.75 + 1669 + 564.75 @@ -1835,14 +1895,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 656 - 106 + 763 + 115 124 20 - 656.4209 - 106.0552 + 763.579 + 115.7164 @@ -1872,14 +1932,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 987 - 97 + 1217 + 167 124 20 - 987.2928 - 97.7686 + 1217.488 + 167.627 @@ -1898,21 +1958,21 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org Allows for customized geometry previews 5ca93c32-37c7-4ece-b87b-5f5ddd5a39f7 Custom Preview - Clipped Contours + Planarised Contours - 810 - 23 + 943 + 28 86 - 126 + 143 - 882 - 86 + 1015 + 100 @@ -1924,21 +1984,21 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org Geometry Geometry false - 8075fc1f-6215-4313-9424-86297501e053 + 1848fa1a-b1dc-4682-8a61-22f4aa04e3e1 1 - 812 - 25 + 945 + 30 55 - 61 + 69 - 841 - 55.5 + 974 + 64.75 @@ -1958,14 +2018,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 812 - 86 + 945 + 99 55 - 61 + 70 - 841 - 116.5 + 974 + 134.25 @@ -2027,40 +2087,41 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1143 - 33 + 1387 + 51 86 101 - 1215 - 84 + 1459 + 102 - + Geometry to preview true 1588bbcb-bd7f-4eaf-9582-e4086c1ba348 Geometry Geometry false - f27b65ac-0e9b-4551-9e61-810c6f26e77a - 1 + 87a4e9d3-0ca5-438a-8497-477dfc5a7f7f + ada04b2e-0773-4ec2-a6b5-07388de47a2e + 2 - 1145 - 35 + 1389 + 53 55 48 - 1174 - 59.25 + 1418 + 77.25 @@ -2080,14 +2141,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1145 - 83 + 1389 + 101 55 49 - 1174 - 107.75 + 1418 + 125.75 @@ -2131,6 +2192,285 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org + + + 8073a420-6bec-49e3-9b18-367f6fd76ac3 + Join Curves + + + + + Join as many curves as possible + true + b2b9fbe4-a57e-4077-9bbf-9f92d1725ec5 + Join Curves + Join Curves + + + + + + 123 + 122 + 125 + 88 + + + 188 + 166 + + + + + + 1 + Curves to join + 0ae963a4-e30f-45f3-b7a5-c59a5f498f0c + Curves + Curves + false + 967eb040-b136-4fc1-9595-f7511072b603 + 1 + + + + + + 125 + 124 + 48 + 42 + + + 150.5 + 145 + + + + + + + + Preserve direction of input curves + 830d6b42-49b9-4e94-938d-893c293e897c + Preserve + Preserve + false + 0 + + + + + + 125 + 166 + 48 + 42 + + + 150.5 + 187 + + + + + + 1 + + + + + 1 + {0} + + + + + false + + + + + + + + + + + 1 + Joined curves and individual curves that could not be joined. + 8dc2b340-bb12-41ec-8d9f-f29a19d1226e + Curves + Curves + false + 0 + + + + + + 203 + 124 + 43 + 84 + + + 224.5 + 166 + + + + + + + + + + + + 11bbd48b-bb0a-4f1b-8167-fa297590390d + End Points + + + + + Extract the end points of a curve. + true + 7a6e4ad5-d46b-4fed-bfb3-f0839932c1b0 + End Points + End Points + + + + + + 1217 + 56 + 102 + 82 + + + 1269 + 97 + + + + + + Curve to evaluate + 6a64549a-0558-4f6c-be06-b2d588928740 + Curve + Curve + false + f27b65ac-0e9b-4551-9e61-810c6f26e77a + 1 + + + + + + 1219 + 58 + 35 + 78 + + + 1238 + 97 + + + + + + + + Curve start point + 87a4e9d3-0ca5-438a-8497-477dfc5a7f7f + Start + Start + false + 0 + + + + + + 1284 + 58 + 33 + 39 + + + 1300.5 + 77.5 + + + + + + + + Curve end point + ada04b2e-0773-4ec2-a6b5-07388de47a2e + End + End + false + 0 + + + + + + 1284 + 97 + 33 + 39 + + + 1300.5 + 116.5 + + + + + + + + + + + + 7f6a9d34-0470-4bb7-aadd-07496bcbe572 + Point On Curve + + + + + Evaluates a curve at a specific location + true + 1848fa1a-b1dc-4682-8a61-22f4aa04e3e1 + Point On Curve + Point On Curve + false + 0.5 + 8075fc1f-6215-4313-9424-86297501e053 + 1 + + + + + + 766.4843 + 67.1214 + 120 + 20 + + + + + + + @@ -2138,7 +2478,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 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 diff --git a/plugin/Terrain/groundhogContourCheckGapsComponent.cs b/plugin/Terrain/groundhogContourCheckGapsComponent.cs index 7b755a06..6477da95 100644 --- a/plugin/Terrain/groundhogContourCheckGapsComponent.cs +++ b/plugin/Terrain/groundhogContourCheckGapsComponent.cs @@ -58,7 +58,7 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) if (MAXIMUM_GAP <= 0.0) { DA.SetDataList(0, ALL_CONTOURS); DA.SetDataList(1, null); - AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, "Maximum Distance was set at or below 0 so no changes were made to the contours."); + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Maximum Distance was set at or below 0 so no changes were made to the contours."); return; } @@ -78,35 +78,43 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) possibleSplitPoints.Add(contour.PointAtEnd); } } - - // For each point that needs to be connected, find the closest non-self point, and creating a joining line - var joinedPoints = new List(); - foreach (var point in possibleSplitPoints) - if (joinedPoints.Contains(point) == false) + if (possibleSplitPoints != null && possibleSplitPoints.Count > 0) + { + // For each point that needs to be connected, find the closest non-self point, and creating a joining line + var joinedPoints = new List(); + foreach (var point in possibleSplitPoints) { - var possibleSplitPointsWithoutSelf = - new List(possibleSplitPoints); // clone the current list - possibleSplitPointsWithoutSelf.Remove(point); // remove the item we are searching from - - // Get the closest point on the boundary and check we aren't extending to a boundary gap - var closestPoint = Point3dList.ClosestPointInList(possibleSplitPointsWithoutSelf, point); - double closestBoundaryPtParamater; - BOUNDARY.ClosestPoint(point, out closestBoundaryPtParamater); - var closestBoundaryPt = BOUNDARY.PointAt(closestBoundaryPtParamater); - closestBoundaryPt.Z = point.Z; // Set the Z's to be the same as the boundary is assumed to be 3D - - // Don't proceed if the closest point has already been joined - if (joinedPoints.Contains(closestPoint) == false) - if (point.DistanceTo(closestPoint) < point.DistanceTo(closestBoundaryPt)) - if (point.DistanceTo(closestPoint) <= MAXIMUM_GAP) - { - Curve connection = new LineCurve(point, closestPoint); - connections.Add(connection); - fixedContours.Add(connection); - joinedPoints.Add(point); - joinedPoints.Add(closestPoint); - } + if (joinedPoints.Contains(point) == false) + { + var possibleSplitPointsWithoutSelf = new List(possibleSplitPoints); // clone the current list + possibleSplitPointsWithoutSelf.Remove(point); // remove the item we are searching from + + if (possibleSplitPointsWithoutSelf.Count == 0) + { + continue; + } + + // Get the closest point on the boundary and check we aren't extending to a boundary gap + var closestPoint = Point3dList.ClosestPointInList(possibleSplitPointsWithoutSelf, point); + double closestBoundaryPtParamater; + BOUNDARY.ClosestPoint(point, out closestBoundaryPtParamater); + var closestBoundaryPt = BOUNDARY.PointAt(closestBoundaryPtParamater); + closestBoundaryPt.Z = point.Z; // Set the Z's to be the same as the boundary is assumed to be 3D + + // Don't proceed if the closest point has already been joined + if (joinedPoints.Contains(closestPoint) == false) + if (point.DistanceTo(closestPoint) < point.DistanceTo(closestBoundaryPt)) + if (point.DistanceTo(closestPoint) <= MAXIMUM_GAP) + { + Curve connection = new LineCurve(point, closestPoint); + connections.Add(connection); + fixedContours.Add(connection); + joinedPoints.Add(point); + joinedPoints.Add(closestPoint); + } + } } + } // Assign variables to output parameters DA.SetDataList(0, Curve.JoinCurves(fixedContours)); diff --git a/plugin/Terrain/groundhogContourClipComponent.cs b/plugin/Terrain/groundhogContourClipComponent.cs index b8cd9eba..e8a9bfef 100644 --- a/plugin/Terrain/groundhogContourClipComponent.cs +++ b/plugin/Terrain/groundhogContourClipComponent.cs @@ -51,6 +51,12 @@ protected override void GroundHogSolveInstance(IGH_DataAccess DA) if (!DA.GetDataList(0, ALL_CONTOURS)) return; if (!DA.GetData(1, ref BOUNDARY)) return; DA.GetData(2, ref CREATE_SRFS); + + if (ALL_CONTOURS.Count == 0) + { + AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "No contour curves provided."); + return; + } // Create holder variables for ouput parameters var fixedContours = new List(); @@ -256,7 +262,8 @@ private Curve GetBoundedContour(Curve initialCurve, Curve BOUNDARY) var ccx = Intersection.CurveCurve(initialCurve, BOUNDARY, tolerance, tolerance); - if (ccx.Count > 0) + // Used to be 0. It is possible to have a ccx array of only 1 element (which will crash) but unclear what that signifies + if (ccx.Count > 1) { var innerEdgeA = BOUNDARY.Trim(ccx[0].ParameterB, ccx[1].ParameterB); // remove before t0; after t1 var innerEdgeB = BOUNDARY.Trim(ccx[1].ParameterB, ccx[0].ParameterB); // remove before t0; after t1 From cc8551c135d11a6a38c251f40971ffbb22f9df23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Sun, 22 Apr 2018 11:34:44 +0000 Subject: [PATCH 06/18] Bump jekyll from 3.7.0 to 3.8.0 in /site Bumps [jekyll](https://github.com/jekyll/jekyll) from 3.7.0 to 3.8.0. - [Release notes](https://github.com/jekyll/jekyll/releases) - [Changelog](https://github.com/jekyll/jekyll/blob/master/History.markdown) - [Commits](https://github.com/jekyll/jekyll/compare/v3.7.0...v3.8.0) Signed-off-by: dependabot[bot] --- site/Gemfile | 2 +- site/Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/site/Gemfile b/site/Gemfile index 168164cb..a6b8850e 100644 --- a/site/Gemfile +++ b/site/Gemfile @@ -1,6 +1,6 @@ source "https://rubygems.org" -gem "jekyll", "3.7.0" +gem "jekyll", "3.8.0" # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/site/Gemfile.lock b/site/Gemfile.lock index a37016e6..19587747 100644 --- a/site/Gemfile.lock +++ b/site/Gemfile.lock @@ -39,7 +39,7 @@ GEM http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.7.0) + jekyll (3.8.0) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -129,7 +129,7 @@ PLATFORMS ruby DEPENDENCIES - jekyll (= 3.7.0) + jekyll (= 3.8.0) jekyll-assets jekyll-feed jekyll-pandoc From 750bbe9ffc9e40d9fa7b9adae6aafe0b4c862f79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Sun, 22 Apr 2018 11:36:08 +0000 Subject: [PATCH 07/18] Bump bulma from 0.6.2 to 0.7.1 in /site Bumps [bulma](https://github.com/jgthms/bulma) from 0.6.2 to 0.7.1. - [Release notes](https://github.com/jgthms/bulma/releases) - [Changelog](https://github.com/jgthms/bulma/blob/master/CHANGELOG.md) - [Commits](https://github.com/jgthms/bulma/compare/0.6.2...0.7.1) Signed-off-by: dependabot[bot] --- site/package-lock.json | 8 ++++---- site/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/site/package-lock.json b/site/package-lock.json index bb897f16..fd6e33eb 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -1,6 +1,6 @@ { "name": "groundhog", - "version": "0.7.1-b", + "version": "0.7.2b", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,9 +10,9 @@ "integrity": "sha512-2LrIzxAUgZKEVepykKKekCpdiClL7U66ZrzhztftjmM76bQvhLpkg+IYzbMFBfZYlwcuV/hVqSNvW7fbmY1ogw==" }, "bulma": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.6.2.tgz", - "integrity": "sha1-9LHRHVrMUaeWROsKKwsQZJ09cfU=" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.7.1.tgz", + "integrity": "sha512-wRSO2LXB+qI9Pyz2id+uZr4quz5aftSN7Ay1ysr1+krzVp3utD+Ci4CeKuZdrYGc800t65b7heXBL6qw2Wo/lQ==" }, "classnames": { "version": "2.2.5", diff --git a/site/package.json b/site/package.json index a118d06b..05d7733f 100644 --- a/site/package.json +++ b/site/package.json @@ -5,7 +5,7 @@ "main": "index.html", "dependencies": { "@ibm/type": "^0.5.4", - "bulma": "^0.6.2", + "bulma": "^0.7.1", "feather-icons": "^4.7.0", "masonry-layout": "^4.2.1", "picturefill": "^3.0.2" From 9b4524cb87051ff21911626a5c964785a720cbfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Sun, 22 Apr 2018 11:38:16 +0000 Subject: [PATCH 08/18] Bump jekyll-assets from 3.0.8 to 3.0.11 in /site Bumps [jekyll-assets](https://github.com/ixti/jekyll-assets) from 3.0.8 to 3.0.11. - [Release notes](https://github.com/ixti/jekyll-assets/releases) - [Changelog](https://github.com/envygeeks/jekyll-assets/blob/master/CHANGELOG.md) - [Commits](https://github.com/ixti/jekyll-assets/compare/v3.0.8...v3.0.11) Signed-off-by: dependabot[bot] --- site/Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/Gemfile.lock b/site/Gemfile.lock index 19587747..3497a046 100644 --- a/site/Gemfile.lock +++ b/site/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (5.1.6) + activesupport (5.2.0) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -52,7 +52,7 @@ GEM pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-assets (3.0.8) + jekyll-assets (3.0.11) activesupport (~> 5.0) execjs (~> 2.7) extras (~> 0.2) @@ -83,7 +83,7 @@ GEM jmespath (1.3.1) kramdown (1.16.2) liquid (4.0.0) - liquid-tag-parser (1.8.0) + liquid-tag-parser (1.9.0) extras (~> 0.3) liquid (>= 3.0, < 5.0) listen (3.1.5) From d15ebcd8a65fcf5a096d0f42e38451c04060c3eb Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 17:47:52 +1000 Subject: [PATCH 09/18] Add surface equivalents for slope and aspect --- CHANGELOG.md | 5 +- docs/terrain/Groundhog - Terrain Examples.3dm | 4 +- docs/terrain/Groundhog - Terrain Examples.ghx | 11730 +++++----------- plugin/Properties/Resources.Designer.cs | 20 + plugin/Properties/Resources.resx | 6 + plugin/Resources/icon_surface_aspect.png | Bin 0 -> 555 bytes plugin/Resources/icon_surface_slope.png | Bin 0 -> 587 bytes .../Terrain/groundhogMeshAspectComponent.cs | 4 +- plugin/Terrain/groundhogMeshSlopeComponent.cs | 4 +- .../groundhogSurfaceAspectComponent.cs | 101 + .../Terrain/groundhogSurfaceSlopeComponent.cs | 94 + plugin/groundhog.csproj | 8 + 12 files changed, 3466 insertions(+), 8510 deletions(-) create mode 100644 plugin/Resources/icon_surface_aspect.png create mode 100644 plugin/Resources/icon_surface_slope.png create mode 100644 plugin/Terrain/groundhogSurfaceAspectComponent.cs create mode 100644 plugin/Terrain/groundhogSurfaceSlopeComponent.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 484f58bb..ec5d17d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ ## Changelog -#### [0.7.3b] - ????-??-?? +#### [0.8.0] - ????-??-?? +###### Added +- Surface equivalents of the Slope and Aspect terrain components + ###### Fixed - Flow components will no longer crash when given fewer than three points without a specified Fidelity - Providing bad input to the Field Mapper component will now reject it rather than proceeding and creating an error diff --git a/docs/terrain/Groundhog - Terrain Examples.3dm b/docs/terrain/Groundhog - Terrain Examples.3dm index a2f14ca9..4b8ce1d8 100644 --- a/docs/terrain/Groundhog - Terrain Examples.3dm +++ b/docs/terrain/Groundhog - Terrain Examples.3dm @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:02bb825dc37259073eeff2cf147240208998590412ab5b36d1c61cf45ce62aff -size 466795 +oid sha256:a9effde3172e6e58e7b9c8d0bbe025ac72ba08bbef1f71234dd5ce4035bc54b7 +size 1080169 diff --git a/docs/terrain/Groundhog - Terrain Examples.ghx b/docs/terrain/Groundhog - Terrain Examples.ghx index 6fdaef82..fc610c27 100644 --- a/docs/terrain/Groundhog - Terrain Examples.ghx +++ b/docs/terrain/Groundhog - Terrain Examples.ghx @@ -48,10 +48,10 @@ - -653 - -35 + 640 + 642 - 1 + 1.5625 @@ -83,9 +83,9 @@ - 56 + 64 - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 @@ -99,11 +99,11 @@ 200;255;141;101 A group of Grasshopper objects - 6a318b33-85cd-446e-b160-f04a59647734 + 35580496-583c-47bd-b2b6-beb153ae82d8 1 - 9844c2a0-8347-4598-983d-4d27df54db6b + f6bc3425-e810-471a-85d5-e5dece3a058a Group - Calculate aspect from mesh faces + Show face edges for reference @@ -124,11 +124,11 @@ 200;255;141;101 A group of Grasshopper objects - 702224ee-d504-4bad-9a92-cd52d71ce551 + 64e8752f-56e2-4ba5-a8be-fad451ffa2a2 1 - e68a32c2-8688-44b0-ac57-c9eda86f4b11 + ab5d5525-5bf4-45f8-ba64-5597340fc9dc Group - Calculate grade from mesh faces + @@ -143,18 +143,17 @@ - + 1 200;255;141;101 A group of Grasshopper objects - 6225d96c-ae96-4591-9eb6-99b605f5e65c - 4c7981aa-b08e-47dc-baf0-c7877a952618 - 2 - 99d059c3-1576-49a9-aca3-6df96b2754d5 + 0f705802-40d3-4ea8-8c21-f72762ab08e3 + 1 + 675b28a3-1b22-4898-a412-02b2173ffbba Group - Assume North = y axis + @@ -175,11 +174,11 @@ 200;255;141;101 A group of Grasshopper objects - 559441dc-5ce4-43a4-be6c-c872389ba0d7 + 95f53ae3-3ea0-47da-85bc-691200a5e335 1 - e4af7458-1042-4806-b0c5-66dcd94ecd8d + 2bb594d6-cd52-4aa2-8f05-5f8780d2b269 Group - + Calculate grade from surface @@ -194,18 +193,17 @@ - + 1 200;255;141;101 A group of Grasshopper objects - 3fb29611-59cf-4ccf-b6b3-cef38ca6e8f7 - d31deb3b-eeee-4902-85b0-86be32e8a554 - 2 - f4c07809-2403-4b25-bbb7-425dec3304aa + 27695b24-a4a2-477a-8214-bd01a8c335d4 + 1 + e112939e-604b-41c6-8e01-6b7c8c3b94f8 Group - + Calculate aspect from surface @@ -220,23 +218,18 @@ - + 1 200;255;141;101 A group of Grasshopper objects - 2b989c71-e0c5-48b3-b426-af21d94d74f3 - ac448ffa-7493-4108-91dd-c0ecca31475d - ce126715-c111-4dad-aa3f-fbee2fdb14da - 42744990-a968-4129-86aa-5c126520b5ab - 7391c689-dbe3-47f7-b4de-1ae19ea34e0c - e505402c-86bf-43e6-834a-5cc04a1a8bfd - 17aa9445-f345-408a-944d-e37fba8c8ff2 - 7 - c1db482c-7bb6-4f7b-b3f1-9c5a28103bd2 + 3fb29611-59cf-4ccf-b6b3-cef38ca6e8f7 + 27aa2985-e517-4ac1-9148-a891ebdcc6a8 + 2 + caafec99-eca8-4552-bf93-1deb0eee321c Group - Visualise grade direction + @@ -251,28 +244,17 @@ - + 1 200;255;141;101 A group of Grasshopper objects - 0875b895-22cd-456e-a796-86e1652da2d3 - 5b15b90d-96b5-4753-a58f-62f5d165e84b - f0996309-98ce-4f26-911b-27b20232d6db - 77fc973e-7560-4b09-bc8f-c0e0c8c6835a - 78681229-3426-4a41-b35d-88045c7ed601 - 940f005f-6466-4803-9977-206c3158bde8 - b250fdb2-7c67-4cd0-bdc0-28666abd2e0b - a03f958e-f2f0-43a0-ba15-9a2b138c07c8 - 97cbe806-32d2-4fe5-b76f-3acba83afad0 - 2f421193-fae4-4b5f-8e9d-96b7e994ca38 - d2fb6950-fc01-4147-bbd0-be6ff0e9c72f - 340b910f-dd3a-4c53-9744-50198d627e8f - 12 - 83d0d45e-5022-4a68-9cb2-210d8e4b6e06 + 5fd41e35-b1d8-4995-8651-d0b9edd540b1 + 1 + 3be490d3-dc00-48bf-b053-1150c56d50bf Group - Label aspects within specified range + @@ -293,11 +275,11 @@ 200;255;141;101 A group of Grasshopper objects - 9d6f88fc-2e96-4d20-a399-152de59eb1e1 + 6a318b33-85cd-446e-b160-f04a59647734 1 - 4db8fa03-9931-438f-b760-1c441fc06e3b + 9844c2a0-8347-4598-983d-4d27df54db6b Group - + Calculate aspect from mesh @@ -312,21 +294,17 @@ - + 1 200;255;141;101 A group of Grasshopper objects - e41a9e58-9527-4c6a-adf2-7532d76a06c7 - ac4bdff1-5ca7-41e0-ab05-84614b914631 - 0129cc3c-07c7-47a3-b482-7f143fc88a9a - 9f25a4e0-879d-49f4-92da-c38802a0f79a - d3db8140-f916-4b56-8136-c116487a35f6 - 5 - d78ef1c9-3812-4f7b-bcbd-5dff16ef31c0 + 702224ee-d504-4bad-9a92-cd52d71ce551 + 1 + e68a32c2-8688-44b0-ac57-c9eda86f4b11 Group - Visualise grade on mesh faces + Calculate grade from mesh @@ -347,9 +325,9 @@ 200;255;141;101 A group of Grasshopper objects - e905b779-deb1-4aa6-bdc7-675d335f3e17 + 559441dc-5ce4-43a4-be6c-c872389ba0d7 1 - e95e1741-689a-4960-9ccd-0bbe50fe4bec + e4af7458-1042-4806-b0c5-66dcd94ecd8d Group @@ -366,19 +344,26 @@ - + 1 200;255;141;101 A group of Grasshopper objects - 5794eb89-9276-4083-9abd-7c0d1100684a - 46598002-506d-430c-8584-2827f6c5a967 - dda5ad58-0192-4d8c-bf26-183d5790dc7e - 3 - 85204124-749f-4d76-b1a4-63796a1d23ce + 2b989c71-e0c5-48b3-b426-af21d94d74f3 + ac448ffa-7493-4108-91dd-c0ecca31475d + ce126715-c111-4dad-aa3f-fbee2fdb14da + 42744990-a968-4129-86aa-5c126520b5ab + 7391c689-dbe3-47f7-b4de-1ae19ea34e0c + e505402c-86bf-43e6-834a-5cc04a1a8bfd + 17aa9445-f345-408a-944d-e37fba8c8ff2 + a8393e90-27b3-469a-9dfc-5c33a29ee02f + 00e7a412-33f8-4d03-bef6-1321db2fd152 + 8c7103df-407e-47e2-8087-e9573b3762cc + 10 + c1db482c-7bb6-4f7b-b3f1-9c5a28103bd2 Group - Convert contours to a mesh + Visualise grade direction @@ -388,6422 +373,197 @@ - d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 - Curve + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group - - Contains a collection of generic curves - 9d6f88fc-2e96-4d20-a399-152de59eb1e1 - Curve - Base Contour Curves - false - 0 + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + 0875b895-22cd-456e-a796-86e1652da2d3 + 5b15b90d-96b5-4753-a58f-62f5d165e84b + f0996309-98ce-4f26-911b-27b20232d6db + 77fc973e-7560-4b09-bc8f-c0e0c8c6835a + 78681229-3426-4a41-b35d-88045c7ed601 + 940f005f-6466-4803-9977-206c3158bde8 + b250fdb2-7c67-4cd0-bdc0-28666abd2e0b + a03f958e-f2f0-43a0-ba15-9a2b138c07c8 + 97cbe806-32d2-4fe5-b76f-3acba83afad0 + 2f421193-fae4-4b5f-8e9d-96b7e994ca38 + d2fb6950-fc01-4147-bbd0-be6ff0e9c72f + 340b910f-dd3a-4c53-9744-50198d627e8f + 0b822a4d-f527-4a17-9a84-333ae89394d7 + 6391316b-9da8-4ee2-acc6-f60de39689b5 + df8fc3ef-17bb-40b4-b6e3-deb91a14d227 + afd22ba5-59b6-4daf-ba76-17b5b90d4ff4 + 16 + 83d0d45e-5022-4a68-9cb2-210d8e4b6e06 + Group + Label aspects within specified range - + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + e41a9e58-9527-4c6a-adf2-7532d76a06c7 + ac4bdff1-5ca7-41e0-ab05-84614b914631 + 0129cc3c-07c7-47a3-b482-7f143fc88a9a + 9f25a4e0-879d-49f4-92da-c38802a0f79a + d3db8140-f916-4b56-8136-c116487a35f6 + 5 + d78ef1c9-3812-4f7b-bcbd-5dff16ef31c0 + Group + Visualise grade on mesh faces + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + e905b779-deb1-4aa6-bdc7-675d335f3e17 + 1 + e95e1741-689a-4960-9ccd-0bbe50fe4bec + Group + + + + + + + + + + + 6da9f120-3ad0-4b6e-9fe0-f8cde3a649b7 + Gradient + + + + + Represents a multiple colour gradient + true + e41a9e58-9527-4c6a-adf2-7532d76a06c7 + Gradient + Gradient + + + + + 2 + false + false + + + + + + 255;255;255;255 + + + 255;255;255;255 + + 0 + ec7833ac-140f-4a79-8a9a-ec069b57d2f7 + + + + + + 255;0;0;0 + + + 255;0;0;0 + + 1 + 83ecfb2a-4998-45d4-9db9-ab12b42c9340 + + + + - + - -153 - 160 - 120 - 20 - - - -93 - 170 + 780 + 112 + 142 + 64 - - - 1 + + + Lower limit of gradient range + 9abb9391-001d-43ec-b83d-b0f3f6a3aab1 + Lower limit + Lower limit + false + 0 - - + + - 69 - {0} + + 783 + 114 + 61 + 20 + + + 815 + 124 + - - + + + + 1 + + + - -1 - e0243984-d165-4273-886d-7dd2080fb0da + 1 + {0} - - - - -1 - 74e1a8bd-dd18-458a-8f56-980e9cd20ff8 - - - - - -1 - 96127c5f-0aa2-4612-910b-64fb93dabe19 - - - - - -1 - b8637105-6967-4e3b-b7b0-eabca87bd2e3 - - - - - -1 - ea129d70-3dd7-4ae0-a081-58dfc557ec0c - - - - - -1 - bd1b57c9-c4c3-4b84-a9c9-1d5fd3c5a9be - - - - - -1 - 6d056236-fe82-4672-adb5-e395b1c5987f - - - - - -1 - bf2c6189-9644-4c5f-805a-484802dff351 - - - - - -1 - c5608d7e-209a-4758-9cf1-0a332094b2ce - - - - - -1 - e33ff5a1-b326-452e-a9e2-e211fdfe7819 - - - - - -1 - d14439fa-7efe-4b92-8485-ad77e97d728b - - - - - -1 - 3ff8f9ee-7a2b-449f-ac37-71155dc332f4 - - - - - -1 - 5a837669-d166-4c60-bb94-2099090139bf - - - - - -1 - 1a6d1538-06bb-4423-857b-342045508a07 - - - - - -1 - 6035e8a9-9632-4c5e-b8f9-bacd47c05709 - - - - - -1 - 27e93923-4fb4-4ce9-bb07-6e75a3bd664c - - - - - -1 - 1e4536d1-698f-4808-bf46-dd376e46a850 - - - - - -1 - 350df0ae-91bb-442c-960c-0fe447e0c524 - - - - - -1 - 22f9cd9a-04ae-4aec-a513-aa2d2bbff767 - - - - - -1 - 9694605c-6e43-4133-9367-82b7bd7c736b - - - - - -1 - bf956041-2607-4138-9b9e-14319819db34 - - - - - -1 - 64952185-51b8-48a0-a0bc-2c4a706010ff - - - - - -1 - 0160db6e-ebcd-4922-ba88-22daffbadfd4 - - - - - -1 - 99a0cf95-2b8b-4a88-8871-15e146baa0fd - - - - - -1 - 83bbf807-ff87-41ff-8fe3-05dcdca9a012 - - - - - -1 - 29cdacf9-ffbd-49b2-8255-52d6c5013ec9 - - - - - -1 - 0e26bd93-9e2f-4434-acb5-38b386df8d61 - - - - - -1 - ba49ceae-ea73-4fb0-87f3-1c006c62391b - - - - - -1 - 304fdb0c-5de2-41e9-819e-c9101ceac362 - - - - - -1 - 6193637d-34a0-4180-9531-ced6197fed07 - - - - - -1 - 10d69ad7-7009-4076-a11e-1f1852722676 - - - - - -1 - d00b55b3-e7b5-47fc-8109-f23a597aa466 - - - - - -1 - f75f0a66-a82d-47fe-8fd0-6bffa785a805 - - - - - -1 - 12d46145-8e7b-49e5-b5b8-d6b36fc52241 - - - - - -1 - 17f51a93-2b2b-4f4b-97f6-b97a53a7585d - - - - - -1 - 5afa50f5-56be-4db3-91d7-5327191b23c1 - - - - - -1 - b39e88cf-172b-467c-8dc7-e7ae300dcf41 - - - - - -1 - 76d355d2-6746-4c66-86fc-5c28ba7e9fa3 - - - - - -1 - 8f1d3e0d-3e8c-4985-a748-d510e8d1d1a8 - - - - - -1 - 10843924-1e2b-4894-9412-f9c1d33f35c2 - - - - - -1 - d8391b4a-3881-4116-bb34-df121d3acb1f - - - - - -1 - cfeb2b2b-ad32-4a55-8e49-0ac76fd8d034 - - - - - -1 - df93b1e5-439b-4c8f-9950-07455f9eb62d - - - - - -1 - 7dc3da25-8793-4502-8c87-132529cd47a4 - - - - - -1 - 0726ff5a-8e4b-43da-89ff-17b64212ea44 - - - - - -1 - a18c2e6a-9b24-4aa6-909b-c378a8324b6c - - - - - -1 - 22d51952-a6db-4c2b-bcfb-65724838570a - - - - - -1 - 9ffb71c7-1ef8-41bd-98f6-c8f70acd49a6 - - - - - -1 - d0e74327-fd0c-4134-9d1c-cf6a2fa83006 - - - - - -1 - 281c4dee-b9e8-4759-ac5d-53aa1b2dd8da - - - - - -1 - 216a1af6-c73d-4f84-8b24-a61165c1275b - - - - - -1 - 4fb0f668-32a0-4162-8a8d-5496b3de248c - - - - - -1 - 5e1ed86e-3019-44e4-abee-32b0b7539336 - - - - - -1 - cac3a7d4-0322-42fa-85c0-82e165e88328 - - - - - -1 - 91ca840b-2fed-458e-b74a-4ab20c6b8321 - - - - - -1 - 51e947f4-2265-4573-9954-4ef755d0eabb - - - - - -1 - d1a92705-cc2f-45b9-a390-29de07c2cddf - - - - - -1 - e0b5bfc8-3a88-4d38-aa8c-20439fd4503c - - - - - -1 - 7741689b-f6d1-48ba-9d59-124f5ac7d22a - - - - - -1 - d9a549fd-cb23-4fb5-b2ad-445d1cc29cb8 - - - - - -1 - bff201be-5f12-4f64-8351-78aeff65218f - - - - - -1 - 7a8495dc-075f-40a3-b76b-aa5c9f28cd28 - - - - - -1 - 2be670e0-5472-4839-8fa2-5c7950043d3f - - - - - -1 - ef9cc93e-13ae-4a0f-8c84-64aaf5943d90 - - - - - -1 - 3defa571-acf3-40d9-872d-e8432c73d75f - - - - - -1 - a26c296b-e977-463f-9bed-998b27f45f1e - - - - - -1 - 39b3d64e-e063-4195-a7d5-f04fd1c91b37 - - - - - -1 - 75a90e75-631b-4096-a71f-93290069b85d - - - - - -1 - b8e9f901-1df7-452e-88c2-09c91945740a - - - - - - - - - - - - - 424eb433-2b3a-4859-beaf-804d8af0afd7 - Control Points - - - - - Extract the nurbs control points and knots of a curve. - true - 5794eb89-9276-4083-9abd-7c0d1100684a - Control Points - CP - - - - - - 50 - 132 - 68 - 64 - - - 81 - 164 - - - - - - Curve to evaluate - 89ebdd9d-472e-4a32-8add-9d8861db96a6 - Curve - C - false - 9d6f88fc-2e96-4d20-a399-152de59eb1e1 - 1 - - - - - - 52 - 134 - 14 - 60 - - - 60.5 - 164 - - - - - - - - 1 - Control points of the Nurbs-form. - 9185ef9d-73b1-4f70-a90f-eae5a45f4f9a - Points - P - false - 0 - - - - - - 96 - 134 - 20 - 20 - - - 106 - 144 - - - - - - - - 1 - Weights of control points. - 6bf270ef-7ac8-4170-8c50-546482434c3a - Weights - W - false - 0 - - - - - - 96 - 154 - 20 - 20 - - - 106 - 164 - - - - - - - - 1 - Knot vector of Nurbs-form. - b7fe782f-1752-4fed-aa9e-926a3cb5bc79 - Knots - K - false - 0 - - - - - - 96 - 174 - 20 - 20 - - - 106 - 184 - - - - - - - - - - - - 1eb4f6ff-3547-4184-bead-1b01e7cfd668 - Delaunay Mesh - - - - - Delaunay triangulation - true - 46598002-506d-430c-8584-2827f6c5a967 - Delaunay Mesh - Del - - - - - - 357 - 146 - 70 - 44 - - - 390 - 168 - - - - - - 1 - Points for triangulate - be5f4d1f-abbd-4a98-805a-a86ad6b9fa3b - Points - P - false - 19875942-662b-40ef-bb1f-aa91789245a7 - 1 - - - - - - 359 - 148 - 16 - 20 - - - 368.5 - 158 - - - - - - - - Optional base plane. If no plane is provided, then the best-fit plane will be used. - 834a3112-92e9-4a92-a547-c02ab8bfa2a1 - Plane - Pl - true - 0 - - - - - - 359 - 168 - 16 - 20 - - - 368.5 - 178 - - - - - - 1 - - - - - 1 - {0} - - - - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - - - - - - - - - - - - Mesh - cf7cacd9-3777-4a4a-b872-041846a2ab2e - Mesh - M - false - 0 - - - - - - 405 - 148 - 20 - 40 - - - 415 - 168 - - - - - - - - - - - - f31d8d7a-7536-4ac8-9c96-fde6ecda4d0a - Cluster - - - - - - 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 - - Contains a cluster of Grasshopper components - true - dda5ad58-0192-4d8c-bf26-183d5790dc7e - Cluster - Remove overlapping - false - - - - - 2 - 19875942-662b-40ef-bb1f-aa91789245a7 - b1bd3b7e-d150-43d7-b978-75bd5d267a17 - 3729b670-a712-4c22-8efe-ff2710353982 - a6d5bac4-3585-49c6-8f78-4710a37ccbd1 - - - - - - 190 - 75 - 87 - 148 - - - 240 - 149 - - - - - - 1 - fbac3e32-f100-4292-8692-77240a42fd1a - 1 - fbac3e32-f100-4292-8692-77240a42fd1a - - - - - Contains a collection of three-dimensional points - b1bd3b7e-d150-43d7-b978-75bd5d267a17 - 1 - Point - Pt - true - 9185ef9d-73b1-4f70-a90f-eae5a45f4f9a - 1 - - - - - - 192 - 77 - 33 - 144 - - - 218 - 149 - - - - - - 1 - - - - - 194 - {0} - - - - - - - - a13cebca-0739-46bd-a133-8e99474d721a - -1 - 0 - 0 - point_object - - - - - - - - - - f640608a-89e9-4218-b5c4-31a76085be22 - -1 - 0 - 0 - point_object - - - - - - - - - - ca2fef91-ec7b-4ac7-9f93-b2165dcef644 - -1 - 0 - 0 - point_object - - - - - - - - - - 1d549979-dc96-42ec-b583-5872053adaa4 - -1 - 0 - 0 - point_object - - - - - - - - - - d5ca79ac-ab77-42ea-b5d2-35aebe4005c2 - -1 - 0 - 0 - point_object - - - - - - - - - - ea6dd593-85cc-4450-be4a-e44fa4db7f60 - -1 - 0 - 0 - point_object - - - - - - - - - - a7e8f4f7-e9f3-4441-81a3-f2a556f3d3ef - -1 - 0 - 0 - point_object - - - - - - - - - - f50d5663-fa37-4da9-8ddb-d4b4f597c332 - -1 - 0 - 0 - point_object - - - - - - - - - - 8c664e9d-db3d-4f23-ad7d-4af4cb583c12 - -1 - 0 - 0 - point_object - - - - - - - - - - eff414ab-0c84-43cf-9f8d-cf9d3e3367ef - -1 - 0 - 0 - point_object - - - - - - - - - - 90de4a2f-4bea-4a21-8683-36523d5ad799 - -1 - 0 - 0 - point_object - - - - - - - - - - 47f9b6a9-aa83-406e-906c-b401ea97fdb5 - -1 - 0 - 0 - point_object - - - - - - - - - - 36886c0c-0c9d-4b85-b35b-82e996469360 - -1 - 0 - 0 - point_object - - - - - - - - - - f8d48da4-4e9c-44ab-9af1-384d0f922723 - -1 - 0 - 0 - point_object - - - - - - - - - - 6df1adec-6977-4138-81d4-c0091d028e16 - -1 - 0 - 0 - point_object - - - - - - - - - - 388d5ae2-73f7-4cfe-8d7f-bba9171fdf93 - -1 - 0 - 0 - point_object - - - - - - - - - - 108988ab-5148-44b9-9c5f-02288e4c4bb3 - -1 - 0 - 0 - point_object - - - - - - - - - - 402c47b2-da14-468a-8541-737609d02e4e - -1 - 0 - 0 - point_object - - - - - - - - - - 4c224d2d-8438-4a00-babb-d17b2625b972 - -1 - 0 - 0 - point_object - - - - - - - - - - a63fa087-5a88-441f-be4a-91fa51726e17 - -1 - 0 - 0 - point_object - - - - - - - - - - e96572e1-8bfc-4ab3-85f1-16d87b39ebda - -1 - 0 - 0 - point_object - - - - - - - - - - 9221f66d-7e9b-41ce-bdde-a990520f7697 - -1 - 0 - 0 - point_object - - - - - - - - - - c8d2f992-5b0d-478c-b108-2a4bd84906ba - -1 - 0 - 0 - point_object - - - - - - - - - - b7d68fa5-b17f-4827-ad61-97a431733c52 - -1 - 0 - 0 - point_object - - - - - - - - - - 7b40599c-8c35-4111-bfda-7ab510a2b95a - -1 - 0 - 0 - point_object - - - - - - - - - - aead0051-a85e-4718-841e-8257d6d97f2b - -1 - 0 - 0 - point_object - - - - - - - - - - b080a04f-ca78-4a77-9fa1-d028381dc531 - -1 - 0 - 0 - point_object - - - - - - - - - - 25de48bb-4be9-424d-986f-5336f6543bb8 - -1 - 0 - 0 - point_object - - - - - - - - - - 7becedbd-78dc-438f-a3ca-d2a487592143 - -1 - 0 - 0 - point_object - - - - - - - - - - 4ea51c2c-1304-4c01-96a5-a3c6e44b38f1 - -1 - 0 - 0 - point_object - - - - - - - - - - 0d3640cb-72ff-416a-8623-628919fce519 - -1 - 0 - 0 - point_object - - - - - - - - - - 718a78e1-b44c-4f05-a2a6-1588a12256ec - -1 - 0 - 0 - point_object - - - - - - - - - - 4d4a0610-f9a3-49d5-9711-5ee0e8163208 - -1 - 0 - 0 - point_object - - - - - - - - - - 4a4f0a3e-39ae-4f77-93b5-9a4ae3e4f486 - -1 - 0 - 0 - point_object - - - - - - - - - - 0a8888bc-a608-405e-a0e3-270eec8ad312 - -1 - 0 - 0 - point_object - - - - - - - - - - 07eb82e1-0eee-422a-a764-ef762eae0940 - -1 - 0 - 0 - point_object - - - - - - - - - - c94914dd-8799-43f8-a02a-4a45cdbdea82 - -1 - 0 - 0 - point_object - - - - - - - - - - 93cc57e4-a665-42f9-af58-2e40067abbed - -1 - 0 - 0 - point_object - - - - - - - - - - ae1b941c-eb4b-40fa-a8a1-426b4d1f1e75 - -1 - 0 - 0 - point_object - - - - - - - - - - 8fc07b69-3d47-4d76-befc-386ead728f9f - -1 - 0 - 0 - point_object - - - - - - - - - - 50f556b4-9d89-4479-a3ae-2c1b80b8227c - -1 - 0 - 0 - point_object - - - - - - - - - - 88644673-5d84-44d0-a384-1cfe6f30673f - -1 - 0 - 0 - point_object - - - - - - - - - - 1a7abfef-90d3-4723-a487-7f085c2aeabd - -1 - 0 - 0 - point_object - - - - - - - - - - 9fd5ec18-f224-4141-ab3f-ab254df73103 - -1 - 0 - 0 - point_object - - - - - - - - - - 682a3b02-ac61-481c-85c9-2951cbcbc2d5 - -1 - 0 - 0 - point_object - - - - - - - - - - 5b017cbd-e38b-42d7-981b-1e293fee077a - -1 - 0 - 0 - point_object - - - - - - - - - - 6c0489a2-4401-412e-bdee-dbf22585bd60 - -1 - 0 - 0 - point_object - - - - - - - - - - c85819b5-e5d7-4782-b060-b2951778c146 - -1 - 0 - 0 - point_object - - - - - - - - - - 4a584818-faae-4abf-9f77-947dbeb62a61 - -1 - 0 - 0 - point_object - - - - - - - - - - 37b2cb4c-0ff6-4f52-8f2b-785837c57d9f - -1 - 0 - 0 - point_object - - - - - - - - - - 56e806c4-04f8-4ede-b6c6-c83761a47c65 - -1 - 0 - 0 - point_object - - - - - - - - - - 0af58c3f-9375-48c5-8b40-041ee73426de - -1 - 0 - 0 - point_object - - - - - - - - - - 4711ca50-886a-45e6-8950-532cb5ff8077 - -1 - 0 - 0 - point_object - - - - - - - - - - 6b786c5d-0aa9-46a1-a6bb-1609ae6dea20 - -1 - 0 - 0 - point_object - - - - - - - - - - d805caa6-d743-4add-97cc-92450d7456d4 - -1 - 0 - 0 - point_object - - - - - - - - - - 8c645863-f804-4f8f-b916-98f2663c03ff - -1 - 0 - 0 - point_object - - - - - - - - - - 0a69737f-24de-4d48-8ead-b7e89973c8a8 - -1 - 0 - 0 - point_object - - - - - - - - - - 2cfff8fc-9a17-41b1-b92e-53df42b1dc7f - -1 - 0 - 0 - point_object - - - - - - - - - - 9c2e2d1f-bdfe-4f5c-be7e-dd44d2eac6df - -1 - 0 - 0 - point_object - - - - - - - - - - a7dce0ec-1941-4a33-b28d-95466dbf6c19 - -1 - 0 - 0 - point_object - - - - - - - - - - 8287d078-4543-4d49-bb59-1876386d089f - -1 - 0 - 0 - point_object - - - - - - - - - - 980d156a-84bd-414f-b84b-856015cb5ccd - -1 - 0 - 0 - point_object - - - - - - - - - - 9eb38643-e279-44df-82a5-66227f3b6c35 - -1 - 0 - 0 - point_object - - - - - - - - - - 34cf8ac4-37c7-4b1f-81f7-68ddbe11602f - -1 - 0 - 0 - point_object - - - - - - - - - - d76560dc-700e-40c6-8bb0-bdaf4271be00 - -1 - 0 - 0 - point_object - - - - - - - - - - ec15e213-d891-490f-b8d0-c60518d915d5 - -1 - 0 - 0 - point_object - - - - - - - - - - 8232f91f-f7e6-4632-aeba-c00a8403a916 - -1 - 0 - 0 - point_object - - - - - - - - - - dd2bf625-4f78-43ce-bb59-1f16855d4d75 - -1 - 0 - 0 - point_object - - - - - - - - - - 4d3f03b8-b9da-4fd5-b83d-a9e77f22751b - -1 - 0 - 0 - point_object - - - - - - - - - - 87f13a6e-ed72-4da3-96c7-48bf9457438d - -1 - 0 - 0 - point_object - - - - - - - - - - 2093e1cd-10a7-4ac4-8f23-7bf5cdf74a95 - -1 - 0 - 0 - point_object - - - - - - - - - - e67d0808-955e-4557-ae1c-2e596ac7df64 - -1 - 0 - 0 - point_object - - - - - - - - - - 81654e58-aa01-4927-a53b-7017c9e89c50 - -1 - 0 - 0 - point_object - - - - - - - - - - aab55961-4ae0-4501-ab43-f0f5a246b50d - -1 - 0 - 0 - point_object - - - - - - - - - - a64eaf82-a62b-499a-9c2c-5bee8307adb5 - -1 - 0 - 0 - point_object - - - - - - - - - - 48e42362-d3ac-49d8-bb1b-a378e4c38b55 - -1 - 0 - 0 - point_object - - - - - - - - - - a93bb049-eb91-47bf-abbc-9842fb3a2a60 - -1 - 0 - 0 - point_object - - - - - - - - - - 4768ed39-15f0-4b17-850f-551a68a63213 - -1 - 0 - 0 - point_object - - - - - - - - - - 662d0330-a2af-43c3-9552-ef8d5afaf4af - -1 - 0 - 0 - point_object - - - - - - - - - - 187ddf43-341a-4b6b-b470-78bace740b1f - -1 - 0 - 0 - point_object - - - - - - - - - - 6bb84716-76d7-45ab-8d83-110436b0360f - -1 - 0 - 0 - point_object - - - - - - - - - - 154e7222-9bbc-4436-9a1f-8192b1990d2f - -1 - 0 - 0 - point_object - - - - - - - - - - 295bed84-ba97-4f59-90e4-32310b4f2746 - -1 - 0 - 0 - point_object - - - - - - - - - - dfe3e49b-ea3d-46b4-be59-be4d088dfebe - -1 - 0 - 0 - point_object - - - - - - - - - - da725a7e-f133-4246-be3c-3a9af1e0b0b8 - -1 - 0 - 0 - point_object - - - - - - - - - - a814adcf-f892-444c-aea5-f15a00c150a7 - -1 - 0 - 0 - point_object - - - - - - - - - - 3539167a-5cc1-439b-9c22-d6e7a33f6ae0 - -1 - 0 - 0 - point_object - - - - - - - - - - 4db6c2ea-4788-4c8f-a999-5321cb2758e6 - -1 - 0 - 0 - point_object - - - - - - - - - - 47a00081-275a-407c-8a68-8b9c8fceb762 - -1 - 0 - 0 - point_object - - - - - - - - - - ef6554f1-3b73-433c-bd48-d9e290cdbbea - -1 - 0 - 0 - point_object - - - - - - - - - - 5bab3953-a1ad-4e00-b92f-c4c985292028 - -1 - 0 - 0 - point_object - - - - - - - - - - e460f5ff-a061-4e4a-a553-99339c48ab23 - -1 - 0 - 0 - point_object - - - - - - - - - - 85625def-4b1a-4f21-970e-5b490d552c48 - -1 - 0 - 0 - point_object - - - - - - - - - - fd2911f1-f4fb-4c40-9680-9803b92812cb - -1 - 0 - 0 - point_object - - - - - - - - - - 4fa1735c-acf1-4640-9eeb-38836a2af1b2 - -1 - 0 - 0 - point_object - - - - - - - - - - ec2af144-1c65-486b-90ef-a511f46f1a6f - -1 - 0 - 0 - point_object - - - - - - - - - - d586218b-9b1b-4abe-ab1d-691c000306a7 - -1 - 0 - 0 - point_object - - - - - - - - - - 120d42fc-56f8-49a8-be6a-80d11e8fb790 - -1 - 0 - 0 - point_object - - - - - - - - - - cdae3f6f-bcba-43a8-8999-8f3e39d82291 - -1 - 0 - 0 - point_object - - - - - - - - - - 838ef8cc-abb4-4306-96e9-cc4e746b6e63 - -1 - 0 - 0 - point_object - - - - - - - - - - 0808b078-7a4e-4e2b-addf-e32a620286e5 - -1 - 0 - 0 - point_object - - - - - - - - - - 68f78cf6-1a2d-4138-b90b-11eb5a6baa3b - -1 - 0 - 0 - point_object - - - - - - - - - - f93d6e62-b467-4860-acf8-594ac34e8632 - -1 - 0 - 0 - point_object - - - - - - - - - - b5143564-9c5c-4fe7-b952-00a63fbe7581 - -1 - 0 - 0 - point_object - - - - - - - - - - e006b755-c69c-4a3a-a6a5-0c5242334862 - -1 - 0 - 0 - point_object - - - - - - - - - - 6bbf21c9-d41a-47d0-935d-eb237c61c784 - -1 - 0 - 0 - point_object - - - - - - - - - - a909057c-1744-47ad-adc4-87ac6f048f0f - -1 - 0 - 0 - point_object - - - - - - - - - - aa18ea0e-1570-4fb2-9813-0ea8f58105e4 - -1 - 0 - 0 - point_object - - - - - - - - - - 126de4fe-6d13-458d-b80b-dddd043c45bf - -1 - 0 - 0 - point_object - - - - - - - - - - dd746cac-1757-44ab-b1be-d18c0aa1c4af - -1 - 0 - 0 - point_object - - - - - - - - - - 68a83315-3ec0-4a4b-98ea-e4263eaa671f - -1 - 0 - 0 - point_object - - - - - - - - - - af6f3d86-4875-4abf-bb33-1db7e41cb55e - -1 - 0 - 0 - point_object - - - - - - - - - - 2d149f29-9179-45b6-b980-fee7f13b64bc - -1 - 0 - 0 - point_object - - - - - - - - - - 05219999-f02f-4e31-bed0-78127c064886 - -1 - 0 - 0 - point_object - - - - - - - - - - 1a20c45c-1fae-45c9-bc40-428cfc9bb254 - -1 - 0 - 0 - point_object - - - - - - - - - - f88038f0-c587-45b1-99fd-5c77251c50a6 - -1 - 0 - 0 - point_object - - - - - - - - - - 9ddcf8fa-5c70-439a-bbda-8e56b90f994b - -1 - 0 - 0 - point_object - - - - - - - - - - bf917ffa-1a9a-4641-9b4c-b70fde48a5b4 - -1 - 0 - 0 - point_object - - - - - - - - - - 71b9d178-2fd2-49d5-8c36-6339bdda6fc4 - -1 - 0 - 0 - point_object - - - - - - - - - - db2d6eee-c569-47b0-b200-2771954cd7af - -1 - 0 - 0 - point_object - - - - - - - - - - 68984f17-ca4e-41d9-b58e-ceb8761dfb28 - -1 - 0 - 0 - point_object - - - - - - - - - - eb995799-f851-4407-b362-4cf22594c084 - -1 - 0 - 0 - point_object - - - - - - - - - - f578159d-4cb3-4cad-a280-be264509782f - -1 - 0 - 0 - point_object - - - - - - - - - - 79798c47-9d8c-44c6-98b0-347ed5a6e2e0 - -1 - 0 - 0 - point_object - - - - - - - - - - 46e89c06-18c2-46c6-9c03-757b64864f15 - -1 - 0 - 0 - point_object - - - - - - - - - - c7e930e3-affd-44ca-960f-45fe2e239367 - -1 - 0 - 0 - point_object - - - - - - - - - - 45822de4-ca3e-45c2-b38d-5efeb80ebf0a - -1 - 0 - 0 - point_object - - - - - - - - - - 821771db-ff01-483b-b848-1db707018934 - -1 - 0 - 0 - point_object - - - - - - - - - - c64dc7b1-d673-4fd0-8df3-92c2c6f96226 - -1 - 0 - 0 - point_object - - - - - - - - - - 5549d6cf-61e6-4c03-aad3-e4a9f8607d2b - -1 - 0 - 0 - point_object - - - - - - - - - - 76b1a27e-94f6-4666-a579-cd13f91c0245 - -1 - 0 - 0 - point_object - - - - - - - - - - 3b3bb221-1d01-4501-8a55-3aa65171522e - -1 - 0 - 0 - point_object - - - - - - - - - - 902d144f-0625-4e2a-be1a-e6a2ffa1551a - -1 - 0 - 0 - point_object - - - - - - - - - - fb7f26b4-bddb-4754-bca2-5dc3bf9397e4 - -1 - 0 - 0 - point_object - - - - - - - - - - a4bb362b-6f5e-4801-83c2-c8f7282405c3 - -1 - 0 - 0 - point_object - - - - - - - - - - 1b7f10c1-bc49-4593-8da3-babc49246bf8 - -1 - 0 - 0 - point_object - - - - - - - - - - 26d0c4af-dcfa-46d9-9d0d-768123b73fc6 - -1 - 0 - 0 - point_object - - - - - - - - - - 63be0646-174a-44be-ac23-5dac830606b0 - -1 - 0 - 0 - point_object - - - - - - - - - - e216491a-4378-4d58-871f-26285c30863c - -1 - 0 - 0 - point_object - - - - - - - - - - ab682d68-234b-4a8e-9217-85a7b50fd42c - -1 - 0 - 0 - point_object - - - - - - - - - - b1aad47e-1d2c-419d-88b0-94b35edba8a1 - -1 - 0 - 0 - point_object - - - - - - - - - - 1dff1508-d0a2-4ca1-9caf-f56ed8912c6b - -1 - 0 - 0 - point_object - - - - - - - - - - fc6ee75d-0124-40b7-b4ed-1a30d819dfa4 - -1 - 0 - 0 - point_object - - - - - - - - - - a5fdf9d2-3797-4990-8fbd-cf9554f15055 - -1 - 0 - 0 - point_object - - - - - - - - - - f4e7b4c1-d831-4ef3-9720-38b53c18e4ec - -1 - 0 - 0 - point_object - - - - - - - - - - 7b52e19b-2e84-4c6f-a03e-497c27e71435 - -1 - 0 - 0 - point_object - - - - - - - - - - 0b7d2288-974a-430d-8237-4eca8bf01357 - -1 - 0 - 0 - point_object - - - - - - - - - - 33fa1a0d-33da-45ae-a50d-d57e72729208 - -1 - 0 - 0 - point_object - - - - - - - - - - 80876cb6-ea2e-4524-88d0-0db7f5c214b6 - -1 - 0 - 0 - point_object - - - - - - - - - - f371ee7f-27b5-4c7f-a136-7e34303ccf12 - -1 - 0 - 0 - point_object - - - - - - - - - - 81ec18a4-ee5e-4af2-8003-917dd66ddabc - -1 - 0 - 0 - point_object - - - - - - - - - - 8c6d050f-bb81-4046-ab01-12bdf8e70f3e - -1 - 0 - 0 - point_object - - - - - - - - - - d55fd0f3-e374-4f4b-91a6-d6f62d58f76f - -1 - 0 - 0 - point_object - - - - - - - - - - 6ddbefe8-577e-43f5-b125-be25e386eff5 - -1 - 0 - 0 - point_object - - - - - - - - - - c6d7aed6-16b4-4377-980d-e8e4232f19f2 - -1 - 0 - 0 - point_object - - - - - - - - - - 915b207d-1082-4d1c-a6e4-3274fcec73f2 - -1 - 0 - 0 - point_object - - - - - - - - - - 1f31c26f-abbb-4c3f-b419-71a8b4a41f31 - -1 - 0 - 0 - point_object - - - - - - - - - - ddd2dd7d-5772-49db-afb1-e49762282767 - -1 - 0 - 0 - point_object - - - - - - - - - - 93589915-b2d3-45d1-9f23-871802fce38f - -1 - 0 - 0 - point_object - - - - - - - - - - 5549dedd-227e-4826-8355-a694ec6405fe - -1 - 0 - 0 - point_object - - - - - - - - - - c55ce772-41d3-4b1d-bf6f-aae597ab8cda - -1 - 0 - 0 - point_object - - - - - - - - - - d08e34db-d9df-4deb-b26e-e65c1da62ecd - -1 - 0 - 0 - point_object - - - - - - - - - - 3bf098a5-ffca-4996-98e7-3865839324a4 - -1 - 0 - 0 - point_object - - - - - - - - - - 2e2d4fe0-78f6-4b22-a33d-40daa7aad8fa - -1 - 0 - 0 - point_object - - - - - - - - - - 48551d43-d615-47a1-a9be-cd78e7285a6d - -1 - 0 - 0 - point_object - - - - - - - - - - 60470495-2c6d-457b-9e5a-a2086e4cbf3a - -1 - 0 - 0 - point_object - - - - - - - - - - 3b3570e7-0151-46f6-a657-a58792cb1dfe - -1 - 0 - 0 - point_object - - - - - - - - - - 438f031a-568d-42e7-93ad-437496df09d0 - -1 - 0 - 0 - point_object - - - - - - - - - - 11bcf407-ceea-4bc3-9860-ea17110fbf88 - -1 - 0 - 0 - point_object - - - - - - - - - - d4dabaa9-4ee1-4ee9-b643-331164642248 - -1 - 0 - 0 - point_object - - - - - - - - - - be1d8762-e350-4c5e-9ef0-5d2444091ec3 - -1 - 0 - 0 - point_object - - - - - - - - - - 8edc3577-209a-4fce-a5ee-fd4dac87f9c5 - -1 - 0 - 0 - point_object - - - - - - - - - - a9ea333c-e53b-4904-bd45-13490f8447e2 - -1 - 0 - 0 - point_object - - - - - - - - - - 3a43f01b-cd96-4e5f-9b80-2141b9bf9235 - -1 - 0 - 0 - point_object - - - - - - - - - - 6f746f34-db9a-4355-8b2d-783d66987cc8 - -1 - 0 - 0 - point_object - - - - - - - - - - d6aaa3ec-9281-4f9e-b47a-19fd9ca11efa - -1 - 0 - 0 - point_object - - - - - - - - - - 0cfaf285-7aff-48db-8db4-50c150bc4015 - -1 - 0 - 0 - point_object - - - - - - - - - - af3bb354-5654-441a-8e79-5b801b6ba289 - -1 - 0 - 0 - point_object - - - - - - - - - - ed28fecd-b587-4712-af5e-239249b5b190 - -1 - 0 - 0 - point_object - - - - - - - - - - c58188a2-be64-4162-bff2-9b3a7b7f23d3 - -1 - 0 - 0 - point_object - - - - - - - - - - 6da9706c-0e5d-4dd2-b83f-4cbc5f1b7596 - -1 - 0 - 0 - point_object - - - - - - - - - - a629580f-26a4-4a82-a734-8c58791fc638 - -1 - 0 - 0 - point_object - - - - - - - - - - 1bb14c16-9a47-4ea3-9a17-9ea60fdae800 - -1 - 0 - 0 - point_object - - - - - - - - - - 31b082d6-210e-4e99-870a-f93701e97aec - -1 - 0 - 0 - point_object - - - - - - - - - - fe416871-b64e-4fff-a9b1-13ba1fa36c44 - -1 - 0 - 0 - point_object - - - - - - - - - - f3b38a4a-078b-4efa-8021-afe1d62afafa - -1 - 0 - 0 - point_object - - - - - - - - - - 768008a1-b3a7-4db2-a1d1-83eb7c1b5099 - -1 - 0 - 0 - point_object - - - - - - - - - - c506e7ca-5353-4dab-95e1-439e4cf2b35e - -1 - 0 - 0 - point_object - - - - - - - - - - 48eb820e-9979-4ff0-a025-8c63556f4b4c - -1 - 0 - 0 - point_object - - - - - - - - - - e7f4242a-8f74-48a6-b1c0-87b3015a9c31 - -1 - 0 - 0 - point_object - - - - - - - - - - 2b6907f4-c01c-43c8-b424-400689894dd1 - -1 - 0 - 0 - point_object - - - - - - - - - - cf880569-7176-441f-8527-0715cb0fda0a - -1 - 0 - 0 - point_object - - - - - - - - - - 7bd57497-c32e-475f-8789-8fead77d5c78 - -1 - 0 - 0 - point_object - - - - - - - - - - 84cc5445-baa9-433f-a0ad-582cfb5cf527 - -1 - 0 - 0 - point_object - - - - - - - - - - - - - Contains a collection of three-dimensional points - 19875942-662b-40ef-bb1f-aa91789245a7 - Point - Pt - false - 0 - - - - - - 255 - 77 - 20 - 144 - - - 265 - 149 - - - - - - 1 - - - - - 194 - {0} - - - - - - - - a13cebca-0739-46bd-a133-8e99474d721a - -1 - 0 - 0 - point_object - - - - - - - - - - f640608a-89e9-4218-b5c4-31a76085be22 - -1 - 0 - 0 - point_object - - - - - - - - - - ca2fef91-ec7b-4ac7-9f93-b2165dcef644 - -1 - 0 - 0 - point_object - - - - - - - - - - 1d549979-dc96-42ec-b583-5872053adaa4 - -1 - 0 - 0 - point_object - - - - - - - - - - d5ca79ac-ab77-42ea-b5d2-35aebe4005c2 - -1 - 0 - 0 - point_object - - - - - - - - - - ea6dd593-85cc-4450-be4a-e44fa4db7f60 - -1 - 0 - 0 - point_object - - - - - - - - - - a7e8f4f7-e9f3-4441-81a3-f2a556f3d3ef - -1 - 0 - 0 - point_object - - - - - - - - - - f50d5663-fa37-4da9-8ddb-d4b4f597c332 - -1 - 0 - 0 - point_object - - - - - - - - - - 8c664e9d-db3d-4f23-ad7d-4af4cb583c12 - -1 - 0 - 0 - point_object - - - - - - - - - - eff414ab-0c84-43cf-9f8d-cf9d3e3367ef - -1 - 0 - 0 - point_object - - - - - - - - - - 90de4a2f-4bea-4a21-8683-36523d5ad799 - -1 - 0 - 0 - point_object - - - - - - - - - - 47f9b6a9-aa83-406e-906c-b401ea97fdb5 - -1 - 0 - 0 - point_object - - - - - - - - - - 36886c0c-0c9d-4b85-b35b-82e996469360 - -1 - 0 - 0 - point_object - - - - - - - - - - f8d48da4-4e9c-44ab-9af1-384d0f922723 - -1 - 0 - 0 - point_object - - - - - - - - - - 6df1adec-6977-4138-81d4-c0091d028e16 - -1 - 0 - 0 - point_object - - - - - - - - - - 388d5ae2-73f7-4cfe-8d7f-bba9171fdf93 - -1 - 0 - 0 - point_object - - - - - - - - - - 108988ab-5148-44b9-9c5f-02288e4c4bb3 - -1 - 0 - 0 - point_object - - - - - - - - - - 402c47b2-da14-468a-8541-737609d02e4e - -1 - 0 - 0 - point_object - - - - - - - - - - 4c224d2d-8438-4a00-babb-d17b2625b972 - -1 - 0 - 0 - point_object - - - - - - - - - - a63fa087-5a88-441f-be4a-91fa51726e17 - -1 - 0 - 0 - point_object - - - - - - - - - - e96572e1-8bfc-4ab3-85f1-16d87b39ebda - -1 - 0 - 0 - point_object - - - - - - - - - - 9221f66d-7e9b-41ce-bdde-a990520f7697 - -1 - 0 - 0 - point_object - - - - - - - - - - c8d2f992-5b0d-478c-b108-2a4bd84906ba - -1 - 0 - 0 - point_object - - - - - - - - - - b7d68fa5-b17f-4827-ad61-97a431733c52 - -1 - 0 - 0 - point_object - - - - - - - - - - 7b40599c-8c35-4111-bfda-7ab510a2b95a - -1 - 0 - 0 - point_object - - - - - - - - - - aead0051-a85e-4718-841e-8257d6d97f2b - -1 - 0 - 0 - point_object - - - - - - - - - - b080a04f-ca78-4a77-9fa1-d028381dc531 - -1 - 0 - 0 - point_object - - - - - - - - - - 25de48bb-4be9-424d-986f-5336f6543bb8 - -1 - 0 - 0 - point_object - - - - - - - - - - 7becedbd-78dc-438f-a3ca-d2a487592143 - -1 - 0 - 0 - point_object - - - - - - - - - - 4ea51c2c-1304-4c01-96a5-a3c6e44b38f1 - -1 - 0 - 0 - point_object - - - - - - - - - - 0d3640cb-72ff-416a-8623-628919fce519 - -1 - 0 - 0 - point_object - - - - - - - - - - 718a78e1-b44c-4f05-a2a6-1588a12256ec - -1 - 0 - 0 - point_object - - - - - - - - - - 4d4a0610-f9a3-49d5-9711-5ee0e8163208 - -1 - 0 - 0 - point_object - - - - - - - - - - 4a4f0a3e-39ae-4f77-93b5-9a4ae3e4f486 - -1 - 0 - 0 - point_object - - - - - - - - - - 0a8888bc-a608-405e-a0e3-270eec8ad312 - -1 - 0 - 0 - point_object - - - - - - - - - - 07eb82e1-0eee-422a-a764-ef762eae0940 - -1 - 0 - 0 - point_object - - - - - - - - - - c94914dd-8799-43f8-a02a-4a45cdbdea82 - -1 - 0 - 0 - point_object - - - - - - - - - - 93cc57e4-a665-42f9-af58-2e40067abbed - -1 - 0 - 0 - point_object - - - - - - - - - - ae1b941c-eb4b-40fa-a8a1-426b4d1f1e75 - -1 - 0 - 0 - point_object - - - - - - - - - - 8fc07b69-3d47-4d76-befc-386ead728f9f - -1 - 0 - 0 - point_object - - - - - - - - - - 50f556b4-9d89-4479-a3ae-2c1b80b8227c - -1 - 0 - 0 - point_object - - - - - - - - - - 88644673-5d84-44d0-a384-1cfe6f30673f - -1 - 0 - 0 - point_object - - - - - - - - - - 1a7abfef-90d3-4723-a487-7f085c2aeabd - -1 - 0 - 0 - point_object - - - - - - - - - - 9fd5ec18-f224-4141-ab3f-ab254df73103 - -1 - 0 - 0 - point_object - - - - - - - - - - 682a3b02-ac61-481c-85c9-2951cbcbc2d5 - -1 - 0 - 0 - point_object - - - - - - - - - - 5b017cbd-e38b-42d7-981b-1e293fee077a - -1 - 0 - 0 - point_object - - - - - - - - - - 6c0489a2-4401-412e-bdee-dbf22585bd60 - -1 - 0 - 0 - point_object - - - - - - - - - - c85819b5-e5d7-4782-b060-b2951778c146 - -1 - 0 - 0 - point_object - - - - - - - - - - 4a584818-faae-4abf-9f77-947dbeb62a61 - -1 - 0 - 0 - point_object - - - - - - - - - - 37b2cb4c-0ff6-4f52-8f2b-785837c57d9f - -1 - 0 - 0 - point_object - - - - - - - - - - 56e806c4-04f8-4ede-b6c6-c83761a47c65 - -1 - 0 - 0 - point_object - - - - - - - - - - 0af58c3f-9375-48c5-8b40-041ee73426de - -1 - 0 - 0 - point_object - - - - - - - - - - 4711ca50-886a-45e6-8950-532cb5ff8077 - -1 - 0 - 0 - point_object - - - - - - - - - - 6b786c5d-0aa9-46a1-a6bb-1609ae6dea20 - -1 - 0 - 0 - point_object - - - - - - - - - - d805caa6-d743-4add-97cc-92450d7456d4 - -1 - 0 - 0 - point_object - - - - - - - - - - 8c645863-f804-4f8f-b916-98f2663c03ff - -1 - 0 - 0 - point_object - - - - - - - - - - 0a69737f-24de-4d48-8ead-b7e89973c8a8 - -1 - 0 - 0 - point_object - - - - - - - - - - 2cfff8fc-9a17-41b1-b92e-53df42b1dc7f - -1 - 0 - 0 - point_object - - - - - - - - - - 9c2e2d1f-bdfe-4f5c-be7e-dd44d2eac6df - -1 - 0 - 0 - point_object - - - - - - - - - - a7dce0ec-1941-4a33-b28d-95466dbf6c19 - -1 - 0 - 0 - point_object - - - - - - - - - - 8287d078-4543-4d49-bb59-1876386d089f - -1 - 0 - 0 - point_object - - - - - - - - - - 980d156a-84bd-414f-b84b-856015cb5ccd - -1 - 0 - 0 - point_object - - - - - - - - - - 9eb38643-e279-44df-82a5-66227f3b6c35 - -1 - 0 - 0 - point_object - - - - - - - - - - 34cf8ac4-37c7-4b1f-81f7-68ddbe11602f - -1 - 0 - 0 - point_object - - - - - - - - - - d76560dc-700e-40c6-8bb0-bdaf4271be00 - -1 - 0 - 0 - point_object - - - - - - - - - - ec15e213-d891-490f-b8d0-c60518d915d5 - -1 - 0 - 0 - point_object - - - - - - - - - - 8232f91f-f7e6-4632-aeba-c00a8403a916 - -1 - 0 - 0 - point_object - - - - - - - - - - dd2bf625-4f78-43ce-bb59-1f16855d4d75 - -1 - 0 - 0 - point_object - - - - - - - - - - 4d3f03b8-b9da-4fd5-b83d-a9e77f22751b - -1 - 0 - 0 - point_object - - - - - - - - - - 87f13a6e-ed72-4da3-96c7-48bf9457438d - -1 - 0 - 0 - point_object - - - - - - - - - - 2093e1cd-10a7-4ac4-8f23-7bf5cdf74a95 - -1 - 0 - 0 - point_object - - - - - - - - - - e67d0808-955e-4557-ae1c-2e596ac7df64 - -1 - 0 - 0 - point_object - - - - - - - - - - 81654e58-aa01-4927-a53b-7017c9e89c50 - -1 - 0 - 0 - point_object - - - - - - - - - - aab55961-4ae0-4501-ab43-f0f5a246b50d - -1 - 0 - 0 - point_object - - - - - - - - - - a64eaf82-a62b-499a-9c2c-5bee8307adb5 - -1 - 0 - 0 - point_object - - - - - - - - - - 48e42362-d3ac-49d8-bb1b-a378e4c38b55 - -1 - 0 - 0 - point_object - - - - - - - - - - a93bb049-eb91-47bf-abbc-9842fb3a2a60 - -1 - 0 - 0 - point_object - - - - - - - - - - 4768ed39-15f0-4b17-850f-551a68a63213 - -1 - 0 - 0 - point_object - - - - - - - - - - 662d0330-a2af-43c3-9552-ef8d5afaf4af - -1 - 0 - 0 - point_object - - - - - - - - - - 187ddf43-341a-4b6b-b470-78bace740b1f - -1 - 0 - 0 - point_object - - - - - - - - - - 6bb84716-76d7-45ab-8d83-110436b0360f - -1 - 0 - 0 - point_object - - - - - - - - - - 154e7222-9bbc-4436-9a1f-8192b1990d2f - -1 - 0 - 0 - point_object - - - - - - - - - - 295bed84-ba97-4f59-90e4-32310b4f2746 - -1 - 0 - 0 - point_object - - - - - - - - - - dfe3e49b-ea3d-46b4-be59-be4d088dfebe - -1 - 0 - 0 - point_object - - - - - - - - - - da725a7e-f133-4246-be3c-3a9af1e0b0b8 - -1 - 0 - 0 - point_object - - - - - - - - - - a814adcf-f892-444c-aea5-f15a00c150a7 - -1 - 0 - 0 - point_object - - - - - - - - - - 3539167a-5cc1-439b-9c22-d6e7a33f6ae0 - -1 - 0 - 0 - point_object - - - - - - - - - - 4db6c2ea-4788-4c8f-a999-5321cb2758e6 - -1 - 0 - 0 - point_object - - - - - - - - - - 47a00081-275a-407c-8a68-8b9c8fceb762 - -1 - 0 - 0 - point_object - - - - - - - - - - ef6554f1-3b73-433c-bd48-d9e290cdbbea - -1 - 0 - 0 - point_object - - - - - - - - - - 5bab3953-a1ad-4e00-b92f-c4c985292028 - -1 - 0 - 0 - point_object - - - - - - - - - - e460f5ff-a061-4e4a-a553-99339c48ab23 - -1 - 0 - 0 - point_object - - - - - - - - - - 85625def-4b1a-4f21-970e-5b490d552c48 - -1 - 0 - 0 - point_object - - - - - - - - - - fd2911f1-f4fb-4c40-9680-9803b92812cb - -1 - 0 - 0 - point_object - - - - - - - - - - 4fa1735c-acf1-4640-9eeb-38836a2af1b2 - -1 - 0 - 0 - point_object - - - - - - - - - - ec2af144-1c65-486b-90ef-a511f46f1a6f - -1 - 0 - 0 - point_object - - - - - - - - - - d586218b-9b1b-4abe-ab1d-691c000306a7 - -1 - 0 - 0 - point_object - - - - - - - - - - 120d42fc-56f8-49a8-be6a-80d11e8fb790 - -1 - 0 - 0 - point_object - - - - - - - - - - cdae3f6f-bcba-43a8-8999-8f3e39d82291 - -1 - 0 - 0 - point_object - - - - - - - - - - 838ef8cc-abb4-4306-96e9-cc4e746b6e63 - -1 - 0 - 0 - point_object - - - - - - - - - - 0808b078-7a4e-4e2b-addf-e32a620286e5 - -1 - 0 - 0 - point_object - - - - - - - - - - 68f78cf6-1a2d-4138-b90b-11eb5a6baa3b - -1 - 0 - 0 - point_object - - - - - - - - - - f93d6e62-b467-4860-acf8-594ac34e8632 - -1 - 0 - 0 - point_object - - - - - - - - - - b5143564-9c5c-4fe7-b952-00a63fbe7581 - -1 - 0 - 0 - point_object - - - - - - - - - - e006b755-c69c-4a3a-a6a5-0c5242334862 - -1 - 0 - 0 - point_object - - - - - - - - - - 6bbf21c9-d41a-47d0-935d-eb237c61c784 - -1 - 0 - 0 - point_object - - - - - - - - - - a909057c-1744-47ad-adc4-87ac6f048f0f - -1 - 0 - 0 - point_object - - - - - - - - - - aa18ea0e-1570-4fb2-9813-0ea8f58105e4 - -1 - 0 - 0 - point_object - - - - - - - - - - 126de4fe-6d13-458d-b80b-dddd043c45bf - -1 - 0 - 0 - point_object - - - - - - - - - - dd746cac-1757-44ab-b1be-d18c0aa1c4af - -1 - 0 - 0 - point_object - - - - - - - - - - 68a83315-3ec0-4a4b-98ea-e4263eaa671f - -1 - 0 - 0 - point_object - - - - - - - - - - af6f3d86-4875-4abf-bb33-1db7e41cb55e - -1 - 0 - 0 - point_object - - - - - - - - - - 2d149f29-9179-45b6-b980-fee7f13b64bc - -1 - 0 - 0 - point_object - - - - - - - - - - 05219999-f02f-4e31-bed0-78127c064886 - -1 - 0 - 0 - point_object - - - - - - - - - - 1a20c45c-1fae-45c9-bc40-428cfc9bb254 - -1 - 0 - 0 - point_object - - - - - - - - - - f88038f0-c587-45b1-99fd-5c77251c50a6 - -1 - 0 - 0 - point_object - - - - - - - - - - 9ddcf8fa-5c70-439a-bbda-8e56b90f994b - -1 - 0 - 0 - point_object - - - - - - - - - - bf917ffa-1a9a-4641-9b4c-b70fde48a5b4 - -1 - 0 - 0 - point_object - - - - - - - - - - 71b9d178-2fd2-49d5-8c36-6339bdda6fc4 - -1 - 0 - 0 - point_object - - - - - - - - - - db2d6eee-c569-47b0-b200-2771954cd7af - -1 - 0 - 0 - point_object - - - - - - - - - - 68984f17-ca4e-41d9-b58e-ceb8761dfb28 - -1 - 0 - 0 - point_object - - - - - - - - - - eb995799-f851-4407-b362-4cf22594c084 - -1 - 0 - 0 - point_object - - - - - - - - - - f578159d-4cb3-4cad-a280-be264509782f - -1 - 0 - 0 - point_object - - - - - - - - - - 79798c47-9d8c-44c6-98b0-347ed5a6e2e0 - -1 - 0 - 0 - point_object - - - - - - - - - - 46e89c06-18c2-46c6-9c03-757b64864f15 - -1 - 0 - 0 - point_object - - - - - - - - - - c7e930e3-affd-44ca-960f-45fe2e239367 - -1 - 0 - 0 - point_object - - - - - - - - - - 45822de4-ca3e-45c2-b38d-5efeb80ebf0a - -1 - 0 - 0 - point_object - - - - - - - - - - 821771db-ff01-483b-b848-1db707018934 - -1 - 0 - 0 - point_object - - - - - - - - - - c64dc7b1-d673-4fd0-8df3-92c2c6f96226 - -1 - 0 - 0 - point_object - - - - - - - - - - 5549d6cf-61e6-4c03-aad3-e4a9f8607d2b - -1 - 0 - 0 - point_object - - - - - - - - - - 76b1a27e-94f6-4666-a579-cd13f91c0245 - -1 - 0 - 0 - point_object - - - - - - - - - - 3b3bb221-1d01-4501-8a55-3aa65171522e - -1 - 0 - 0 - point_object - - - - - - - - - - 902d144f-0625-4e2a-be1a-e6a2ffa1551a - -1 - 0 - 0 - point_object - - - - - - - - - - fb7f26b4-bddb-4754-bca2-5dc3bf9397e4 - -1 - 0 - 0 - point_object - - - - - - - - - - a4bb362b-6f5e-4801-83c2-c8f7282405c3 - -1 - 0 - 0 - point_object - - - - - - - - - - 1b7f10c1-bc49-4593-8da3-babc49246bf8 - -1 - 0 - 0 - point_object - - - - - - - - - - 26d0c4af-dcfa-46d9-9d0d-768123b73fc6 - -1 - 0 - 0 - point_object - - - - - - - - - - 63be0646-174a-44be-ac23-5dac830606b0 - -1 - 0 - 0 - point_object - - - - - - - - - - e216491a-4378-4d58-871f-26285c30863c - -1 - 0 - 0 - point_object - - - - - - - - - - ab682d68-234b-4a8e-9217-85a7b50fd42c - -1 - 0 - 0 - point_object - - - - - - - - - - b1aad47e-1d2c-419d-88b0-94b35edba8a1 - -1 - 0 - 0 - point_object - - - - - - - - - - 1dff1508-d0a2-4ca1-9caf-f56ed8912c6b - -1 - 0 - 0 - point_object - - - - - - - - - - fc6ee75d-0124-40b7-b4ed-1a30d819dfa4 - -1 - 0 - 0 - point_object - - - - - - - - - - a5fdf9d2-3797-4990-8fbd-cf9554f15055 - -1 - 0 - 0 - point_object - - - - - - - - - - f4e7b4c1-d831-4ef3-9720-38b53c18e4ec - -1 - 0 - 0 - point_object - - - - - - - - - - 7b52e19b-2e84-4c6f-a03e-497c27e71435 - -1 - 0 - 0 - point_object - - - - - - - - - - 0b7d2288-974a-430d-8237-4eca8bf01357 - -1 - 0 - 0 - point_object - - - - - - - - - - 33fa1a0d-33da-45ae-a50d-d57e72729208 - -1 - 0 - 0 - point_object - - - - - - - - - - 80876cb6-ea2e-4524-88d0-0db7f5c214b6 - -1 - 0 - 0 - point_object - - - - - - - - - - f371ee7f-27b5-4c7f-a136-7e34303ccf12 - -1 - 0 - 0 - point_object - - - - - - - - - - 81ec18a4-ee5e-4af2-8003-917dd66ddabc - -1 - 0 - 0 - point_object - - - - - - - - - - 8c6d050f-bb81-4046-ab01-12bdf8e70f3e - -1 - 0 - 0 - point_object - - - - - - - - - - d55fd0f3-e374-4f4b-91a6-d6f62d58f76f - -1 - 0 - 0 - point_object - - - - - - - - - - 6ddbefe8-577e-43f5-b125-be25e386eff5 - -1 - 0 - 0 - point_object - - - - - - - - - - c6d7aed6-16b4-4377-980d-e8e4232f19f2 - -1 - 0 - 0 - point_object - - - - - - - - - - 915b207d-1082-4d1c-a6e4-3274fcec73f2 - -1 - 0 - 0 - point_object - - - - - - - - - - 1f31c26f-abbb-4c3f-b419-71a8b4a41f31 - -1 - 0 - 0 - point_object - - - - - - - - - - ddd2dd7d-5772-49db-afb1-e49762282767 - -1 - 0 - 0 - point_object - - - - - - - - - - 93589915-b2d3-45d1-9f23-871802fce38f - -1 - 0 - 0 - point_object - - - - - - - - - - 5549dedd-227e-4826-8355-a694ec6405fe - -1 - 0 - 0 - point_object - - - - - - - - - - c55ce772-41d3-4b1d-bf6f-aae597ab8cda - -1 - 0 - 0 - point_object - - - - - - - - - - d08e34db-d9df-4deb-b26e-e65c1da62ecd - -1 - 0 - 0 - point_object - - - - - - - - - - 3bf098a5-ffca-4996-98e7-3865839324a4 - -1 - 0 - 0 - point_object - - - - - - - - - - 2e2d4fe0-78f6-4b22-a33d-40daa7aad8fa - -1 - 0 - 0 - point_object - - - - - - - - - - 48551d43-d615-47a1-a9be-cd78e7285a6d - -1 - 0 - 0 - point_object - - - - - - - - - - 60470495-2c6d-457b-9e5a-a2086e4cbf3a - -1 - 0 - 0 - point_object - - - - - - - - - - 3b3570e7-0151-46f6-a657-a58792cb1dfe - -1 - 0 - 0 - point_object - - - - - - - - - - 438f031a-568d-42e7-93ad-437496df09d0 - -1 - 0 - 0 - point_object - - - - - - - - - - 11bcf407-ceea-4bc3-9860-ea17110fbf88 - -1 - 0 - 0 - point_object - - - - - - - - - - d4dabaa9-4ee1-4ee9-b643-331164642248 - -1 - 0 - 0 - point_object - - - - - - - - - - be1d8762-e350-4c5e-9ef0-5d2444091ec3 - -1 - 0 - 0 - point_object - - - - - - - - - - 8edc3577-209a-4fce-a5ee-fd4dac87f9c5 - -1 - 0 - 0 - point_object - - - - - - - - - - a9ea333c-e53b-4904-bd45-13490f8447e2 - -1 - 0 - 0 - point_object - - - - - - - - - - 3a43f01b-cd96-4e5f-9b80-2141b9bf9235 - -1 - 0 - 0 - point_object - - - - - - - - - - 6f746f34-db9a-4355-8b2d-783d66987cc8 - -1 - 0 - 0 - point_object - - - - - - - - - - d6aaa3ec-9281-4f9e-b47a-19fd9ca11efa - -1 - 0 - 0 - point_object - - - - - - - - - - 0cfaf285-7aff-48db-8db4-50c150bc4015 - -1 - 0 - 0 - point_object - - - - - - - - - - af3bb354-5654-441a-8e79-5b801b6ba289 - -1 - 0 - 0 - point_object - - - - - - - - - - ed28fecd-b587-4712-af5e-239249b5b190 - -1 - 0 - 0 - point_object - - - - - - - - - - c58188a2-be64-4162-bff2-9b3a7b7f23d3 - -1 - 0 - 0 - point_object - - - - - - - - - - 6da9706c-0e5d-4dd2-b83f-4cbc5f1b7596 - -1 - 0 - 0 - point_object - - - - - - - - - - a629580f-26a4-4a82-a734-8c58791fc638 - -1 - 0 - 0 - point_object - - - - - - - - - - 1bb14c16-9a47-4ea3-9a17-9ea60fdae800 - -1 - 0 - 0 - point_object - - - - - - - - - - 31b082d6-210e-4e99-870a-f93701e97aec - -1 - 0 - 0 - point_object - - - - - - - - - - fe416871-b64e-4fff-a9b1-13ba1fa36c44 - -1 - 0 - 0 - point_object - - - - - - - - - - f3b38a4a-078b-4efa-8021-afe1d62afafa - -1 - 0 - 0 - point_object - - - - - - - - - - 768008a1-b3a7-4db2-a1d1-83eb7c1b5099 - -1 - 0 - 0 - point_object - - - - - - - - - - c506e7ca-5353-4dab-95e1-439e4cf2b35e - -1 - 0 - 0 - point_object - - - - - - - - - - 48eb820e-9979-4ff0-a025-8c63556f4b4c - -1 - 0 - 0 - point_object - - - - - - - - - - e7f4242a-8f74-48a6-b1c0-87b3015a9c31 - -1 - 0 - 0 - point_object - - - - - - - - - - 2b6907f4-c01c-43c8-b424-400689894dd1 - -1 - 0 - 0 - point_object - - - - - - - - - - cf880569-7176-441f-8527-0715cb0fda0a - -1 - 0 - 0 - point_object - - - - - - - - - - 7bd57497-c32e-475f-8789-8fead77d5c78 - -1 - 0 - 0 - point_object - - - - - - - - - - 84cc5445-baa9-433f-a0ad-582cfb5cf527 - -1 - 0 - 0 - point_object - - - - - - - - - - - - - - - - - - - 6da9f120-3ad0-4b6e-9fe0-f8cde3a649b7 - Gradient - - - - - Represents a multiple colour gradient - true - e41a9e58-9527-4c6a-adf2-7532d76a06c7 - Gradient - Gradient - - - - - 2 - false - false - - - - - - 255;255;255;255 - - - 255;255;255;255 - - 0 - ec7833ac-140f-4a79-8a9a-ec069b57d2f7 - - - - - - 255;0;0;0 - - - 255;0;0;0 - - 1 - 83ecfb2a-4998-45d4-9db9-ab12b42c9340 - - - - - - - - 1227 - 118 - 142 - 64 - - - - - - Lower limit of gradient range - 9abb9391-001d-43ec-b83d-b0f3f6a3aab1 - Lower limit - L0 - false - 0 - - - - - - 1230 - 120 - 18 - 20 - - - 1240.5 - 130 - - - - - - 1 - - - - - 1 - {0} - - - - - 0 - - - + + + + 0 + + + @@ -6814,7 +574,7 @@ Upper limit of gradient range ead68a87-7378-4091-b4cc-794d06084b23 Upper limit - L1 + Upper limit false 367aa88a-4550-4c5e-ad43-9a88bd25e6c0 1 @@ -6823,14 +583,14 @@ - 1230 - 140 - 18 + 783 + 134 + 61 20 - 1240.5 - 150 + 815 + 144 @@ -6861,7 +621,7 @@ Parameter along gradient range e131b262-51fa-4bf2-9c12-d797a028de42 Parameter - t + Parameter false d3db8140-f916-4b56-8136-c116487a35f6 1 @@ -6870,14 +630,14 @@ - 1230 - 160 - 18 + 783 + 154 + 61 20 - 1240.5 - 170 + 815 + 164 @@ -6888,7 +648,7 @@ Colour along gradient at parameter 68c80670-6d7d-4328-9ccd-58cbef81fd95 Colour - C + Colour false 0 @@ -6896,8 +656,8 @@ - 1369 - 118 + 922 + 112 0 64 @@ -6909,7 +669,7 @@ - + d2cedf38-1149-4adc-8dbf-b06571cb5106 Mesh Colours @@ -6920,20 +680,20 @@ Assign a repeating colour pattern to a mesh object. ac4bdff1-5ca7-41e0-ab05-84614b914631 Mesh Colours - MCol + Mesh Colours - 1578 - 97 - 107 - 48 + 1481 + 77 + 151 + 102 - 1648 - 121 + 1578 + 128 @@ -6943,7 +703,7 @@ f04acbf5-432e-456a-bd9b-fa09511e9986 2 Mesh - M + Mesh false true 9f25a4e0-879d-49f4-92da-c38802a0f79a @@ -6953,14 +713,14 @@ - 1580 - 99 - 53 - 22 + 1483 + 79 + 80 + 49 - 1626 - 110 + 1542.5 + 103.5 @@ -6973,7 +733,7 @@ 73ee8f23-27c7-4bb3-b0a0-428367afb55f 2 Colours - C + Colours false true 68c80670-6d7d-4328-9ccd-58cbef81fd95 @@ -6983,14 +743,14 @@ - 1580 - 121 - 53 - 22 + 1483 + 128 + 80 + 49 - 1626 - 132 + 1542.5 + 152.5 @@ -7072,7 +832,7 @@ Coloured mesh a004d8a4-9efd-4e0d-bf6f-231a0b20835f Mesh - M + Mesh false 0 @@ -7080,14 +840,14 @@ - 1663 - 99 - 20 - 44 + 1593 + 79 + 37 + 98 - 1673 - 121 + 1611.5 + 128 @@ -7097,7 +857,7 @@ - + 5a41528b-12b9-40dc-a3f2-842034d267c4 Text Tag 3D @@ -7114,14 +874,14 @@ - 1639 - 874 - 45 + 1539 + 1127 + 95 109 - 1670 - 929 + 1620 + 1182 @@ -7131,7 +891,7 @@ true 4a44786d-619f-4317-b27e-bd86c35592e0 Location - L + Location false d08fc273-4b17-4e1d-bcb9-1c8f68dab6f7 1 @@ -7140,14 +900,14 @@ - 1641 - 876 - 14 + 1541 + 1129 + 64 21 - 1649.5 - 886.5 + 1574.5 + 1139.5 @@ -7158,7 +918,7 @@ The text to display 0bb7e26f-b582-4384-898a-c9f49c446c8b Text - T + Text true 55c50762-c624-45b8-883d-a661713e3765 1 @@ -7167,41 +927,330 @@ - 1641 - 897 - 14 + 1541 + 1150 + 64 + 21 + + + 1574.5 + 1160.5 + + + + + + + + Size of text + 3852b813-b96c-433d-9e52-cf3a3e6bb16a + Size + Size + false + 5b15b90d-96b5-4753-a58f-62f5d165e84b + 1 + + + + + + 1541 + 1171 + 64 + 21 + + + 1574.5 + 1181.5 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + Optional colour of tag + 575be53b-b486-4b01-bc92-b57e78f3ea61 + Colour + Colour + true + f0996309-98ce-4f26-911b-27b20232d6db + 1 + + + + + + 1541 + 1192 + 64 + 21 + + + 1574.5 + 1202.5 + + + + + + + + Text justification + acc75add-bedd-4c7e-8e1d-8e9343b6115a + Justification + Justification + false + 0 + + + + + + 1541 + 1213 + 64 21 - 1649.5 - 907.5 + 1574.5 + 1223.5 + + + + + + 1 + + + + + 1 + {0} + + + + + 5 + + + + + + + + + + + + + + + 2e3ab970-8545-46bb-836c-1c11e5610bce + Integer + + + + + Contains a collection of integer numbers + d3db8140-f916-4b56-8136-c116487a35f6 + Integer + Angles + false + 535d46fd-3ff3-4cd7-8af0-6c5c6ce6ede4 + 1 + + + + + + 464 + 157 + 50 + 20 + + + 489.2365 + 167.171 + + + + + + + + + + 11e95a7b-1e2c-4b66-bd95-fcad51f8662a + Vector Display Ex + + + + + Preview vectors in the viewport + 2b989c71-e0c5-48b3-b426-af21d94d74f3 + Vector Display Ex + Angles (vectors) + + + + + + 1563 + 330 + 70 + 118 + + + 1619 + 389 + + + + + + Start point of vector + 5bb87bdc-04cf-40c1-aaa0-2b227f11d9e9 + Point + Point + true + 7391c689-dbe3-47f7-b4de-1ae19ea34e0c + 1 + + + + + + 1565 + 332 + 39 + 28 + + + 1586 + 346.25 + + + + + + + + Vector to display + 526b0afe-a26d-43c6-96d8-06393749daf1 + Vector + Vector + true + ce8daa33-8492-40b3-966f-dcca843f1a6a + 1 + + + + + + 1565 + 360 + 39 + 29 + + + 1586 + 374.75 + + + + + + + + Colour of vector + 116c9c3b-f052-4e01-8d53-774843b5a136 + Colour + Colour + true + e505402c-86bf-43e6-834a-5cc04a1a8bfd + 1 + + + + + + 1565 + 389 + 39 + 28 + + + 1586 + 403.25 + + + 1 + + + + + 1 + {0} + + + + + + 255;0;0;0 + + + + + + + - - - Size of text - 3852b813-b96c-433d-9e52-cf3a3e6bb16a - Size - S - false - 5b15b90d-96b5-4753-a58f-62f5d165e84b - 1 + + + Width of vector lines + 14a1a81a-c087-4fd1-a2ca-fb950fb48dd6 + Width + Width + true + 0 - 1641 - 918 - 14 - 21 + 1565 + 417 + 39 + 29 - 1649.5 - 928.5 + 1586 + 431.75 @@ -7218,7 +1267,7 @@ - 1 + 2 @@ -7227,111 +1276,353 @@ - - - Optional colour of tag - 575be53b-b486-4b01-bc92-b57e78f3ea61 - Colour - C - true - f0996309-98ce-4f26-911b-27b20232d6db + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 5b15b90d-96b5-4753-a58f-62f5d165e84b + Number Slider + Text Size + false + 0 + + + + + + 469 + 1166 + 176 + 20 + + + 469.3442 + 1166.011 + + + + + + 3 + 1 + 1 + 1000 + 0 + 0 + 500 + + + + + + + + + 9c53bac0-ba66-40bd-8154-ce9829b9db1a + Colour Swatch + + + + + Colour (palette) swatch + f0996309-98ce-4f26-911b-27b20232d6db + Colour Swatch + Text Color + false + 0 + + 255;0;0;0 + + + + + + + 470 + 1211 + 103 + 20 + + + 470.7849 + 1211.919 + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + e3b6ee75-b38c-4a7d-8c2c-6ad3d2362282 + 541ae939-594a-426c-82f4-099d12c9a56c + 2 + 4b86de42-354a-4653-91ca-7810d299bb31 + Group + + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + false + + -280.1601 + -279.9259 + + + -31.85443 + -279.9259 + + + -31.85443 + -259.2902 + + + -280.1601 + -259.2902 + + A quick note + Microsoft Sans Serif + e3b6ee75-b38c-4a7d-8c2c-6ad3d2362282 + false + Scribble + Scribble + 22 + Groundhog Example File + + + + + + + + -285.1601 + -284.9259 + 258.3057 + 30.63574 + + + -280.1601 + -279.9259 + + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 541ae939-594a-426c-82f4-099d12c9a56c + Panel + + false + 0 + 0 + Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + +Contact groundhog@philipbelesky.com for support or feedback. + +This is an example .3dm file related to the plugin's documentation. + +This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 + + + + + + -282 + -242 + 264 + 225 + + 0 + 0 + 0 + + -281.6101 + -241.9187 + + + + + + 1 + + 255;245;245;245 + + true + true + true + false + true + + + + + Microsoft Sans Serif + 8 + + + + + + + + + + + f44b92b0-3b5b-493a-86f4-fd7408c3daf3 + Bounds + + + + + Create a numeric domain which encompasses a list of numbers. + 0129cc3c-07c7-47a3-b482-7f143fc88a9a + Bounds + Bounds + + + + + + 585 + 92 + 134 + 62 + + + 654 + 123 + + + + + + 1 + Numbers to include in Bounds + 65235351-8d7d-4b9c-9a48-f65f9913a0af + Numbers + Numbers + false + d3db8140-f916-4b56-8136-c116487a35f6 1 - 1641 - 939 - 14 - 21 + 587 + 94 + 52 + 58 - 1649.5 - 949.5 + 614.5 + 123 - + - Text justification - acc75add-bedd-4c7e-8e1d-8e9343b6115a - Justification - J + Numeric Domain between the lowest and highest numbers in {N} + 367aa88a-4550-4c5e-ad43-9a88bd25e6c0 + Domain + Domain false 0 - + - 1641 - 960 - 14 - 21 + 669 + 94 + 48 + 58 - 1649.5 - 970.5 + 693 + 123 - - - 1 - - - - - 1 - {0} - - - - - 5 - - - - - - - + - 2e3ab970-8545-46bb-836c-1c11e5610bce - Integer + 16ef3e75-e315-4899-b531-d3166b42dac9 + Vector - Contains a collection of integer numbers - d3db8140-f916-4b56-8136-c116487a35f6 - Integer - Angles + Contains a collection of three-dimensional vectors + ac448ffa-7493-4108-91dd-c0ecca31475d + Vector + Face Vectors false - 535d46fd-3ff3-4cd7-8af0-6c5c6ce6ede4 + e2986b01-e1ff-4e23-b343-f356c6c460ea 1 - 913 - 162 - 50 + 468 + 324 + 78 20 - 938.4865 - 172.171 + 507.0023 + 334.7763 @@ -7339,188 +1630,79 @@ - + - 11e95a7b-1e2c-4b66-bd95-fcad51f8662a - Vector Display Ex + fbac3e32-f100-4292-8692-77240a42fd1a + Point - - Preview vectors in the viewport - 2b989c71-e0c5-48b3-b426-af21d94d74f3 - Vector Display Ex - Angles (vectors) + + Contains a collection of three-dimensional points + true + 77fc973e-7560-4b09-bc8f-c0e0c8c6835a + Point + Face Centers + false + 85d4c4a1-63e8-42eb-b554-be8d04aabda1 + 1 - + - 1639 - 294 - 48 - 118 + 469 + 966 + 78 + 20 - 1673 - 353 + 508.9728 + 976.5458 - - - Start point of vector - 5bb87bdc-04cf-40c1-aaa0-2b227f11d9e9 - Point - P - true - 7391c689-dbe3-47f7-b4de-1ae19ea34e0c - 1 - - - - - - 1641 - 296 - 17 - 28 - - - 1651 - 310.25 - - - - - - - - Vector to display - 526b0afe-a26d-43c6-96d8-06393749daf1 - Vector - V - true - ce8daa33-8492-40b3-966f-dcca843f1a6a - 1 - - - - - - 1641 - 324 - 17 - 29 - - - 1651 - 338.75 - - - - - - - - Colour of vector - 116c9c3b-f052-4e01-8d53-774843b5a136 - Colour - C - true - e505402c-86bf-43e6-834a-5cc04a1a8bfd - 1 - - - - - - 1641 - 353 - 17 - 28 - - - 1651 - 367.25 - - - - - - 1 - - - - - 1 - {0} - - - - - - 255;0;0;0 - - - - - - - - - - - - Width of vector lines - 14a1a81a-c087-4fd1-a2ca-fb950fb48dd6 - Width - W - true - 0 - - - - - - 1641 - 381 - 17 - 29 - - - 1651 - 395.75 - - - - - - 1 - - - - - 1 - {0} - - - - - 1 - - - - - - - + + + + + + + 1e936df3-0eea-4246-8549-514cb8862b7a + Mesh + + + + + Contains a collection of polygon meshes + true + 9f25a4e0-879d-49f4-92da-c38802a0f79a + Mesh + Faces + false + 532664e0-7d99-4596-9ec8-010e0e5d5262 + 1 + + + + + + 464 + 70 + 50 + 20 + + + 489.9787 + 80.52249 + + - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -7529,9 +1711,9 @@ Numeric slider for single values - 5b15b90d-96b5-4753-a58f-62f5d165e84b + ce126715-c111-4dad-aa3f-fbee2fdb14da Number Slider - Text Size + Vector Length false 0 @@ -7539,14 +1721,14 @@ - 913 - 1018 - 176 + 468 + 373 + 220 20 - 913.9442 - 1018.911 + 468.8278 + 373.801 @@ -7554,47 +1736,45 @@ 3 1 - 1 - 1000 + 0 + 2 0 0 - 250 + 0.608 - + - 9c53bac0-ba66-40bd-8154-ce9829b9db1a - Colour Swatch + 2e3ab970-8545-46bb-836c-1c11e5610bce + Integer - Colour (palette) swatch - f0996309-98ce-4f26-911b-27b20232d6db - Colour Swatch - Text/Vector Color + Contains a collection of integer numbers + 78681229-3426-4a41-b35d-88045c7ed601 + Integer + Face Angles false - 0 - - 255;0;0;0 - + 277c6f7e-61ab-405c-ad69-cc8631c00924 + 1 - 913 - 1066 - 139 + 469 + 1017 + 74 20 - 913.7849 - 1066.619 + 506.288 + 1027.395 @@ -7602,80 +1782,72 @@ - + - c552a431-af5b-46a9-a8a4-0fcbc27ef596 - Group + fbac3e32-f100-4292-8692-77240a42fd1a + Point - - 1 - - 200;255;141;101 - - A group of Grasshopper objects - e3b6ee75-b38c-4a7d-8c2c-6ad3d2362282 - 541ae939-594a-426c-82f4-099d12c9a56c - 2 - 4b86de42-354a-4653-91ca-7810d299bb31 - Group - + + Contains a collection of three-dimensional points + true + 7391c689-dbe3-47f7-b4de-1ae19ea34e0c + Point + Face Centers + false + 23705083-56c8-46aa-b881-e1626f72af99 + 1 - + + + + 467 + 270 + 78 + 20 + + + 506.9597 + 280.2664 + + + - + - 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe - Scribble + 9c53bac0-ba66-40bd-8154-ce9829b9db1a + Colour Swatch - - false - - -280.1601 - -279.9259 - - - -31.85443 - -279.9259 - - - -31.85443 - -259.2902 - - - -280.1601 - -259.2902 + + Colour (palette) swatch + e505402c-86bf-43e6-834a-5cc04a1a8bfd + Colour Swatch + Vector Color + false + 0 + + 255;255;255;255 - A quick note - Microsoft Sans Serif - e3b6ee75-b38c-4a7d-8c2c-6ad3d2362282 - false - Scribble - Scribble - 22 - Groundhog Example File - - - -285.1601 - -284.9259 - 258.3057 - 30.63574 + 468 + 426 + 115 + 20 - -280.1601 - -279.9259 + 468.6107 + 426.0898 @@ -7683,64 +1855,149 @@ - + - 59e0b89a-e487-49f8-bab8-b5bab16be14c - Panel + 008e9a6f-478a-4813-8c8a-546273bc3a6b + Cull Pattern - - A panel for custom notes and text values - 541ae939-594a-426c-82f4-099d12c9a56c - Panel - - false - 0 - 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ - -Contact groundhog@philipbelesky.com for support or feedback. - -This is an example .3dm file related to the plugin's documentation. - -This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 + + Cull (remove) elements in a list using a repeating bit mask. + true + b250fdb2-7c67-4cd0-bdc0-28666abd2e0b + Cull Pattern + Cull Pattern - + - + - -282 - -242 - 264 - 225 + 1100 + 976 + 123 + 90 - 0 - 0 - 0 - -281.6101 - -241.9187 + 1180 + 1021 - - - 1 - - 255;245;245;245 - - true - true - true - false - true + + + 1 + List to cull + 549559eb-2450-48fd-95b5-a5ae0f73af9d + List + List + false + 77fc973e-7560-4b09-bc8f-c0e0c8c6835a + 1 + + + + + + 1102 + 978 + 63 + 43 + + + 1135 + 999.5 + + + + + + + + 1 + Culling pattern + a389a316-d7f6-4ad5-9c58-684010dc524c + Cull Pattern + Cull Pattern + false + 9c823f5e-0567-4094-9b57-7edaa20b0220 + 1 + + + + + + 1102 + 1021 + 63 + 43 + + + 1135 + 1042.5 + + + + + + 1 + + + + + 4 + {0} + + + + + false + + + + + false + + + + + true + + + + + true + + + + + + + + + + + 1 + Culled list + d08fc273-4b17-4e1d-bcb9-1c8f68dab6f7 + List + List + false + 0 - + - Microsoft Sans Serif - 8 + + 1195 + 978 + 26 + 86 + + + 1208 + 1021 + @@ -7749,68 +2006,133 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - f44b92b0-3b5b-493a-86f4-fd7408c3daf3 - Bounds + 008e9a6f-478a-4813-8c8a-546273bc3a6b + Cull Pattern - - Create a numeric domain which encompasses a list of numbers. - 0129cc3c-07c7-47a3-b482-7f143fc88a9a - Bounds - Bnd + + Cull (remove) elements in a list using a repeating bit mask. + true + a03f958e-f2f0-43a0-ba15-9a2b138c07c8 + Cull Pattern + Cull Pattern - + - 1069 - 109 - 62 - 40 + 1100 + 1082 + 123 + 90 - 1101 - 129 + 1180 + 1127 1 - Numbers to include in Bounds - 65235351-8d7d-4b9c-9a48-f65f9913a0af - Numbers - N + List to cull + e48a5030-fc44-4a9f-b1d1-d3c3f427769f + List + List false - d3db8140-f916-4b56-8136-c116487a35f6 + 78681229-3426-4a41-b35d-88045c7ed601 1 - 1071 - 111 - 15 - 36 + 1102 + 1084 + 63 + 43 - 1080 - 129 + 1135 + 1105.5 + + + + + + + + 1 + Culling pattern + e53ee72f-985c-418f-a443-d2b656341772 + Cull Pattern + Cull Pattern + false + 9c823f5e-0567-4094-9b57-7edaa20b0220 + 1 + + + + + + 1102 + 1127 + 63 + 43 + + + 1135 + 1148.5 + + + 1 + + + + + 4 + {0} + + + + + false + + + + + false + + + + + true + + + + + true + + + + + + - - Numeric Domain between the lowest and highest numbers in {N} - 367aa88a-4550-4c5e-ad43-9a88bd25e6c0 - Domain - I + + 1 + Culled list + 55c50762-c624-45b8-883d-a661713e3765 + List + List false 0 @@ -7818,14 +2140,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1116 - 111 - 13 - 36 + 1195 + 1084 + 26 + 86 - 1122.5 - 129 + 1208 + 1127 @@ -7835,125 +2157,177 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 16ef3e75-e315-4899-b531-d3166b42dac9 - Vector + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider - - Contains a collection of three-dimensional vectors - ac448ffa-7493-4108-91dd-c0ecca31475d - Vector - Face Vectors + + Numeric slider for single values + 97cbe806-32d2-4fe5-b76f-3acba83afad0 + Number Slider + Cutoff A false - 0fe9b456-097e-46ca-b9ec-12341b0c3576 - 1 + 0 - + - 913 - 314 - 78 + 469 + 1121 + 173 20 - 952.4523 - 324.9263 + 469.4643 + 1121.417 - - - - - - - fbac3e32-f100-4292-8692-77240a42fd1a - Point - - - - - Contains a collection of three-dimensional points - true - 77fc973e-7560-4b09-bc8f-c0e0c8c6835a - Point - Face Centers - false - 85d4c4a1-63e8-42eb-b554-be8d04aabda1 - 1 - - - - - - 913 - 825 - 78 - 20 - - - 952.0607 - 835.7658 - + + + 3 + 1 + 1 + 360 + 0 + 0 + 180 - + - 1e936df3-0eea-4246-8549-514cb8862b7a - Mesh + b8963bb1-aa57-476e-a20e-ed6cf635a49c + Multiplication - - Contains a collection of polygon meshes + + Mathematical multiplication true - 9f25a4e0-879d-49f4-92da-c38802a0f79a - Mesh - Mesh - false - 532664e0-7d99-4596-9ec8-010e0e5d5262 - 1 + 17aa9445-f345-408a-944d-e37fba8c8ff2 + Multiplication + Multiplication - + - 913 - 75 - 50 - 20 + 756 + 306 + 88 + 105 - 938.2287 - 85.52249 + 787 + 359 + + + First item for multiplication + 08ab823f-6772-4df9-a527-ecde7eefb9b9 + A + A + false + ac448ffa-7493-4108-91dd-c0ecca31475d + 1 + + + + + + 758 + 308 + 14 + 50 + + + 766.5 + 333.25 + + + + + + + + Second item for multiplication + 0cc19f8f-fa87-4c84-b1b5-c37081d28a92 + B + B + false + ce126715-c111-4dad-aa3f-fbee2fdb14da + 1 + + + + + + 758 + 358 + 14 + 51 + + + 766.5 + 383.75 + + + + + + + + The result of the Multiplication + ce8daa33-8492-40b3-966f-dcca843f1a6a + Result + Result + false + 0 + + + + + + 802 + 308 + 40 + 101 + + + 822 + 358.5 + + + + + - + - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider + 1e936df3-0eea-4246-8549-514cb8862b7a + Mesh - - Numeric slider for single values - ce126715-c111-4dad-aa3f-fbee2fdb14da - Number Slider - Vector Length + + Contains a collection of polygon meshes + true + 3fb29611-59cf-4ccf-b6b3-cef38ca6e8f7 + Mesh + Base Terrain Mesh false 0 @@ -7961,220 +2335,397 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 913 - 367 - 220 + -137 + 950 + 108 20 - 913.4778 - 367.951 + -82.35232 + 960.334 - - - 3 - 1 - 0 - 2 - 0 - 0 - 0.5 + + + 1 + + + + 1 + {0} + + + + + bf3fcf55-0a38-4e38-8b02-9a92adcd62c2 + + + + + - + - 2e3ab970-8545-46bb-836c-1c11e5610bce - Integer + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group - - Contains a collection of integer numbers - 78681229-3426-4a41-b35d-88045c7ed601 - Integer - Face Angles - false - 277c6f7e-61ab-405c-ad69-cc8631c00924 - 1 + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + f6f24375-95b8-47ff-8490-a080fbd4c85b + 4a88928e-ea39-4a3e-a76b-98efac9ddaf1 + 16eec851-830c-41fc-adf2-99a7c7f7aa21 + 6fc098d6-c521-425c-92c8-5743a650bdcd + 1330c4d7-431b-4180-9e13-99289ce1b11e + e6d16f65-726b-4db6-b6b1-808b5b641013 + f92f88d7-2498-4a84-a302-bd02f88a70a3 + 35cb666f-c8f0-4590-b741-f6e6b39b4f6a + 0d217692-f57c-4d5f-bce3-577b85ba48f0 + 9 + 4b78fa1b-055b-4d2a-9670-5b79758d83ed + Group + Visualise aspect as solid gradient - - - - 913 - 870 - 74 - 20 - - - 950.376 - 880.6146 - - - + - + - fbac3e32-f100-4292-8692-77240a42fd1a - Point + 6da9f120-3ad0-4b6e-9fe0-f8cde3a649b7 + Gradient - - Contains a collection of three-dimensional points + + Represents a multiple colour gradient true - 7391c689-dbe3-47f7-b4de-1ae19ea34e0c - Point - Face Centers - false - c2e80399-a622-410c-bf52-071c17161699 - 1 + f6f24375-95b8-47ff-8490-a080fbd4c85b + Gradient + Gradient - + + + + 5 + false + false + + + + + + 255;255;0;0 + + + 255;255;0;0 + + 0 + ec1da26d-bedb-458e-b515-51441b66b336 + + + + + + 255;233;136;0 + + + 255;233;136;0 + + 0.2543659508228302 + 0bfe3ded-cd83-4ad2-b214-8095d0a90810 + + + + + + 255;254;244;84 + + + 255;254;244;84 + + 0.5 + 70f47323-6092-4ade-98c8-5c87bdcd411d + + + + + + 255;234;126;0 + + + 255;234;126;0 + + 0.75128775835037231 + 6c68df03-7958-46fb-a92c-338971b4f518 + + + + + + 255;255;0;0 + + + 255;255;0;0 + + 1 + f7e9e747-deb2-40e7-9c9d-6f33784c0f14 + + + + - + - 913 - 270 - 78 - 20 - - - 952.6097 - 280.0164 + 738 + 747 + 142 + 64 - - - - - - - 9c53bac0-ba66-40bd-8154-ce9829b9db1a - Colour Swatch - - - - - Colour (palette) swatch - e505402c-86bf-43e6-834a-5cc04a1a8bfd - Colour Swatch - Text/Vector Color - false - 0 - - 255;255;0;255 - - - - - - - 913 - 412 - 139 - 20 - - - 913.2607 - 412.0898 - + + + Lower limit of gradient range + a6375056-404f-40cc-8c18-bd8cb6d77262 + Lower limit + Lower limit + false + 0 + + + + + + 741 + 749 + 61 + 20 + + + 773 + 759 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + Upper limit of gradient range + 1e02a75b-ba72-442c-9c43-f104d50d4bcc + Upper limit + Upper limit + false + 230e0470-66b4-4dc6-b233-009d89991055 + 1 + + + + + + 741 + 769 + 61 + 20 + + + 773 + 779 + + + + + + 1 + + + + + 1 + {0} + + + + + 90 + + + + + + + + + + + Parameter along gradient range + 77933eb6-1e32-40e1-a749-daa70158be42 + Parameter + Parameter + false + 1330c4d7-431b-4180-9e13-99289ce1b11e + 1 + + + + + + 741 + 789 + 61 + 20 + + + 773 + 799 + + + + + + + + Colour along gradient at parameter + bdb8700d-dde4-4a6d-ae13-a4d5fe32321f + Colour + Colour + false + 0 + + + + + 880 + 747 + 0 + 64 + + + + - + - 008e9a6f-478a-4813-8c8a-546273bc3a6b - Cull Pattern + d2cedf38-1149-4adc-8dbf-b06571cb5106 + Mesh Colours - Cull (remove) elements in a list using a repeating bit mask. + Assign a repeating colour pattern to a mesh object. true - b250fdb2-7c67-4cd0-bdc0-28666abd2e0b - Cull Pattern - Cull + 4a88928e-ea39-4a3e-a76b-98efac9ddaf1 + Mesh Colours + Mesh Colours - 1385 - 774 - 62 - 44 + 928 + 668 + 151 + 102 - 1415 - 796 + 1025 + 719 - - 1 - List to cull - 549559eb-2450-48fd-95b5-a5ae0f73af9d - List - L + + Base mesh + 01f7bfa0-def1-40ce-80a2-7ebdc2fe2f7b + 2 + Mesh + Mesh false - 77fc973e-7560-4b09-bc8f-c0e0c8c6835a + true + 6fc098d6-c521-425c-92c8-5743a650bdcd 1 - 1387 - 776 - 13 - 20 + 930 + 670 + 80 + 49 - 1395 - 786 + 989.5 + 694.5 - + 1 - Culling pattern - a389a316-d7f6-4ad5-9c58-684010dc524c - Cull Pattern - P + Colour pattern + b55a0420-4bbb-4221-be4c-6ab8c6fc238c + 2 + Colours + Colours false - 9c823f5e-0567-4094-9b57-7edaa20b0220 + true + bdb8700d-dde4-4a6d-ae13-a4d5fe32321f 1 - 1387 - 796 - 13 - 20 + 930 + 719 + 80 + 49 - 1395 - 806 + 989.5 + 743.5 @@ -8185,28 +2736,64 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 4 + 8 {0} - + - false + + 255;127;255;0 + - false + + 255;0;100;0 + - true + + 255;34;139;34 + - true + + 255;124;252;0 + + + + + + + 255;154;205;50 + + + + + + + 255;173;255;47 + + + + + + + 255;50;205;50 + + + + + + + 255;152;251;152 + @@ -8216,12 +2803,11 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - 1 - Culled list - d08fc273-4b17-4e1d-bcb9-1c8f68dab6f7 - List - L + + Coloured mesh + 8068d178-a47c-4988-9cda-c3d740704c0a + Mesh + Mesh false 0 @@ -8229,14 +2815,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1430 - 776 - 15 - 40 + 1040 + 670 + 37 + 98 - 1437.5 - 796 + 1058.5 + 719 @@ -8246,133 +2832,103 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 008e9a6f-478a-4813-8c8a-546273bc3a6b - Cull Pattern + 2e3ab970-8545-46bb-836c-1c11e5610bce + Integer - - Cull (remove) elements in a list using a repeating bit mask. - true - a03f958e-f2f0-43a0-ba15-9a2b138c07c8 - Cull Pattern - Cull + + Contains a collection of integer numbers + 1330c4d7-431b-4180-9e13-99289ce1b11e + Integer + Angles + false + f21d0295-598f-44c3-9cf6-234c9da9644d + 1 - + - 1385 - 828 - 62 - 44 + 469 + 810 + 50 + 20 - 1415 - 850 + 494.2072 + 820.0008 - - - 1 - List to cull - e48a5030-fc44-4a9f-b1d1-d3c3f427769f - List - L - false - 78681229-3426-4a41-b35d-88045c7ed601 - 1 + + + + + + + f44b92b0-3b5b-493a-86f4-fd7408c3daf3 + Bounds + + + + + Create a numeric domain which encompasses a list of numbers. + 16eec851-830c-41fc-adf2-99a7c7f7aa21 + Bounds + Bounds + + + + + + 555 + 723 + 134 + 62 + + + 624 + 754 + - - - - - 1387 - 830 - 13 - 20 - - - 1395 - 840 - - - - - + 1 - Culling pattern - e53ee72f-985c-418f-a443-d2b656341772 - Cull Pattern - P + Numbers to include in Bounds + fa52da19-2575-44ee-9cbd-471389a67a7f + Numbers + Numbers false - 9c823f5e-0567-4094-9b57-7edaa20b0220 + 1330c4d7-431b-4180-9e13-99289ce1b11e 1 - + - 1387 - 850 - 13 - 20 + 557 + 725 + 52 + 58 - 1395 - 860 + 584.5 + 754 - - - 1 - - - - - 4 - {0} - - - - - false - - - - - false - - - - - true - - - - - true - - - - - - - - 1 - Culled list - 55c50762-c624-45b8-883d-a661713e3765 - List - L + + Numeric Domain between the lowest and highest numbers in {N} + 230e0470-66b4-4dc6-b233-009d89991055 + Domain + Domain false 0 @@ -8380,14 +2936,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1430 - 830 - 15 - 40 + 639 + 725 + 48 + 58 - 1437.5 - 850 + 663 + 754 @@ -8397,102 +2953,92 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider + 1e936df3-0eea-4246-8549-514cb8862b7a + Mesh - - Numeric slider for single values - 97cbe806-32d2-4fe5-b76f-3acba83afad0 - Number Slider - Cutoff A + + Contains a collection of polygon meshes + true + 6fc098d6-c521-425c-92c8-5743a650bdcd + Mesh + Faces false - 0 + ff738281-391e-40f8-914c-4d1291b5c92e + 1 - + - 913 - 965 - 173 + 469 + 669 + 50 20 - 913.0643 - 965.9174 + 494.8494 + 679.1523 - - - 3 - 1 - 1 - 360 - 0 - 0 - 180 - - - + - b8963bb1-aa57-476e-a20e-ed6cf635a49c - Multiplication + f217f873-92f1-47ae-ad71-ca3c5a45c3f8 + Includes - - Mathematical multiplication - true - 17aa9445-f345-408a-944d-e37fba8c8ff2 - Multiplication - A×B + + Test a numeric value to see if it is included in the domain + 2f421193-fae4-4b5f-8e9d-96b7e994ca38 + Includes + Includes - + - 1234 - 322 - 65 - 44 + 893 + 1011 + 135 + 67 - 1265 - 344 + 955 + 1045 - First item for multiplication - 08ab823f-6772-4df9-a527-ecde7eefb9b9 - A - A + Value to test for inclusion + 9b885d94-56c3-4415-beda-fce12598b1e3 + Value + Value false - ac448ffa-7493-4108-91dd-c0ecca31475d + 78681229-3426-4a41-b35d-88045c7ed601 1 - 1236 - 324 - 14 - 20 + 895 + 1013 + 45 + 31 - 1244.5 - 334 + 919 + 1028.75 @@ -8500,37 +3046,60 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - Second item for multiplication - 0cc19f8f-fa87-4c84-b1b5-c37081d28a92 - B - B + Domain to test with + 472abaf6-f477-4e2e-95a6-7d39529b0144 + Domain + Domain false - ce126715-c111-4dad-aa3f-fbee2fdb14da + 88d391d0-0def-4b34-a583-d9ad70c95495 1 - + - 1236 - 344 - 14 - 20 + 895 + 1044 + 45 + 32 - 1244.5 - 354 + 919 + 1060.25 + + + 1 + + + + + 1 + {0} + + + + + + 0 + 1 + + + + + + + - The result of the Multiplication - ce8daa33-8492-40b3-966f-dcca843f1a6a - Result - R + True if the value is included in the domain + 9c823f5e-0567-4094-9b57-7edaa20b0220 + Includes + Includes false 0 @@ -8538,71 +3107,42 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1280 - 324 - 17 - 40 + 970 + 1013 + 56 + 31 - 1288.5 - 344 + 998 + 1028.75 - - - - - - - 1e936df3-0eea-4246-8549-514cb8862b7a - Mesh - - - - - Contains a collection of polygon meshes - true - 3fb29611-59cf-4ccf-b6b3-cef38ca6e8f7 - Mesh - Base Terrain Mesh - false - 0 - - - - - - -134 - 516 - 108 - 20 - - - -79.85232 - 526.584 - - - - - - 1 + + + Distance between the value and the nearest value inside the domain + 8ae413a4-f07f-45bc-a8c7-114bda43903c + Deviation + Deviation + false + 0 - + - 1 - {0} + + 970 + 1044 + 56 + 32 + + + 998 + 1060.25 + - - - - bf3fcf55-0a38-4e38-8b02-9a92adcd62c2 - - - @@ -8610,91 +3150,148 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 16ef3e75-e315-4899-b531-d3166b42dac9 - Vector + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider - - Contains a collection of three-dimensional vectors - d31deb3b-eeee-4902-85b0-86be32e8a554 - Vector - Aspect Angle + + Numeric slider for single values + d2fb6950-fc01-4147-bbd0-be6ff0e9c72f + Number Slider + Cutoff B false - dece98d1-cf16-4040-b19f-5d9af6c5ebce - 1 + 0 - + - -108 - 612 - 81 + 469 + 1069 + 172 20 - -66.54688 - 622.0157 + 469.5907 + 1069.328 + + + 3 + 1 + 1 + 360 + 0 + 0 + 120 + + - + - d3d195ea-2d59-4ffa-90b1-8b7ff3369f69 - Unit Y + d1a28e95-cf96-4936-bf34-8bf142d731bf + Construct Domain - Unit vector parallel to the world {y} axis. - 6225d96c-ae96-4591-9eb6-99b605f5e65c - Unit Y - Y + Create a numeric domain from two numeric extremes. + 340b910f-dd3a-4c53-9744-50198d627e8f + Construct Domain + Construct Domain - + - -253 - 607 - 63 - 28 + 688 + 1036 + 152 + 131 - -224 - 621 + 775 + 1102 - + + + Start value of numeric domain + cb78d6f4-5b5d-4368-91b6-9efc35eb987a + Domain start + Domain start + false + d2fb6950-fc01-4147-bbd0-be6ff0e9c72f + 1 + + + + + + 690 + 1038 + 70 + 63 + + + 726.5 + 1069.75 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + - Unit multiplication - e96fe1af-5570-4fd7-a557-2b17bf9d3bf5 - Factor - F + End value of numeric domain + 453dd45b-6045-4c59-a676-125c1438f8ca + Domain end + Domain end false - 4c7981aa-b08e-47dc-baf0-c7877a952618 + 97cbe806-32d2-4fe5-b76f-3acba83afad0 1 - -251 - 609 - 12 - 24 + 690 + 1101 + 70 + 64 - -243.5 - 621 + 726.5 + 1133.25 @@ -8722,10 +3319,10 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - World {y} vector - dece98d1-cf16-4040-b19f-5d9af6c5ebce - Unit vector - V + Numeric domain between {A} and {B} + 88d391d0-0def-4b34-a583-d9ad70c95495 + Domain + Domain false 0 @@ -8733,14 +3330,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - -209 - 609 - 17 - 24 + 790 + 1038 + 48 + 127 - -200.5 - 621 + 814 + 1101.5 @@ -8750,205 +3347,281 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - - 59e0b89a-e487-49f8-bab8-b5bab16be14c - Panel + + + c3b67aca-0e15-4279-9d6c-96cce97fcb47 + 7dc547b5-ca43-457d-a3e2-8286f0784ad0 + Mesh Slope - - A panel for custom notes and text values - 4c7981aa-b08e-47dc-baf0-c7877a952618 - Panel - - false - 0 - 0 - 1 + + Analyses the slope of a Mesh, outputting separated faces for coloring and the slope/grade + true + 702224ee-d504-4bad-9a92-cd52d71ce551 + Mesh Slope + Mesh Slope - + - + - -335 - 602 - 58 - 39 + 99 + 77 + 147 + 104 - 0 - 0 - 0 - -334.57 - 602.55 + 150 + 129 - - - - 255;255;250;90 - - true - true - true - false - true + + + The terrain mesh + df2f3380-a21d-4091-83ad-d1c7c47e3b6f + Mesh + Mesh + false + 64e8752f-56e2-4ba5-a8be-fad451ffa2a2 + 1 + + + + + 101 + 79 + 34 + 100 + + + 119.5 + 129 + + + + - - - - - - - c552a431-af5b-46a9-a8a4-0fcbc27ef596 - Group - - - - - 1 - - 200;255;141;101 - - A group of Grasshopper objects - f6f24375-95b8-47ff-8490-a080fbd4c85b - 4a88928e-ea39-4a3e-a76b-98efac9ddaf1 - 16eec851-830c-41fc-adf2-99a7c7f7aa21 - 6fc098d6-c521-425c-92c8-5743a650bdcd - 1330c4d7-431b-4180-9e13-99289ce1b11e - e6d16f65-726b-4db6-b6b1-808b5b641013 - f92f88d7-2498-4a84-a302-bd02f88a70a3 - 35cb666f-c8f0-4590-b741-f6e6b39b4f6a - 0d217692-f57c-4d5f-bce3-577b85ba48f0 - 9 - 4b78fa1b-055b-4d2a-9670-5b79758d83ed - Group - Visualise aspect as solid gradient - - - - - - - - - - 6da9f120-3ad0-4b6e-9fe0-f8cde3a649b7 - Gradient - - - - - Represents a multiple colour gradient - true - f6f24375-95b8-47ff-8490-a080fbd4c85b - Gradient - Gradient - - - - - 5 - false - false + + + 1 + The sub mesh faces (for coloring) + 532664e0-7d99-4596-9ec8-010e0e5d5262 + Mesh Faces + Mesh Faces + false + 0 - - - - - 255;255;0;0 + + + + + 165 + 79 + 79 + 20 - - 255;255;0;0 + + 204.5 + 89 - 0 - ec1da26d-bedb-458e-b515-51441b66b336 - - - - 255;233;136;0 + + + + + 1 + The centers of each mesh face (for vector previews) + c2e80399-a622-410c-bf52-071c17161699 + Face Centers + Face Centers + false + 0 + + + + + + 165 + 99 + 79 + 20 - - 255;233;136;0 + + 204.5 + 109 - 0.2543659508228302 - 0bfe3ded-cd83-4ad2-b214-8095d0a90810 - - - - 255;254;244;84 + + + + + 1 + The direction to the lowest points of each face + 0fe9b456-097e-46ca-b9ec-12341b0c3576 + Face Slope Vectors + Face Vectors + false + 0 + + + + + + 165 + 119 + 79 + 20 - - 255;254;244;84 + + 204.5 + 129 - 0.5 - 70f47323-6092-4ade-98c8-5c87bdcd411d - - - - 255;234;126;0 + + + + + 1 + The angle of the slope + 535d46fd-3ff3-4cd7-8af0-6c5c6ce6ede4 + Face Slope Angles + Face Slopes ° + false + 0 + + + + + + 165 + 139 + 79 + 20 - - 255;234;126;0 + + 204.5 + 149 - 0.75128775835037231 - 6c68df03-7958-46fb-a92c-338971b4f518 - - - - 255;255;0;0 + + + + + 1 + The slope of each mesh face, as a percentile + ccb8d504-e489-4b5a-a3ca-fb8880289ba3 + Face Slopes % + Face Slopes % + false + 0 + + + + + + 165 + 159 + 79 + 20 - - 255;255;0;0 + + 204.5 + 169 - 1 - f7e9e747-deb2-40e7-9c9d-6f33784c0f14 + + + + + + + c3b67aca-0c15-2552-9d6c-96cce97fcb47 + 7dc547b5-ca43-457d-a3e2-8286f0784ad0 + Mesh Aspect + + + + + Analyses the slope of a Mesh, outputting separated faces for coloring and the slope/grade + true + 6a318b33-85cd-446e-b160-f04a59647734 + Mesh Aspect + Mesh Aspect + + - + - 1110 - 576 - 142 - 64 + 90 + 940 + 146 + 96 + + + 147 + 988 - - Lower limit of gradient range - a6375056-404f-40cc-8c18-bd8cb6d77262 - Lower limit - L0 + + The terrain mesh + f9beeef4-8103-483d-ada0-2bf3d086d0e8 + Mesh + Mesh false - 0 + 3fb29611-59cf-4ccf-b6b3-cef38ca6e8f7 + 1 + + + + + + 92 + 942 + 40 + 46 + + + 113.5 + 965 + + + + + + + + Vector representing the direction to measure aspect against + 865428ad-5eda-4db4-8e07-f4f8ed05fce0 + Aspect + Aspect + true + 27aa2985-e517-4ac1-9148-a891ebdcc6a8 + 1 - 1113 - 578 - 18 - 20 + 92 + 988 + 40 + 46 - 1123.5 - 588 + 113.5 + 1011 @@ -8965,7 +3638,11 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 0 + + 0 + 1 + 0 + @@ -8974,28 +3651,168 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org + + + 1 + The sub mesh faces (for coloring) + 46090790-ef3c-49e3-8228-df231f4fe29a + Mesh Faces + Mesh Faces + false + 0 + + + + + + 162 + 942 + 72 + 30 + + + 198 + 957.3333 + + + + + + + + 1 + The centers of each mesh face (for vector previews) + 85d4c4a1-63e8-42eb-b554-be8d04aabda1 + Face Centers + Face Centers + false + 0 + + + + + + 162 + 972 + 72 + 31 + + + 198 + 988 + + + + + + + + 1 + The angle of the slope + 277c6f7e-61ab-405c-ad69-cc8631c00924 + Face Aspect Angles + Face Aspects + false + 0 + + + + + + 162 + 1003 + 72 + 31 + + + 198 + 1018.667 + + + + + + + + + + + + 48a9fa10-8d3c-4767-aca6-81232271f6e0 + Blur Mesh + + + + + Blur the colours on a mesh + e6d16f65-726b-4db6-b6b1-808b5b641013 + Blur Mesh + Blur Mesh + + + + + + 1513 + 804 + 124 + 79 + + + 1583 + 844 + + + + + + Mesh to blur + 44e70ee7-180b-4263-924e-6c3bdce65576 + Mesh + Mesh + false + 674c231c-8a9f-4150-829b-4df8d32e0ddc + 1 + + + + + + 1515 + 806 + 53 + 37 + + + 1543 + 824.75 + + + + + - Upper limit of gradient range - 1e02a75b-ba72-442c-9c43-f104d50d4bcc - Upper limit - L1 + Number of consecutive blurring iterations + d27fafc7-1894-4941-b9e7-d2efd27704a6 + Iterations + Iterations false - 230e0470-66b4-4dc6-b233-009d89991055 + 0d217692-f57c-4d5f-bce3-577b85ba48f0 1 - 1113 - 598 - 18 - 20 + 1515 + 843 + 53 + 38 - 1123.5 - 608 + 1543 + 862.25 @@ -9012,7 +3829,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 90 + 1 @@ -9021,50 +3838,27 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - - Parameter along gradient range - 77933eb6-1e32-40e1-a749-daa70158be42 - Parameter - t - false - 1330c4d7-431b-4180-9e13-99289ce1b11e - 1 - - - - - - 1113 - 618 - 18 - 20 - - - 1123.5 - 628 - - - - - - Colour along gradient at parameter - bdb8700d-dde4-4a6d-ae13-a4d5fe32321f - Colour - C + Mesh with blurred vertex colours + ee66602c-9069-4dca-b283-c7171765a7d1 + Mesh + Mesh false 0 - + - 1252 - 576 - 0 - 64 + 1598 + 806 + 37 + 75 + + + 1616.5 + 843.5 @@ -9074,88 +3868,84 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - d2cedf38-1149-4adc-8dbf-b06571cb5106 - Mesh Colours + 9f6d85c9-1143-4538-bca7-69dcb11a74ef + Weld Mesh - - Assign a repeating colour pattern to a mesh object. - 4a88928e-ea39-4a3e-a76b-98efac9ddaf1 - Mesh Colours - MCol + + Weld (merge) creases in a mesh + true + f92f88d7-2498-4a84-a302-bd02f88a70a3 + Weld Mesh + Weld Mesh - 1285 - 523 - 107 - 48 + 1302 + 673 + 109 + 86 - 1355 - 547 + 1354 + 716 - - Base mesh - 01f7bfa0-def1-40ce-80a2-7ebdc2fe2f7b - 2 + + Mesh to weld + 736cc617-cf83-4000-bc58-c788c36c2eb8 Mesh - M + Mesh false - true - 6fc098d6-c521-425c-92c8-5743a650bdcd + 4a283177-bb20-47f0-9ccf-73cb17abe02f 1 - 1287 - 525 - 53 - 22 + 1304 + 675 + 35 + 41 - 1333 - 536 + 1323 + 695.5 - - 1 - Colour pattern - b55a0420-4bbb-4221-be4c-6ab8c6fc238c - 2 - Colours - C + + Weld angle + d32a669c-7db7-40dc-bd4f-000de7087fc3 + Angle + Angle false - true - bdb8700d-dde4-4a6d-ae13-a4d5fe32321f - 1 + 0 + false - 1287 - 547 - 53 - 22 + 1304 + 716 + 35 + 41 - 1333 - 558 + 1323 + 736.5 @@ -9166,64 +3956,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 8 + 1 {0} - + - - 255;127;255;0 - - - - - - - 255;0;100;0 - - - - - - - 255;34;139;34 - - - - - - - 255;124;252;0 - - - - - - - 255;154;205;50 - - - - - - - 255;173;255;47 - - - - - - - 255;50;205;50 - - - - - - - 255;152;251;152 - + 3.1415926535897931 @@ -9234,10 +3973,10 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - Coloured mesh - 8068d178-a47c-4988-9cda-c3d740704c0a - Mesh - M + Welded mesh + 674c231c-8a9f-4150-829b-4df8d32e0ddc + Result + Result false 0 @@ -9245,14 +3984,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1370 - 525 - 20 - 44 + 1369 + 675 + 40 + 82 - 1380 - 547 + 1389 + 716 @@ -9262,92 +4001,59 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - - 2e3ab970-8545-46bb-836c-1c11e5610bce - Integer - - - - - Contains a collection of integer numbers - 1330c4d7-431b-4180-9e13-99289ce1b11e - Integer - Angles - false - 277c6f7e-61ab-405c-ad69-cc8631c00924 - 1 - - - - - - 913 - 619 - 50 - 20 - - - 938.3573 - 629.0508 - - - - - - - - + - f44b92b0-3b5b-493a-86f4-fd7408c3daf3 - Bounds + 4bc9dbbf-fec8-4348-a3af-e33e7edc8e7b + Mesh Join - - Create a numeric domain which encompasses a list of numbers. - 16eec851-830c-41fc-adf2-99a7c7f7aa21 - Bounds - Bnd + + Join a set of meshes into a single mesh + true + 35cb666f-c8f0-4590-b741-f6e6b39b4f6a + Mesh Join + Mesh Join - 1010 - 564 - 62 - 40 + 1119 + 683 + 131 + 79 - 1042 - 584 + 1196 + 723 - + 1 - Numbers to include in Bounds - fa52da19-2575-44ee-9cbd-471389a67a7f - Numbers - N + Meshes to join + 5d5cf2d5-98e5-4bb3-947b-6b9b95a03c38 + 1 + Meshes + Meshes false - 1330c4d7-431b-4180-9e13-99289ce1b11e + 8068d178-a47c-4988-9cda-c3d740704c0a 1 - 1012 - 566 - 15 - 36 + 1121 + 685 + 60 + 75 - 1021 - 584 + 1160.5 + 722.5 @@ -9355,10 +4061,10 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - Numeric Domain between the lowest and highest numbers in {N} - 230e0470-66b4-4dc6-b233-009d89991055 - Domain - I + Mesh join result + 4a283177-bb20-47f0-9ccf-73cb17abe02f + Mesh + Mesh false 0 @@ -9366,14 +4072,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1057 - 566 - 13 - 36 + 1211 + 685 + 37 + 75 - 1063.5 - 584 + 1229.5 + 722.5 @@ -9383,153 +4089,222 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 1e936df3-0eea-4246-8549-514cb8862b7a - Mesh + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider - - Contains a collection of polygon meshes - true - 6fc098d6-c521-425c-92c8-5743a650bdcd - Mesh - Mesh + + Numeric slider for single values + 0d217692-f57c-4d5f-bce3-577b85ba48f0 + Number Slider + Blur Iterations false - 46090790-ef3c-49e3-8228-df231f4fe29a - 1 + 0 - + - 913 - 532 - 50 + 470 + 863 + 201 20 - 938.0995 - 542.4023 + 470.1058 + 863.7033 + + + 1 + 1 + 0 + 2 + 0.2 + 0 + 0.6 + + - - - f217f873-92f1-47ae-ad71-ca3c5a45c3f8 - Includes + + + be26de07-efd2-4696-be0c-323d32583bb3 + 7dc547b5-ca43-457d-a3e2-8286f0784ad0 + Surface Slope - - Test a numeric value to see if it is included in the domain - 2f421193-fae4-4b5f-8e9d-96b7e994ca38 - Includes - Inc + + Analyses the slope of a Surface, outputting separated faces for coloring and the slope/grade + true + 95f53ae3-3ea0-47da-85bc-691200a5e335 + Surface Slope + Surface Slope - + - 1228 - 890 - 67 - 44 + 90 + 298 + 159 + 104 - 1260 - 912 + 153 + 350 - + + + The terrain surface + 23f08d5e-7f03-471d-a113-12677a012023 + Surface + Surface + false + 5fd41e35-b1d8-4995-8651-d0b9edd540b1 + 1 + + + + + + 92 + 300 + 46 + 50 + + + 116.5 + 325 + + + + + + + + Settings to be used by the meshing algorithm + 9c883ebc-e304-40e3-ac80-dfd0b2e58186 + Settings + Settings + true + 0 + + + + + + 92 + 350 + 46 + 50 + + + 116.5 + 375 + + + + + + + + 1 + The sub mesh faces (for coloring) + 1a488715-ff4b-483f-ae7a-3ad3038785fe + Mesh Faces + Mesh Faces + false + 0 + + + + + + 168 + 300 + 79 + 20 + + + 207.5 + 310 + + + + + + - Value to test for inclusion - 9b885d94-56c3-4415-beda-fce12598b1e3 - Value - V + 1 + The centers of each mesh face (for vector previews) + 23705083-56c8-46aa-b881-e1626f72af99 + Face Centers + Face Centers false - 78681229-3426-4a41-b35d-88045c7ed601 - 1 + 0 - 1230 - 892 - 15 + 168 + 320 + 79 20 - 1239 - 902 + 207.5 + 330 - + - Domain to test with - 472abaf6-f477-4e2e-95a6-7d39529b0144 - Domain - D + 1 + The direction to the lowest points of each face + e2986b01-e1ff-4e23-b343-f356c6c460ea + Face Vectors + Face Vectors false - 88d391d0-0def-4b34-a583-d9ad70c95495 - 1 + 0 - + - 1230 - 912 - 15 + 168 + 340 + 79 20 - 1239 - 922 + 207.5 + 350 - - - 1 - - - - - 1 - {0} - - - - - - 0 - 1 - - - - - - - - - - True if the value is included in the domain - 9c823f5e-0567-4094-9b57-7edaa20b0220 - Includes - I + + + 1 + The slope of each mesh face, as an angle + 89b56c18-cc6d-4fb8-82eb-225c22c8d990 + Face Slopes ° + Face Slopes ° false 0 @@ -9537,25 +4312,26 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1275 - 892 - 18 + 168 + 360 + 79 20 - 1284 - 902 + 207.5 + 370 - - - Distance between the value and the nearest value inside the domain - 8ae413a4-f07f-45bc-a8c7-114bda43903c - Deviation - D + + + 1 + The slope of each mesh face, as a percentile + fcedb873-c07b-4d5b-b22f-b193064e257a + Face Slopes % + Face Slopes % false 0 @@ -9563,14 +4339,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1275 - 912 - 18 + 168 + 380 + 79 20 - 1284 - 922 + 207.5 + 390 @@ -9580,18 +4356,19 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider + deaf8653-5528-4286-807c-3de8b8dad781 + Surface - - Numeric slider for single values - d2fb6950-fc01-4147-bbd0-be6ff0e9c72f - Number Slider - Cutoff B + + Contains a collection of generic surfaces + true + 5fd41e35-b1d8-4995-8651-d0b9edd540b1 + Surface + Base Terrain Surface false 0 @@ -9599,129 +4376,119 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 913 - 919 - 172 + -143 + 316 + 118 20 - 913.1907 - 919.8282 + -83.1275 + 326.75 - - - 3 - 1 - 1 - 360 - 0 - 0 - 120 + + + 1 + + + + 1 + {0} + + + + + 451a1f68-bfe6-4d82-bdae-cfbd642e8ebd + + + + + - - - d1a28e95-cf96-4936-bf34-8bf142d731bf - Construct Domain + + + 56be2741-8d92-4607-8177-a4108d9d72fd + 7dc547b5-ca43-457d-a3e2-8286f0784ad0 + Surface Aspect - - Create a numeric domain from two numeric extremes. - 340b910f-dd3a-4c53-9744-50198d627e8f - Construct Domain - Dom + + Analyses the aspect of a Surface, outputting separated faces for coloring and the aspect + true + 27695b24-a4a2-477a-8214-bd01a8c335d4 + Surface Aspect + Surface Aspect - + - 1144 - 937 - 61 - 45 + 86 + 684 + 152 + 109 - 1175 - 960 + 149 + 739 - Start value of numeric domain - cb78d6f4-5b5d-4368-91b6-9efc35eb987a - Domain start - A + The terrain surface + a63cab25-e488-43df-b2c3-499927af0e21 + Surface + Surface false - d2fb6950-fc01-4147-bbd0-be6ff0e9c72f + 0f705802-40d3-4ea8-8c21-f72762ab08e3 1 - + - 1146 - 939 - 14 - 20 + 88 + 686 + 46 + 35 - 1154.5 - 949.25 + 112.5 + 703.5 - - - 1 - - - - - 1 - {0} - - - - - 0 - - - - - - - - End value of numeric domain - 453dd45b-6045-4c59-a676-125c1438f8ca - Domain end - B - false - 97cbe806-32d2-4fe5-b76f-3acba83afad0 - 1 + + Vector representing the direction to measure aspect against + 2cfa26e9-b432-4991-a0d1-b9b76f25c50f + Aspect + Aspect + true + 0 - 1146 - 959 - 14 - 21 + 88 + 721 + 46 + 35 - 1154.5 - 969.75 + 112.5 + 738.5 @@ -9738,7 +4505,11 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1 + + 0 + 1 + 0 + @@ -9747,88 +4518,27 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - Numeric domain between {A} and {B} - 88d391d0-0def-4b34-a583-d9ad70c95495 - Domain - I - false + Settings to be used by the meshing algorithm + 6f1d5bbe-8f3b-47db-9219-d74c15aabb56 + Settings + Settings + true 0 - 1190 - 939 - 13 - 41 - - - 1196.5 - 959.5 - - - - - - - - - - - - c3b67aca-0e15-4279-9d6c-96cce97fcb47 - 7dc547b5-ca43-457d-a3e2-8286f0784ad0 - Mesh Slope - - - - - Analyses the slope of a Mesh, outputting separated faces for coloring and the slope/grade - true - 702224ee-d504-4bad-9a92-cd52d71ce551 - Mesh Slope - Slope - - - - - - 563 - 126 - 68 - 84 - - - 597 - 168 - - - - - - The terrain mesh - df2f3380-a21d-4091-83ad-d1c7c47e3b6f - Mesh - M - false - cf7cacd9-3777-4a4a-b872-041846a2ab2e - 1 - - - - - - 565 - 128 - 17 - 80 + 88 + 756 + 46 + 35 - 575 - 168 + 112.5 + 773.5 @@ -9838,9 +4548,9 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1 The sub mesh faces (for coloring) - 532664e0-7d99-4596-9ec8-010e0e5d5262 + ff738281-391e-40f8-914c-4d1291b5c92e Mesh Faces - F + Mesh Faces false 0 @@ -9848,14 +4558,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 612 - 128 - 17 - 20 + 164 + 686 + 72 + 35 - 620.5 - 138 + 200 + 703.5 @@ -9865,36 +4575,9 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1 The centers of each mesh face (for vector previews) - c2e80399-a622-410c-bf52-071c17161699 + 2f3c52ec-c52d-4df7-99f2-78584b6957b4 Face Centers - C - false - 0 - - - - - - 612 - 148 - 17 - 20 - - - 620.5 - 158 - - - - - - - - 1 - The direction to the lowest points of each face - 0fe9b456-097e-46ca-b9ec-12341b0c3576 - Face Slope Vectors - V + Face Centers false 0 @@ -9902,26 +4585,26 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 612 - 168 - 17 - 20 + 164 + 721 + 72 + 35 - 620.5 - 178 + 200 + 738.5 - - - 1 - The angle of the slope - 535d46fd-3ff3-4cd7-8af0-6c5c6ce6ede4 - Face Slope Angles - A + + + 1 + The aspect of each mesh face (measured in degrees) + f21d0295-598f-44c3-9cf6-234c9da9644d + Face Aspects + Face Aspects false 0 @@ -9929,14 +4612,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 612 - 188 - 17 - 20 + 164 + 756 + 72 + 35 - 620.5 - 198 + 200 + 773.5 @@ -9946,85 +4629,117 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - - c3b67aca-0c15-2552-9d6c-96cce97fcb47 - 7dc547b5-ca43-457d-a3e2-8286f0784ad0 - Mesh Aspect + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group - - Analyses the slope of a Mesh, outputting separated faces for coloring and the slope/grade - true - 6a318b33-85cd-446e-b160-f04a59647734 - Mesh Aspect - Aspect + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + 131757f5-1c57-46a6-ba5d-1512aec2aea2 + 444d8315-492d-4606-b986-b4d007f62836 + 2 + 5a4f68ad-f1f3-433f-a002-c66e652b1974 + Group + Assume North = y axis (this is the default if not set) - + + + + + + + + + 16ef3e75-e315-4899-b531-d3166b42dac9 + Vector + + + + + Contains a collection of three-dimensional vectors + 27aa2985-e517-4ac1-9148-a891ebdcc6a8 + Vector + Aspect Angle + false + 37c82339-1feb-48c9-9e69-7b33dec0608c + 1 + + - 564 - 585 - 68 - 64 + -129 + 1006 + 81 + 20 - 598 - 617 + -87.79688 + 1016.516 - - - The terrain mesh - f9beeef4-8103-483d-ada0-2bf3d086d0e8 - Mesh - M - false - 3fb29611-59cf-4ccf-b6b3-cef38ca6e8f7 - 1 + + + + + + + d3d195ea-2d59-4ffa-90b1-8b7ff3369f69 + Unit Y + + + + + Unit vector parallel to the world {y} axis. + 131757f5-1c57-46a6-ba5d-1512aec2aea2 + Unit Y + Unit Y + + + + + + -363 + 1017 + 134 + 54 + + + -309 + 1044 + - - - - - 566 - 587 - 17 - 30 - - - 576 - 602 - - - - - + - Vector representing the direction to measure aspect against - 865428ad-5eda-4db4-8e07-f4f8ed05fce0 - Aspect - A - true - d31deb3b-eeee-4902-85b0-86be32e8a554 + Unit multiplication + a38c3c38-9396-470e-8393-4e5369a45936 + Factor + Factor + false + 444d8315-492d-4606-b986-b4d007f62836 1 - 566 - 617 - 17 - 30 + -361 + 1019 + 37 + 50 - 576 - 632 + -341 + 1044 @@ -10041,11 +4756,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - 0 - 1 - 0 - + 1 @@ -10055,12 +4766,11 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - 1 - The sub mesh faces (for coloring) - 46090790-ef3c-49e3-8228-df231f4fe29a - Mesh Faces - F + + World {y} vector + 37c82339-1feb-48c9-9e69-7b33dec0608c + Unit vector + Unit vector false 0 @@ -10068,70 +4778,177 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 613 - 587 - 17 - 20 + -294 + 1019 + 63 + 50 - 621.5 - 597 + -262.5 + 1044 - - - 1 - The centers of each mesh face (for vector previews) - 85d4c4a1-63e8-42eb-b554-be8d04aabda1 - Face Centers - C - false - 0 + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 444d8315-492d-4606-b986-b4d007f62836 + Panel + + false + 0 + 0 + 1 + + + + + + -444 + 1027 + 58 + 39 + + 0 + 0 + 0 + + -443.32 + 1027.3 + + + + + + + 255;255;250;90 + + true + true + true + false + true + + + + + + + + + deaf8653-5528-4286-807c-3de8b8dad781 + Surface + + + + + Contains a collection of generic surfaces + true + 0f705802-40d3-4ea8-8c21-f72762ab08e3 + Surface + Base Terrain Surface + false + 0 + + + + + + -141 + 693 + 118 + 20 + + + -81.8775 + 703 + + + + + + 1 - + - - 613 - 607 - 17 - 20 - - - 621.5 - 617 - + 1 + {0} + + + + 8d1d5a24-a490-4c9f-9d41-bc93ad904ec6 + + + - - - 1 - The angle of the slope - 277c6f7e-61ab-405c-ad69-cc8631c00924 - Face Aspect Angles - A - false - 0 + + + + + + + 1e936df3-0eea-4246-8549-514cb8862b7a + Mesh + + + + + Contains a collection of polygon meshes + true + 64e8752f-56e2-4ba5-a8be-fad451ffa2a2 + Mesh + Base Terrain Mesh + false + 0 + + + + + + -134 + 120 + 108 + 20 + + + -79.85232 + 130.334 + + + + + + 1 - + - - 613 - 627 - 17 - 20 - - - 621.5 - 637 - + 1 + {0} + + + + 4e763713-d28b-4581-a2d9-cb66e78d5924 + + + @@ -10139,114 +4956,122 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 48a9fa10-8d3c-4767-aca6-81232271f6e0 - Blur Mesh + 2b9bf01d-5fe5-464c-b0b3-b469eb5f2efb + Mesh Edges - Blur the colours on a mesh - e6d16f65-726b-4db6-b6b1-808b5b641013 - Blur Mesh - MBlur + Get all the edges of a mesh + 35580496-583c-47bd-b2b6-beb153ae82d8 + Mesh Edges + Mesh Edges - + - 1627 - 569 - 71 - 54 + 469 + 1318 + 179 + 90 - 1661 - 596 + 520 + 1363 - Mesh to blur - 44e70ee7-180b-4263-924e-6c3bdce65576 + Mesh for edge extraction + 45fcade9-684e-448d-86b1-b6ca9e3c1b50 Mesh - M + Mesh false - 674c231c-8a9f-4150-829b-4df8d32e0ddc + 46090790-ef3c-49e3-8228-df231f4fe29a 1 - 1629 - 571 - 17 - 25 + 471 + 1320 + 34 + 86 - 1639 - 583.5 + 489.5 + 1363 - + - Number of consecutive blurring iterations - d27fafc7-1894-4941-b9e7-d2efd27704a6 - Iterations - I + 1 + Edges with valence 1 (a single adjacent face) + 51a0c3f6-f3a1-4ae6-a23e-2ea205d9ee40 + Naked Edges + Naked Edges false - 0d217692-f57c-4d5f-bce3-577b85ba48f0 - 1 + 0 - + - 1629 - 596 - 17 - 25 + 535 + 1320 + 111 + 28 - 1639 - 608.5 + 590.5 + 1334.333 - - - 1 + + + + + 1 + Edges with valence 2 (two adjacent faces) + c41c6615-f9d6-4146-bd17-83ab4abba68d + Interior Edges + Interior Edges + false + 0 + + + + + + 535 + 1348 + 111 + 29 + + + 590.5 + 1363 + - - - - 1 - {0} - - - - - 1 - - - - - - - - Mesh with blurred vertex colours - ee66602c-9069-4dca-b283-c7171765a7d1 - Mesh - M + + + 1 + Edges with valence 3 or higher + 8c1c09d2-ef8d-4e7c-9407-178ba95d7f4a + Non-Manifold Edges + Non-Manifold Edges false 0 @@ -10254,14 +5079,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1676 - 571 - 20 - 50 + 535 + 1377 + 111 + 29 - 1686 - 596 + 590.5 + 1391.667 @@ -10271,115 +5096,93 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + - 9f6d85c9-1143-4538-bca7-69dcb11a74ef - Weld Mesh + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group - - Weld (merge) creases in a mesh - true - f92f88d7-2498-4a84-a302-bd02f88a70a3 - Weld Mesh - Weld + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + 768c17e9-09a6-43b0-ab72-130ff0eac985 + 1 + acebd734-1a17-48be-a4bc-27207926a24d + Group + Show face edges for reference - + + + + + + + + + 2b9bf01d-5fe5-464c-b0b3-b469eb5f2efb + Mesh Edges + + + + + Get all the edges of a mesh + 768c17e9-09a6-43b0-ab72-130ff0eac985 + Mesh Edges + Mesh Edges + + - 1525 - 527 - 68 - 48 + 469 + 518 + 179 + 90 - 1559 - 551 + 520 + 563 - Mesh to weld - 736cc617-cf83-4000-bc58-c788c36c2eb8 + Mesh for edge extraction + bb29524f-9f95-45be-9b7e-0262bddb7e2d Mesh - M + Mesh false - 4a283177-bb20-47f0-9ccf-73cb17abe02f + 1a488715-ff4b-483f-ae7a-3ad3038785fe 1 - 1527 - 529 - 17 - 22 - - - 1537 - 540 - - - - - - - - Weld angle - d32a669c-7db7-40dc-bd4f-000de7087fc3 - Angle - A - false - 0 - false - - - - - - 1527 - 551 - 17 - 22 + 471 + 520 + 34 + 86 - 1537 - 562 + 489.5 + 563 - - - 1 - - - - - 1 - {0} - - - - - 3.1415926535897931 - - - - - - - - Welded mesh - 674c231c-8a9f-4150-829b-4df8d32e0ddc - Result - R + + 1 + Edges with valence 1 (a single adjacent face) + d25dcece-b43d-4b13-947c-c5b94c8cd197 + Naked Edges + Naked Edges false 0 @@ -10387,87 +5190,53 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1574 - 529 - 17 - 44 + 535 + 520 + 111 + 28 - 1582.5 - 551 + 590.5 + 534.3333 - - - - - - - 4bc9dbbf-fec8-4348-a3af-e33e7edc8e7b - Mesh Join - - - - - Join a set of meshes into a single mesh - true - 35cb666f-c8f0-4590-b741-f6e6b39b4f6a - Mesh Join - MJoin - - - - - - 1413 - 520 - 87 - 54 - - - 1463 - 547 - - - - - + + 1 - Meshes to join - 5d5cf2d5-98e5-4bb3-947b-6b9b95a03c38 - 1 - Meshes - M + Edges with valence 2 (two adjacent faces) + c87ed696-6dbf-4d90-b234-486628397078 + Interior Edges + Interior Edges false - 8068d178-a47c-4988-9cda-c3d740704c0a - 1 + 0 - 1415 - 522 - 33 - 50 + 535 + 548 + 111 + 29 - 1441 - 547 + 590.5 + 563 - - - Mesh join result - 4a283177-bb20-47f0-9ccf-73cb17abe02f - Mesh - M + + + 1 + Edges with valence 3 or higher + 79c466b6-799b-410c-9c1f-d1b7a246895f + Non-Manifold Edges + Non-Manifold Edges false 0 @@ -10475,14 +5244,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1478 - 522 - 20 - 50 + 535 + 577 + 111 + 29 - 1488 - 547 + 590.5 + 591.6666 @@ -10492,51 +5261,6 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider - - - - - Numeric slider for single values - 0d217692-f57c-4d5f-bce3-577b85ba48f0 - Number Slider - Blur Iterations - false - 0 - - - - - - 913 - 667 - 201 - 20 - - - 913.6558 - 667.1533 - - - - - - 1 - 1 - 0 - 2 - 0.2 - 0 - 0.3 - - - - - - @@ -10544,7 +5268,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 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 diff --git a/plugin/Properties/Resources.Designer.cs b/plugin/Properties/Resources.Designer.cs index d96378b1..625030de 100644 --- a/plugin/Properties/Resources.Designer.cs +++ b/plugin/Properties/Resources.Designer.cs @@ -230,5 +230,25 @@ internal static System.Drawing.Bitmap icon_pshower { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icon_surface_aspect { + get { + object obj = ResourceManager.GetObject("icon_surface_aspect", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icon_surface_slope { + get { + object obj = ResourceManager.GetObject("icon_surface_slope", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/plugin/Properties/Resources.resx b/plugin/Properties/Resources.resx index 79b28ead..876f61f1 100644 --- a/plugin/Properties/Resources.resx +++ b/plugin/Properties/Resources.resx @@ -169,4 +169,10 @@ ..\Resources\icon_mesh_aspect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icon_surface_aspect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icon_surface_slope.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/plugin/Resources/icon_surface_aspect.png b/plugin/Resources/icon_surface_aspect.png new file mode 100644 index 0000000000000000000000000000000000000000..cd88a9d79c04fea51e08cc83ae8c9aea0513ea8d GIT binary patch literal 555 zcmV+`0@VG9P)Flg0rPA!$r&ELx=1n!EPBP+D*>Bo4fUw0+$BzWctr zYeUM}q75Tl!YILEOzDTo1KZMn zCrB?HgP5A3U`u}hsjv7 zBk7V0+#)hm97N!$L0HPu6>aHV`rW?oa5TH@So3&9*I2gV1NRZ2ObX6dA?5-MTG5Q7 z0Etlr+KB3hTJ)*ZA!+F(d1C&6_ALD#x=J11-Au`zOo;%|N>Z%J5SFU6kMRQ)U}3S4 zm=)^?%qmgbqB?MU(q)g8UFE{H$*+3o%MPro9qO)#E6kY!{Z!6<74kMe7K!Ug1T^hFd^eP3?t3s2(c&dTX tsCmHpX9X28QdG?>8-LNp1b&qQ{tKt*Q|CujGyTE@@Kx=lW#}WwkPazNp4b2!uwQQnnUPCiR;L{A0%_|g67bPYXokh>YhOBumNR3hP z4}aEB${jWDfXEqW7gD(Yy`s*IFYB=L7i!-%mK1+~z9Jpg3v`bsVb%6c3k1S3@wO+( zy!_cfk2j8;I6>9TB{I1d3StSNp_SEn?jB33Vy(=j0lALM?230HvvS9HOmDqY6kkSX zd`a!87pZwl|5BQ$ZdVrvf2du>Lh0rZzMvtWh>9cC$Q6o+bWB8nLTGuf2 zf$y+x&rq@M)GI&y*s+sPbVfv`r9Jv-t^dvoC!0Cn!%P&l?pp-Z`ARBaO-(OE&oPMAzRNE-`; zhZbZ20>+3;9Xl@m-EkFY(13~h;GCeAPemamH`AHO^UnCPcmiT!#xce_MeRRYyTCsh ZfLEo)+N6gHoxuPA002ovPDHLkV1mw!1A_nn literal 0 HcmV?d00001 diff --git a/plugin/Terrain/groundhogMeshAspectComponent.cs b/plugin/Terrain/groundhogMeshAspectComponent.cs index cb8d4ecd..342f1b1e 100644 --- a/plugin/Terrain/groundhogMeshAspectComponent.cs +++ b/plugin/Terrain/groundhogMeshAspectComponent.cs @@ -10,7 +10,7 @@ namespace groundhog public class groundhogMeshAspectComponent : GroundHog_Component { public groundhogMeshAspectComponent() - : base("Mesh Aspect", "Aspect", "Analyses the slope of a Mesh, outputting separated faces for coloring and the slope/grade", "Groundhog", "Terrain") + : base("Mesh Aspect", "Aspect", "Analyses the aspect of a Mesh, outputting separated faces for coloring and the aspect", "Groundhog", "Terrain") { } @@ -30,7 +30,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) { pManager.AddMeshParameter("Mesh Faces", "F", "The sub mesh faces (for coloring)", GH_ParamAccess.list); pManager.AddPointParameter("Face Centers", "C", "The centers of each mesh face (for vector previews)", GH_ParamAccess.list); - pManager.AddNumberParameter("Face Aspects", "A", "The aspect of the slope (measured in degrees)", GH_ParamAccess.list); + pManager.AddNumberParameter("Face Aspects", "A", "The aspect of each mesh face (measured in degrees)", GH_ParamAccess.list); } protected override void GroundHogSolveInstance(IGH_DataAccess DA) diff --git a/plugin/Terrain/groundhogMeshSlopeComponent.cs b/plugin/Terrain/groundhogMeshSlopeComponent.cs index 45ec6558..6fb2840b 100644 --- a/plugin/Terrain/groundhogMeshSlopeComponent.cs +++ b/plugin/Terrain/groundhogMeshSlopeComponent.cs @@ -29,8 +29,8 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) pManager.AddMeshParameter("Mesh Faces", "F", "The sub mesh faces (for coloring)", GH_ParamAccess.list); pManager.AddPointParameter("Face Centers", "C", "The centers of each mesh face (for vector previews)", GH_ParamAccess.list); pManager.AddVectorParameter("Face Vectors", "V", "The direction to the lowest points of each face", GH_ParamAccess.list); - pManager.AddNumberParameter("Face Slopes °", "A", "The slope of each face, as an angle", GH_ParamAccess.list); - pManager.AddNumberParameter("Face Slopes %", "P", "The slope of each face, as a percentile", GH_ParamAccess.list); + pManager.AddNumberParameter("Face Slopes °", "A", "The slope of each mesh face, as an angle", GH_ParamAccess.list); + pManager.AddNumberParameter("Face Slopes %", "P", "The slope of each mesh face, as a percentile", GH_ParamAccess.list); } protected override void GroundHogSolveInstance(IGH_DataAccess DA) diff --git a/plugin/Terrain/groundhogSurfaceAspectComponent.cs b/plugin/Terrain/groundhogSurfaceAspectComponent.cs new file mode 100644 index 00000000..cd20ccec --- /dev/null +++ b/plugin/Terrain/groundhogSurfaceAspectComponent.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using groundhog.Properties; +using Grasshopper.Kernel; +using Rhino.Geometry; + +namespace groundhog +{ + public class groundhogSurfaceAspectComponent : GroundHog_Component + { + public groundhogSurfaceAspectComponent() + : base("Surface Aspect", "Aspect", "Analyses the aspect of a Surface, outputting separated faces for coloring and the aspect", "Groundhog", "Terrain") + { + } + + protected override Bitmap Icon => Resources.icon_surface_aspect; + + public override Guid ComponentGuid => new Guid("{56be2741-8d92-4607-8177-a4108d9d72fd}"); + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddSurfaceParameter("Surface", "S", "The terrain surface", GH_ParamAccess.item); + pManager[0].Optional = false; + pManager.AddVectorParameter("Aspect", "A", "Vector representing the direction to measure aspect against", GH_ParamAccess.item, new Vector3d(0, 1, 0)); + pManager[1].Optional = true; + pManager.AddMeshParameter("Settings", "P", "Settings to be used by the meshing algorithm", GH_ParamAccess.item); + pManager[2].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddMeshParameter("Mesh Faces", "F", "The sub mesh faces (for coloring)", GH_ParamAccess.list); + pManager.AddPointParameter("Face Centers", "C", "The centers of each mesh face (for vector previews)", GH_ParamAccess.list); + pManager.AddNumberParameter("Face Aspects", "A", "The aspect of each mesh face (measured in degrees)", GH_ParamAccess.list); + } + + protected override void GroundHogSolveInstance(IGH_DataAccess DA) + { + var SURFACE = default(Surface); + var ASPECT = default(Vector3d); + + // Access and extract data from the input parameters individually + if (!DA.GetData(0, ref SURFACE)) return; + if (!DA.GetData(1, ref ASPECT)) return; + + // Convert Surface to Mesh; TODO: expose mesh parameters; handle multiple outputs + Mesh[] PREMESH = Mesh.CreateFromBrep(SURFACE.ToBrep(), MeshingParameters.Default); + var MESH = PREMESH[0]; + + var subMeshes = TerrainCalculations.Explode(MESH); + var subCentres = TerrainCalculations.GetCenters(MESH); + var subDirections = TerrainCalculations.GetDirections(subMeshes, subCentres); + // This is the only step different to Slope; i.e. measure angle difference between slope and given vector + var subAspects = GetAspects(subDirections, ASPECT); + + // Assign variables to output parameters + DA.SetDataList(0, subMeshes); + DA.SetDataList(1, subCentres); + DA.SetDataList(2, subAspects); + } + + private List GetAspects(List subDirections, Vector3d ASPECT) + { + var subAspects = new List(); + // Need to measure with a specified plane so it doesn't return the smallest angle but rather the rotational/radial angle + var leftPlane = new Plane(new Point3d(0, 0, 0), new Vector3d(0, 0, -1)); + foreach (var direction in subDirections) + { + if ((direction.X == 0 && direction.Y == 0) || direction.IsZero) + { + subAspects.Add(0); // On perfectly flat surfaces measured angles will produce an infinite Angle + } + else + { + var angle = Vector3d.VectorAngle(ASPECT, direction, leftPlane); + subAspects.Add(angle * (180 / Math.PI)); // Convert to radians + } + } + return subAspects; + } + + private List GetAngles(Mesh MESH) + { + var subAngles = new List(); + var normals = MESH.FaceNormals; + if (normals.Count == 0) // Quad Meshes and others don't have precomputed normals? + { + MESH.FaceNormals.ComputeFaceNormals(); + normals = MESH.FaceNormals; + } + + foreach (var normal in normals) + { + var angle = (0.0 - (Math.Asin(Math.Abs(normal.Z)) - 0.5 * Math.PI)) * (180.0 / Math.PI); + subAngles.Add(angle); + } + return subAngles; + } +} +} \ No newline at end of file diff --git a/plugin/Terrain/groundhogSurfaceSlopeComponent.cs b/plugin/Terrain/groundhogSurfaceSlopeComponent.cs new file mode 100644 index 00000000..afaa86ca --- /dev/null +++ b/plugin/Terrain/groundhogSurfaceSlopeComponent.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using groundhog.Properties; +using Grasshopper.Kernel; +using Rhino.Geometry; + +namespace groundhog +{ + public class groundhogSurfaceSlopeComponent : GroundHog_Component + { + public groundhogSurfaceSlopeComponent() + : base("Surface Slope", "Slope", "Analyses the slope of a Surface, outputting separated faces for coloring and the slope/grade", "Groundhog", "Terrain") + { + } + + protected override Bitmap Icon => Resources.icon_surface_slope; + + public override Guid ComponentGuid => new Guid("{be26de07-efd2-4696-be0c-323d32583bb3}"); + + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddSurfaceParameter("Surface", "S", "The terrain surface", GH_ParamAccess.item); + pManager[0].Optional = false; + pManager.AddMeshParameter("Settings", "P", "Settings to be used by the meshing algorithm", GH_ParamAccess.item); + pManager[1].Optional = true; + } + + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddMeshParameter("Mesh Faces", "F", "The sub mesh faces (for coloring)", GH_ParamAccess.list); + pManager.AddPointParameter("Face Centers", "C", "The centers of each mesh face (for vector previews)", GH_ParamAccess.list); + pManager.AddVectorParameter("Face Vectors", "V", "The direction to the lowest points of each face", GH_ParamAccess.list); + pManager.AddNumberParameter("Face Slopes °", "A", "The slope of each mesh face, as an angle", GH_ParamAccess.list); + pManager.AddNumberParameter("Face Slopes %", "P", "The slope of each mesh face, as a percentile", GH_ParamAccess.list); + } + + protected override void GroundHogSolveInstance(IGH_DataAccess DA) + { + var SURFACE = default(Surface); + // Access and extract data from the input parameters individually + if (!DA.GetData(0, ref SURFACE)) return; + + // Convert Surface to Mesh; TODO: expose mesh parameters; handle multiple outputs + Mesh[] PREMESH = Mesh.CreateFromBrep(SURFACE.ToBrep(), MeshingParameters.Default); + var MESH = PREMESH[0]; + + var subMeshes = TerrainCalculations.Explode(MESH); + var subCentres = TerrainCalculations.GetCenters(MESH); + var subDirections = TerrainCalculations.GetDirections(subMeshes, subCentres); + var subAngles = GetAngles(MESH); + + // Calculate ratios from angles + var subPercentiles= new List(); + foreach (var angle in subAngles) + { + var radians = Math.PI * angle / 180.0; + subPercentiles.Add(Math.Tan(radians) * 100); + } + + // Assign variables to output parameters + DA.SetDataList(0, subMeshes); + DA.SetDataList(1, subCentres); + DA.SetDataList(2, subDirections); + DA.SetDataList(3, subAngles); + DA.SetDataList(4, subPercentiles); + } + + private List GetAngles(Mesh MESH) + { + var subAngles = new List(); + var normals = MESH.FaceNormals; + if (normals.Count == 0) // Quad Meshes and others don't have precomputed normals? + { + MESH.FaceNormals.ComputeFaceNormals(); + normals = MESH.FaceNormals; + } + + foreach (var normal in normals) + { + if (normal.X == 0 && normal.Y == 0) + { + subAngles.Add(0); // On perfectly flat surfaces measured angles will produce an infinite number + } + else + { + var angle = (0.0 - (Math.Asin(Math.Abs(normal.Z)) - 0.5 * Math.PI)) * (180.0 / Math.PI); + subAngles.Add(angle); + } + } + return subAngles; + } + } +} \ No newline at end of file diff --git a/plugin/groundhog.csproj b/plugin/groundhog.csproj index 25ef779b..039e0376 100644 --- a/plugin/groundhog.csproj +++ b/plugin/groundhog.csproj @@ -99,6 +99,8 @@ + + @@ -137,6 +139,12 @@ + + + + + + From 636cff0cda4a56d0fddd8a82a70a12f5f40839df Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 17:52:31 +1000 Subject: [PATCH 10/18] Update flow dogs definition --- docs/flows/Groundhog - Flows Examples.ghx | 1076 +++++++++++---------- 1 file changed, 561 insertions(+), 515 deletions(-) diff --git a/docs/flows/Groundhog - Flows Examples.ghx b/docs/flows/Groundhog - Flows Examples.ghx index 4a61e59c..21189c22 100644 --- a/docs/flows/Groundhog - Flows Examples.ghx +++ b/docs/flows/Groundhog - Flows Examples.ghx @@ -48,8 +48,8 @@ - 344 - 59 + -285 + 383 0.64 @@ -83,10 +83,35 @@ - 60 + 61 - + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 200;255;141;101 + + A group of Grasshopper objects + 6ffdd167-c62c-42c8-aa7e-825d1fbe1528 + 1 + 9cdaea5f-3465-4504-a4ee-c90694eb7153 + Group + Calculate the flow paths (for surface) + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -111,7 +136,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -128,7 +153,7 @@ 1 3263443d-42b3-40dd-b9ae-e11ce8da802e Group - Calculate the flow paths (for surface) + @@ -136,7 +161,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -161,7 +186,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -196,7 +221,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -221,7 +246,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -246,7 +271,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -276,7 +301,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -301,7 +326,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -330,7 +355,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -355,7 +380,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -380,7 +405,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -419,7 +444,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -445,7 +470,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -470,7 +495,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -495,7 +520,7 @@ - + deaf8653-5528-4286-807c-3de8b8dad781 Surface @@ -515,14 +540,14 @@ - -90 - 164 + -88 + 114 52 20 - -63.59261 - 174.4538 + -61.59261 + 124.4538 @@ -550,15 +575,16 @@ - + 5106bafc-d5d4-4983-83e7-7be3ed07f502 Divide Surface - + Generate a grid of {uv} points on a surface. + true 9069d3a4-c792-4c3d-99b6-79b89948a84e Divide Surface Divide Surface @@ -786,7 +812,7 @@ - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -797,7 +823,7 @@ Numeric slider for single values 665f013a-55c0-4da8-ade7-c749beaaf253 Number Slider - Number Slider + Surface U Divisions false 0 @@ -831,7 +857,7 @@ - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -842,7 +868,7 @@ Numeric slider for single values 36c2981c-1b03-459f-bae6-bde88d70b533 Number Slider - Number Slider + Proximity Threshold false 0 @@ -876,7 +902,7 @@ - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -887,7 +913,7 @@ Numeric slider for single values db3b3621-2e26-4c4f-b61d-607af828e7a8 Number Slider - Number Slider + Surface V Divisions false 0 @@ -921,7 +947,7 @@ - + 537b0419-bbc2-4ff4-bf08-afe526367b2c Custom Preview @@ -1022,7 +1048,7 @@ - + 537b0419-bbc2-4ff4-bf08-afe526367b2c Custom Preview @@ -1123,7 +1149,7 @@ - + a45d68b3-c299-4b17-bdae-7975f216cec6 Colour HSL @@ -1366,7 +1392,7 @@ - + 2d241bdc-ecaa-4cf3-815a-c8001d1798d1 7dc547b5-ca43-457d-a3e2-8286f0784ad0 @@ -1385,14 +1411,14 @@ - 631 - 171 + 637 + 193 204 124 - 749 - 233 + 755 + 255 @@ -1404,21 +1430,21 @@ Flow Paths Flow Paths false - 264044bc-026e-4db4-99af-fcfefe2cce7a + ba8bf58a-2582-4a32-b223-3dbb084c0e34 1 - 633 - 173 + 639 + 195 101 60 - 685 - 203 + 691 + 225 @@ -1438,14 +1464,14 @@ - 633 - 233 + 639 + 255 101 60 - 685 - 263 + 691 + 285 @@ -1465,14 +1491,14 @@ - 764 - 173 + 770 + 195 69 40 - 798.5 - 193 + 804.5 + 215 @@ -1492,14 +1518,14 @@ - 764 - 213 + 770 + 235 69 40 - 798.5 - 233 + 804.5 + 255 @@ -1519,14 +1545,14 @@ - 764 - 253 + 770 + 275 69 40 - 798.5 - 273 + 804.5 + 295 @@ -1536,7 +1562,7 @@ - + afb96615-c59a-45c9-9cac-e27acb1c7ca0 Explode @@ -1696,7 +1722,7 @@ - + 1817fd29-20ae-4503-b542-f0fb651e67d7 List Length @@ -1783,7 +1809,7 @@ - + e64c5fb1-845c-4ab1-8911-5f338516ba67 Series @@ -1983,7 +2009,7 @@ - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -2028,7 +2054,7 @@ - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -2073,7 +2099,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -2098,7 +2124,7 @@ - + 537b0419-bbc2-4ff4-bf08-afe526367b2c Custom Preview @@ -2116,14 +2142,14 @@ - 2300 - 726 + 2298 + 769 86 118 - 2372 - 785 + 2370 + 828 @@ -2142,14 +2168,14 @@ - 2302 - 728 + 2300 + 771 55 57 - 2331 - 756.5 + 2329 + 799.5 @@ -2169,14 +2195,14 @@ - 2302 - 785 + 2300 + 828 55 57 - 2331 - 813.5 + 2329 + 856.5 @@ -2199,7 +2225,7 @@ - + 0d1e2027-f153-460d-84c0-f9af431b08cb Maximum @@ -2311,7 +2337,7 @@ - + 1e936df3-0eea-4246-8549-514cb8862b7a Mesh @@ -2366,7 +2392,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -2392,7 +2418,7 @@ - + 2d241bdc-ecaa-4cf3-815a-c8001d1798d1 7dc547b5-ca43-457d-a3e2-8286f0784ad0 @@ -2562,7 +2588,7 @@ - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -2607,7 +2633,7 @@ - + f31d8d7a-7536-4ac8-9c96-fde6ecda4d0a Cluster @@ -2640,14 +2666,14 @@ - 113 - 732 + 177 + 675 65 59 - 145 - 762 + 209 + 705 @@ -2675,14 +2701,14 @@ - 115 - 734 + 179 + 677 15 27 - 124 - 747.75 + 188 + 690.75 @@ -2702,14 +2728,14 @@ - 115 - 761 + 179 + 704 15 28 - 124 - 775.25 + 188 + 718.25 @@ -2749,14 +2775,14 @@ - 160 - 734 + 224 + 677 16 55 - 168 - 761.5 + 232 + 704.5 @@ -2768,7 +2794,7 @@ - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -2794,7 +2820,7 @@ - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -2849,7 +2875,7 @@ - + 59e0b89a-e487-49f8-bab8-b5bab16be14c Panel @@ -2915,7 +2941,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 11bbd48b-bb0a-4f1b-8167-fa297590390d End Points @@ -2934,13 +2960,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 917 - 879 + 919 102 82 969 - 920 + 960 @@ -2959,13 +2985,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 919 - 881 + 921 35 78 938 - 920 + 960 @@ -2985,13 +3011,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 984 - 881 + 921 33 39 1000.5 - 900.5 + 940.5 @@ -3011,13 +3037,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 984 - 920 + 960 33 39 1000.5 - 939.5 + 979.5 @@ -3027,7 +3053,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 9abae6b7-fa1d-448c-9209-4a8155345841 Deconstruct @@ -3046,13 +3072,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1054 - 893 + 933 141 92 1103 - 939 + 979 @@ -3071,13 +3097,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1056 - 895 + 935 32 88 1073.5 - 939 + 979 @@ -3097,13 +3123,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1118 - 895 + 935 75 29 1155.5 - 909.6667 + 949.6667 @@ -3123,13 +3149,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1118 - 924 + 964 75 29 1155.5 - 939 + 979 @@ -3149,13 +3175,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1118 - 953 + 993 75 30 1155.5 - 968.3334 + 1008.333 @@ -3165,7 +3191,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 3581f42a-9592-4549-bd6b-1c0fc39d067b Construct Point @@ -3184,13 +3210,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1230 - 889 + 929 138 114 1316 - 946 + 986 @@ -3209,13 +3235,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1232 - 891 + 931 69 36 1268 - 909.3333 + 949.3333 @@ -3256,13 +3282,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1232 - 927 + 967 69 37 1268 - 946 + 986 @@ -3302,13 +3328,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1232 - 964 + 1004 69 37 1268 - 982.6666 + 1022.667 @@ -3348,13 +3374,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1331 - 891 + 931 35 110 1348.5 - 946 + 986 @@ -3364,7 +3390,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + c4373505-a4cf-4992-8db1-fd6e6bb5850d MetaBall(t) Custom @@ -3383,13 +3409,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1712 - 923 + 963 139 140 1784 - 993 + 1033 @@ -3409,13 +3435,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1714 - 925 + 965 55 27 1743 - 938.6 + 978.6 @@ -3437,13 +3463,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1714 - 952 + 992 55 27 1743 - 965.8 + 1005.8 @@ -3493,13 +3519,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1714 - 979 + 1019 55 27 1743 - 993 + 1033 @@ -3549,13 +3575,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1714 - 1006 + 1046 55 27 1743 - 1020.2 + 1060.2 @@ -3596,13 +3622,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1714 - 1033 + 1073 55 28 1743 - 1047.4 + 1087.4 @@ -3623,13 +3649,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1799 - 925 + 965 50 136 1824 - 993 + 1033 @@ -3639,7 +3665,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + c40dc145-9e36-4a69-ac1a-6d825c654993 Repeat Data @@ -3658,13 +3684,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1539 - 1055 + 1095 108 93 1597 - 1102 + 1142 @@ -3684,13 +3710,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1541 - 1057 + 1097 41 44 1563 - 1079.25 + 1119.25 @@ -3711,13 +3737,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1541 - 1101 + 1141 41 45 1563 - 1123.75 + 1163.75 @@ -3738,13 +3764,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1612 - 1057 + 1097 33 89 1628.5 - 1101.5 + 1141.5 @@ -3754,7 +3780,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 1817fd29-20ae-4503-b542-f0fb651e67d7 List Length @@ -3773,13 +3799,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1412 - 969 + 1009 101 85 1452 - 1012 + 1052 @@ -3799,13 +3825,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1414 - 971 + 1011 23 81 1427 - 1011.5 + 1051.5 @@ -3825,13 +3851,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 1467 - 971 + 1011 44 81 1489 - 1011.5 + 1051.5 @@ -3841,7 +3867,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -3861,13 +3887,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 918 - 1069 + 1110 205 20 918.8157 - 1069.777 + 1110.402 @@ -3886,7 +3912,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 537b0419-bbc2-4ff4-bf08-afe526367b2c Custom Preview @@ -3905,13 +3931,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 2300 - 1080 + 1120 86 118 2372 - 1139 + 1179 @@ -3931,13 +3957,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 2302 - 1082 + 1122 55 57 2331 - 1110.5 + 1150.5 @@ -3958,13 +3984,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 2302 - 1139 + 1179 55 57 2331 - 1167.5 + 1207.5 @@ -3987,7 +4013,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + d51e9b65-aa4e-4fd6-976c-cef35d421d05 Boundary Surfaces @@ -4006,13 +4032,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 2097 - 935 + 975 120 134 2150 - 1002 + 1042 @@ -4032,13 +4058,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 2099 - 937 + 977 36 130 2118.5 - 1002 + 1042 @@ -4059,13 +4085,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 2165 - 937 + 977 50 130 2190 - 1002 + 1042 @@ -4075,7 +4101,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -4095,13 +4121,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 918 - 1118 + 1159 225 20 918.8153 - 1118.777 + 1159.402 @@ -4120,7 +4146,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 9c53bac0-ba66-40bd-8154-ce9829b9db1a Colour Swatch @@ -4143,13 +4169,13 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org 919 - 1172 + 1212 122 20 919.4947 - 1172.287 + 1212.912 @@ -4157,7 +4183,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -4202,7 +4228,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -4257,7 +4283,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -4312,7 +4338,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - + 2d218bdc-ecaa-2cf7-815a-c8111d1798d3 7dc547b5-ca43-457d-a3e2-8286f0784ad0 @@ -4331,14 +4357,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 386 - 898 + 383 + 859 141 163 - 445 - 980 + 442 + 941 @@ -4356,14 +4382,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 388 - 900 + 385 + 861 42 31 - 410.5 - 915.9 + 407.5 + 876.9 @@ -4384,14 +4410,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 388 - 931 + 385 + 892 42 32 - 410.5 - 947.7 + 407.5 + 908.7 @@ -4411,14 +4437,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 388 - 963 + 385 + 924 42 32 - 410.5 - 979.5 + 407.5 + 940.5 @@ -4435,7 +4461,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 1000 + 0 @@ -4458,14 +4484,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 388 - 995 + 385 + 956 42 32 - 410.5 - 1011.3 + 407.5 + 972.3 @@ -4505,14 +4531,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 388 - 1027 + 385 + 988 42 32 - 410.5 - 1043.1 + 407.5 + 1004.1 @@ -4552,14 +4578,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 460 - 900 + 457 + 861 65 79 - 492.5 - 939.75 + 489.5 + 900.75 @@ -4579,14 +4605,14 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - 460 - 979 + 457 + 940 65 80 - 492.5 - 1019.25 + 489.5 + 980.25 @@ -4596,306 +4622,45 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - - - 2d268bdc-ecaa-4cf7-815a-c8111d1798d1 - 7dc547b5-ca43-457d-a3e2-8286f0784ad0 - Flow Simulation (Surface) + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider - - Construct flow paths over a surface - true - f0bd3f85-cfbc-4d40-82c8-5d414f5372e8 - Flow Simulation (Surface) - Flow Projection (Surface) + + Numeric slider for single values + 61f885d8-8eae-49e7-b76e-70d2dcb052d2 + Number Slider + Flow Step Size + false + 0 - + - 389 - 45 - 142 - 176 + -314 + 826 + 277 + 20 - 449 - 133 + -313.0092 + 826.5744 - + - Base landscape form (as a surface) for the flow calculation - 346051be-e017-4e67-99a3-d861a3de58aa - Surface - Surface - false - aa217cc7-63e5-48d4-80c3-f57085620894 - 1 - - - - - - 391 - 47 - 43 - 34 - - - 414 - 64.2 - - - - - - - - 1 - Start points for the flow paths (will be projected on to the surface) - 6427a8d4-768a-4ef0-9a99-336e43443bf0 - Points - Points - false - f252b117-8681-4b61-8bfc-8b075f66a674 - 1 - - - - - - 391 - 81 - 43 - 34 - - - 414 - 98.60001 - - - - - - - - Amount to move for each flow iteration. Small numbers may take a long time to compute - c21485e6-6f48-4e85-b81d-67459222cb7e - Fidelity - Fidelity - false - 0 - - - - - - 391 - 115 - 43 - 35 - - - 414 - 133 - - - - - - - - A limit to the number of flow iterations. Leave unset or to 0 for an unlimited set of iterations - f84837f1-2612-4042-9db2-37dcc24cc5ca - Steps - Steps - true - 0 - - - - - - 391 - 150 - 43 - 34 - - - 414 - 167.4 - - - - - - 1 - - - - - 1 - {0} - - - - - 0 - - - - - - - - - - - Whether to multithread the solution (this can speed up long calculations) - 9a59952a-a482-41ec-9986-dc761f1de006 - Thread - Thread - true - 0 - - - - - - 391 - 184 - 43 - 35 - - - 414 - 201.8 - - - - - - 1 - - - - - 1 - {0} - - - - - false - - - - - - - - - - - 2 - The points of each simulated flow path 'jump' - d723ac82-b99b-4f7c-b2cc-aa9620be1139 - Flow Points - Flow Points - false - 0 - - - - - - 464 - 47 - 65 - 86 - - - 496.5 - 90 - - - - - - - - 1 - A polyline linking each of the flow points into a path - 264044bc-026e-4db4-99af-fcfefe2cce7a - Flow Paths - Flow Paths - false - 0 - - - - - - 464 - 133 - 65 - 86 - - - 496.5 - 176 - - - - - - - - - - - - 57da07bd-ecab-415d-9d86-af36d7073abc - Number Slider - - - - - Numeric slider for single values - 61f885d8-8eae-49e7-b76e-70d2dcb052d2 - Number Slider - Flow Step Size - false - 0 - - - - - - -314 - 826 - 277 - 20 - - - -313.0092 - 826.5744 - - - - - - 3 - 1 - 1 - 100 - 0 - 0 - 25 + 3 + 1 + 1 + 100 + 0 + 0 + 25 @@ -5182,6 +4947,287 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org + + + 2d268bdc-ecaa-4cf7-815a-c8111d1798d1 + 7dc547b5-ca43-457d-a3e2-8286f0784ad0 + Flow Projection (Surface) + + + + + Construct flow paths over a surface + true + 6ffdd167-c62c-42c8-aa7e-825d1fbe1528 + Flow Projection (Surface) + Flow Projection (Surface) + + + + + + 389 + 50 + 142 + 176 + + + 449 + 138 + + + + + + Base landscape form (as a surface) for the flow calculation + 88f69dd1-d732-4517-9102-9636fe42003f + Surface + Surface + false + aa217cc7-63e5-48d4-80c3-f57085620894 + 1 + + + + + + 391 + 52 + 43 + 34 + + + 414 + 69.2 + + + + + + + + 1 + Start points for the flow paths. These should be above the surface (they will be projected on to it) + 10ba4d3a-8bbd-4332-b85a-63bd549978b8 + Points + Points + false + f252b117-8681-4b61-8bfc-8b075f66a674 + 1 + + + + + + 391 + 86 + 43 + 34 + + + 414 + 103.6 + + + + + + + + Amount to move for each flow iteration. Small numbers may take a long time to compute. If not specified or set to 0 a (hopefully) sensible step size will be calculated. + 9d9d3dcc-a81f-4501-bdfa-682c9d48771c + Fidelity + Fidelity + true + 0 + + + + + + 391 + 120 + 43 + 35 + + + 414 + 138 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + A limit to the number of flow iterations. Leave unset or to 0 for an unlimited set of iterations + 6aeea364-054c-485f-83d5-e3dff3c06a07 + Steps + Steps + true + 0 + + + + + + 391 + 155 + 43 + 34 + + + 414 + 172.4 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + Whether to multithread the solution (this can speed up long calculations) + 09f54888-8f0f-4b10-9520-93e3855dc8b0 + Thread + Thread + true + 0 + + + + + + 391 + 189 + 43 + 35 + + + 414 + 206.8 + + + + + + 1 + + + + + 1 + {0} + + + + + false + + + + + + + + + + + 2 + The points of each simulated flow path 'jump' + 50b88c42-696e-4fa6-a92f-176db55d44b3 + Flow Points + Flow Points + false + 0 + + + + + + 464 + 52 + 65 + 86 + + + 496.5 + 95 + + + + + + + + 1 + A polyline linking each of the flow points into a path + ba8bf58a-2582-4a32-b223-3dbb084c0e34 + Flow Paths + Flow Paths + false + 0 + + + + + + 464 + 138 + 65 + 86 + + + 496.5 + 181 + + + + + + + + + @@ -5189,7 +5235,7 @@ This definition is licensed under the terms of the GPL v3 https://opensource.org - iVBORw0KGgoAAAANSUhEUgAAAJYAAABkCAIAAADrOV6nAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADAISURBVHhe7X13dBvXne7+9c6ek5fN7iZZl7g3OY7jrOM4m2Rf2iaOs3mJHdtqFHunKFFUZQcIgOggUdh7AXsvYhGr2HvvHb2TlKhiVWveNxiIpkps0Sob+fE737nnzsXFzOB+91fuYDD4h218HUBs47HF5xJqtgqTWdvXqo30s6yduXT58sWt4/INQtNRp0znqUwrtn1uY4vYlvCxxwOQUBN5yHTxyqcEceH6lnmJIFQ9zco07raEXxn3KaFF1de2yti3kCFczhYvy6O2zFypUnxYlyVQmVZt+9zGFnF/Eup0yoU5dVuNprFU3VCCcquk3qUc6dPo9LZ9bmOLuD8JNWqoqDGvaswr98FVjcFE7mobXwn3KeFjALV5RW1Z+xJiGmm1tjc8bvg6S6jValVqtaqxTF2Rq6rMV1Xk66vzz9Rlr9TmqSoLyBYr1ZV56roC5fKiFh7lMcTXUEKdTqfX6w0Gg9Fk0uoNa5E+FsaPzgjfPRP17mjgTxgf/DbX+T8sgncsvJ9YuD9BaWT9uyn8E+XsDDrbdvFY4WsiITQzGo0olUrl3Nzc5OTk6Ojo8MhIf/9gS6iTOvoVZcJrxvRXq+lv7D1AC/P9b6JkB1HyJlH8Jsprua+pObtVc3PbEv4PgFIOsk1MTPT19bVb0d3dPTAwMDw8PDY+PjY2Mch0X43dsZ7+xvns7zfQfuBzjBnh+0ei8HWi8C2i4C2U1zJ36LnbEj5ywE/CYcLaOjs7IVt/f//09LRCoUAjXqJgWVkxW1aNEr9P418lcn9AFL/RxnzT3ut4sOtv1dIXTfGva2Q7NNGvnUl4ZZj2iXpbwkcGaIM8ZWRkpLW1taenZ3Z2FrLBFlHaelgTGZPJNDk11dzUUnZkz0r0K8vil5XSl2qD33D2DaR7/G498aX1pB3gasJr5xJemqBDwvltCR86NosHVwn/eZtyFNAHDralpeVUfcPo2OSiwOdy7EtE9g4i/7U2+ht/sfMOdvo/RPbLhPx1Iut1lFeTXtBzdqm2JXx4gCSQarN4arWaarH1uBVQuqGhAQ7WbFlBrFwU7rcInz0T99L55BcbAl/Z6XIozOXXRPoLRPqrRNqrKK/EP6eJ2Lkt4b0Cw3QbbS/cDVS2ggg3ODhIiadSqb5APMBsNqNnW1ubxWLBOk+r0fWzPNXs7y3xnlUJn6k59vIe98PBjv9JpD5LpLxMMvXlK7HP/P8lIRzXXUcQjRRs21ZQm5vblfOz+tkJg5WoKOdm1DevrKEPdk7JBktSGkwTi4quodHWvoGh6VmVacVw5pzGeiXlFlrWNEaTxroXxD+IXV9fjz2QO9TplGqtIcr3StTTRMYLRO4Lzcef3+t5jO76ayLpaSLxBZJJL1yRPaVhfXKHhGqN0XzLFZx7I3nF8dFeLNyahBjl5eVlVDDHMV4ABgsl2hGZ4N9QwSZeBahxxCZKWA/kQQ99fMg423eYf3REcGyU62eIOaFRq4wmM5RDn/n5+fHx8YHBwY6u7ras+IFE7kxerK5abqzLXWsqPtNcgrqmMlNTdZOVmdqqTGVfm0ZvgP1haVFVVYVzAMizJUdTN8r2PCd40hL5PUPkU9V+z+z1PBrm9Esi8Uki4TmSSc9dlTyhi9ipXFJqTRa8i4JaZ1C11arLMpVlOXfSWJV9pjoD5eZGVVmOpkqunJuG97Dt5ZFgaxJClcLCwrKysqKiory8PJS5ubmJiYm9vb0dHR2Y/kBpaWl2dnZGRkZNTU1TU9PJkyejoqKKi4uhv0mnbWP7B9AijzNijjOiQziJWf7OdRWlRSUl2G11dTUc4NDQ0Ozc3LJKvRYXoJBHKiozFWVp80VJid67JU5/GcuSqioyFouT5woS5goT58vSlXHBa/li7eo61hU4FmYSZgN1tpQjHY7wXOf929mopw2CJxqOvvihvc+BD95SML+j4zy1xHhyifnkhagn+o6+b+ho0E+PwZrV5DV3rdJo0ScxTKE/tAj/fYX/9i2M/PdTB94J/fC9+oPvrEnePiv6MUUz94croX9UjY9oLKuYUo+MW5MQo4OAhEyhsbERmiHqQKfm5uaZmZmlpSUICQ0AtKADFtfojHpXVxfeAudCUnK0OdC9IewA2Bjkucz3XZybW1xaxqoO2QqW51gn9PX3Dw4MNEb4DwwND83M949PdQ+PefkfcfU9WFpzanByZmx+CR5Vt3q2dXA0Lzm+QRBU19Ry+vRp6gypUwWsjlRnjPK9xP0OkQhf+nST/9N/3ucTsOfdK9LvXpE8fVXy9CVQ9J350A+0w/2GsX5jZ71+uEejUipX1tVpggvRO4jyN4iiN0mW3mT162kBv/irT3i03zsXcl81Ju9YSX3dkvr65dxXp0J+p2lv1s9N6aZGHhm3JCH51ZJubR00nD2vP3NOv7ZuPHvetH5eu7JmHdMzCFcgGkEMsX7trPEs2YI64pbStKKYmTRODBgnB60cUExPqHV6RFcqBKKkrpBNTU528Y6M9HROTc9g/Y7JERAQ4OPjAyvHdIHe6AbH2zs4fDItfiCOtazVU/7cdqZWkKFVoxtgeSwH//NC2HfU7G+XeT25z+fEiT3vEtHfJmRPkox58qrwX3Ssj5WLy6T1YBJAyO5G03DPGP+YRvg6UfAGkfPmtawfLIlfM8TuUEpe08a+nHr4p3u9ghMOvnMm7VU0GuNeN8TtuJj22mjAf2mbqg3jg4bh7kfGrUhoMCrGBg25UaYCmakg2lQYbc6XGvOijHliiqZ8iTE3SisXarIEoD47Up+DTZF1E40ktXlSTb5Mk0dSnSu15Et0Y/2GlVXkL5AQJVkxmQwmkz6RNtnTvqxUwbchQEI/e3t7rPagCyx+wQql3jhXX2rIFVOjfxsgISbdPNdzLfQfL/C+eU7wjXrf77773sfuv3/hWuQ3rgn+iaTwny6y/peG/oFqfoFKZ9QGowazSqWakYaZBK8SOTuIrO+D55N2XEgmeT795dRD7+7yCErze5u81pr7Bsm8Nz5Lf9nM+m/l1JR65Qx28si4FQlNK8quRoKxk+A5WLm3l+4jDWfH08IT6CAjOjgElfbCrOnm6snGqu7SnEZ5Un9lwWTjyfH6yomGO9haD1MbzE0cnppFCEQwg7XBkXYDXZ2VtAP11Sc7u7oRUE+dOgUJ9+7diwAM741NuHFIuKhQNhfnDifz9X9DQoVKbZId0QX+Rh/6ez3t9/Mnfl/h/F89B9/Thf1eF2qjNui3Jo6LYu6WbyqUplVNGv+84CUi82Vy+QhmvGZj7kvp/j/5q8vRaI8frie9cCH+lZXol88nvPJZygsLwb9T9/ciQ8bI4vi2fT1kbElCi7Kn5TrPiYjyJCl2a2P6s8MFIjoHFDP5/DCWkMauLcwbaKnvbaw7VZzXUFbYUVvV01jb01DT04CSIuo13Shbm5uFQYMFqSPTs2NjY3CYcJIQZglZr0IxJwsaaG2anp2bmpqCrgcOHHBxcUHoRdaKzBOd0T41vziAbFAeqTbf/e4pRF/F5KhqYkw1MQ5qJ8fX5sZMM2R9g+qJceXEiFqlRMJlextSaNOKKoW7zn2BSHuBSH6JZIq1BDOfSzvw9j5fmsztB/qo75minlfyntOLnr+e9Gz/kV/q6sqM/W2GwS5yb7c69oeE+5AQjHS/JnC5LnQFrwlcPxO6obzCdbpM0hEvXeW73Ny8Cy9xHAm2HZlBrK0jClLhECENa0OEuilJYMepmv7BISz14D89PT0dHR2RuG5kPciVxmfnuovly1mR5A0cfwNag1GLhaPRhBLUmcw6s0VvWTFYVo0r4JqVqxtunDoT7coZbRrvDPOZG0nPEgnPg9disQh5/kb88zdSnk4/8PafHA4neX6fkD9LJD9PJL9ApDx/PfYJU/gf4Eg1WCON9Bp7mtWkWUPFu5ESmNR4U/0W6j4nGdNB/edE1mZNR3GI+5MwypWIdPm8jHIhRM4E195GviMhcPp8807y0MdB236KTIusi0jYFrTp6Ozs6uyooh2oqT7Z0tFVU99QfrLazcv7rzt3pWXJ65tbausbKk7WtLS1Ty4s1ebLR1IEd3ek1iyJDK7WRAmbmBmLi4uzs7M40OjoKLw35gEmBBw46b3hv2+id2ikNuLY5ImnVOwnFhlPatjkCmSW9uQs/Uk1+7sy5x0fOh+NcX71avxTl6XPXJE9c0n2vSuS76pCfqcaHsIQw5Eae1t0U6NY9WqVy7dTAS7d5LJ2eVG7tGArF+e1S/NkuTBHcn5GuzCjm5/RIcudnSQ5M66bHtdNjWHn+skR/cTQV5VQ7Hld5F7DDirgsgrZ9BIeM58VVhhBr4riTFXIZ6pyJ8vlfTkJ3Vkx05U5JCuybZWbRJ/Rkswlmv1Mdf7I9By1IMFowpeS1zb0BmP08c7sxJ66yv66io7yQo+P/vTJr39eI08ZajjZW13WW1PWc7K0o6aiP55tlAtV5lUohExnQzDqQgFcLnTCzrGqQfhECZ2wibiLdqiIDvDHOCjSYDK4Li4iVyKhM87FR5ylP0nEPXFD9tRnsqeImKdQAYmE76R4//AjjyCR3YsG7rfVzH8zcZ6Yp333DP9fB/x/oW2oNI70IFE0N5WZ64sM/W0wx1vY22IYaEdp7AGb0YHsg8a+VrQb+k7frLQaBjvIV1FHZaCDLAc7SQ51kRzuga2DX13CKwJXIZ19IlwWRIsMY8qC6VEBoSJ+VGJHb19X/yCsp6TyZHVDY0dff2ffQEevtSTZT7V0DQzVt3c1Hd07XJQ2NDmNQcQRMPrkQgDmotFpSxLVyQxlKhtUp3FIpnNBZUqEKpUNoq7J4JnSWfrmcpwbAigWGxAGdgyp2tvbYUwwMkRZ7ByiILOlNKZkpiqk09Tr0Q5gEmyAnBMp7LUT37rM+99XuP90hfutm+W3roi+keTw/Ovvvif9+NtXJd+8xvvWVe63UH7K+kdd4K9U4+Mas0UNXzrWr58aVZsslMf7QhqR7d9BE0mEgI3KXWkwbU1CRU8LwXdCIkPxEt/1HM/tAt99neNylu18luOyxnJc5zif47qc57leFLhf4Lutc13uTo7LeY4zHKnBGgsxgrajWIEQQV4lMVm0oHlFZ1k1IGKtntGvrKGuNpqXNLqZpeWx6dnekXFMmo72dsgG80KkhGAKhQIyUFJRCmHTtut7g9Jg1uVKdYxdqoi96gi7W8ixmw7b03Jo5xzdTsO200SQRLuKtcfE91SOD2Fk4UhhQHCAWPaobhdsM/VYFv8tKnSGe+HWJNT0tqxEOM/y/RcEJBUCP6XwEEqD7OhaYvBqfBC4EhcI6qVHLXGBX0xTbACSGn17LXIHqxnYBhrmgqCFpBRebW5uHraFdeHwyAhMCiLBttrhEzs6unt6BgeH4Ann5xfgNiEVZVvYD3W+9wnl8pJqaVmNlekd1CmVFo0C5eZG9FQuLarVKurtcJJKrV5bFK+LD1EkMZVWKhIZVEWVjJKxnBCOkiLZkszUprHVKSxFEkOdFH4+g3VuE9fTmWfSmWtpzNU0xmrq59yahBasBkIP+rFTjrFij7PiAjmJh8IkqJQ3dQwtKHum5vtmFjtGpwrrmkobW7HZO73QPTmHirVOlhuVvpmF9pnlihDv7qzYjv5BCEPFqs1AI0IXAiTEg3khB0HEolzihmCobNXC7hEIrUiHtkrSg+j0yDuMAx3LptWLCSdKQ/wDQ3hsuoDLEIm4Mh4zkk3nYzHGpgtzM3MmhgeGertH+nu720431pwsL8xvbawfHx5qbajvP/qxIeQjQ8gnptCdK7Td6+F7PmXZXePYk0miyIVMIVGiviUJtT1Nc8F2NSG+DaFWhh1AWRfk3Sc8PhlHH4sJG4+hjUWHDUuCx2Np2PxC0kaiaZqwvcrGMoXeRF0wAyAPJIElQRsyWN0atzYs9e8ZCAFIPfQzE8sG87lU2umw/cn0sEx6aCY9RM6goQQzaCHpYcGVUt5IaeZAYdpAYXpffkpvXnJTsrhTHj9UktUlj18OdzrDdlqNcDKzHA0MBy3dXhFmtxCyZzZ493zIHhVtnyXC6bLQbQsSYlyVSHb728wDp00DrVaeNg+0mgdbDb0t2u4mXc8GmzfVv4iavlbl/Kz2a/eDCmN3I8plnYF0dEJ7crlFkVx9bdSdCSEWXfs+X2KBsCq+g3XTkZB43aQ3SamVqER5XhK4rbKd1HR7aLkVKwQQZhARHyit+j3S70gfLuBFZyawBtAYzZBwLTX8MtfhU6HHJSs/FbijDl7guSLX2yBSP7KDyPNSpNdlgZtNKvHG+vsO4iVIS3XbmoTb+DJYvWgnVt9IOFU6gyUpNIMZHsGN4bLFPLZExI/hRIhZjMiSwpKxkaHBvl5weKC/taW5rLiovKSkrq6upbpy9PhOC8sBpkaKJPa6Xb/buC3hA4ZOj1xUo1SQq1s40uSwstDD8XRGcjg9mU5PZZCVuODgqgTp8MmC/rJckuW5PcXyjvy0FnlSQ1ZSlzwOMU/HsJ8N3jMfvOeS0J0U8jbZNnNbwgcMpYKU0HqBgnKkBH8fmTpuZqQrltefcRxucEl+Zi3J4Ic1N0VoZuUax3nyxM5VtvMXqbgt4QOFVqtYMva2kMt2q4SrkBAZCkLXnbxNibtS4n09ynM6YOdKhFXX216luC3hA4ZWZ+xsIO+o0xtIK0xj3OC6Xuf7XBf4oCQikYC4E2JvW8tG422qbKbY6zOxF1Q8x3Ol0tGNdhu3JXywUOsN+qlRY2e9VrGsMFpMyXRjxM9N4l+uSH61GvurzsBfMXb/pdLvN6sxv1yT/mpN8iuz+D9XOH8hpAcJiQ+p0AbFFK0iSbyvRnpMndh5ReRORHkQKLEcFMAbOxO8LS3tt3GPMBixrkBEtPS399M8jdGvEoU7dPGvGFJezD7xlt1hDsv759q45xTRLy/LXj6b8dIY4z8uHPmACP+EiNhLhO8kGLs2cSfZAjJ3nQ/5aNr3Dzc2XmLuJph7CNZW14XbuEfoDdZ7L3QLUcfPRb1IZL96JfnVK5kvFR/7oZ1PiMjzp5fTXvg08ZVLSa9eTXtRy/7P6wxHIvgvBNuOtDCYl9DKSA8iElboTUTDLn0Ime8a23UxZB8h2/+5sUp9tiV8aNBqNQbznCxIE/70evSz52XPf5r4TN6B1/Z6Bwtcf3Ih9umzkucuRj9PJH9PGf6zq5EHSaloHxECF1IYa6g7z3VY5ezV0XeNHf6rgbF7jbN3nb9vNujD0WN/vYYOyG7EXhd527Hw4UGLxMY8KDo+H/gtPeeftRH/ahH+U6bX87+2OxS081Wz4Jtq1r8YOf9KxH9rLPBHF/lWw4p0J8L+Sul3VeClE/3sQuGOZP+fvfeRW4rf2xfzf3Ax882LmW/Mh70/G2inCbe/JHK/wN2+OvPwgPWFzmhKDLMEvrnKeGuN8aNV9lttvm8f/N0vipx+jDrZwviRMewHq/T3CPF+UjmoiPQEtij2vibcvyb5KVHxSvKRX3gHReUG/oK84bHgB59lv7bO+8tnkgM6hsNC6N7R4/u2JXxooJb2WFTw3T8T+ZIU+hJiXyIGAWy/rUXke110gIjysa0TSBV9CCzz6R9fCHdcZv/408znor1/vG9/WKrfOxdSX1yJeeV84osK2h8IAfJSV/ACy3VbwoeGzUv7DYXuhVaPuhpqNxb65mrMkzKPH/3J7mCsxxtGyfcW2M+uRz8zFvDbGywHMn2N2Hue7rAt4UPDV5YQFHtdF+1f4/yQyPy3OM+33t97MNH9NSLje0Tic9djnlhj/pGQ+pFKg9L92xI+NNyXhJ5XBT5mxqtEyjeE9i+/9Sd3qeNzRPI/E9Hfvib5ppn+O0IC93uz87aEDwuUhPGBBPMTgmO/NXLtP+M4Go//xBj8Uq3D9wN/83a94+vmkNfMAa/pj718NuR98lL4RudtCR8e1Fqdoq1WU5evqS/aKrUky1R1FZam8gutJeamctRVdeXqUxXahpLNPbclfMgwWcgfcN/24/IHym0JH3tsS/jYY1vCxx6PWkLyflmDcTNtL2zjq2LLEupvfSIHdWMudYcuBaqdAnWr9QbQWzk/p5saNk4PG6ZHDFPDqulxNfnImL/3u3v/nrE1CTHcc3NzBoPBZDKhNFp/iITS+rNchdL66Bls4lXyl546HTpDOVTwXvJObfOqviB6iuHeyznSzzk8wD6kFR7QLi2srK6ZzWbskJR5G1vEFiSESU1PTyclJZWWlsrl8szMzPz8/Li4OJQNDQ319fXl5eW5ubnp6ekZGRmpqaloiYmJwWZycnJCQkJVVZXpzPpECi8imHEsIuFwmJgemZXs61BTmFteWdXc3DwxMbGwsEDNiW0t7x1bkBDDCjvrHxjs7etvbWsfGh5uOX26rb0DLWPj5C8tUeno7Kqtq2s+fbqru2dmdm56drapuaWismpoZKSvf0CzehZWOBTs2M7w62QcbKf5KLg+i5PjoxOTtbW1mAHd3d0dHR2Dg4MwWQhpO/D/FKwOZKvEu2xvf1TYgoQ2WH/9rUNEtH1CsmLQagwalVGrMeu1FoPODCJrIVvUqJh0eFWt16jUSoVifFg/0GocbANNg23Lw71KlQoeGY50amqqvb0dhjg2Nnb69OmhoSHYvd76K8jNJDOgRzJM5KPZlYpbfmC9QZWC/ER3/Agb/REubO9/VNiKhEazor/jjOTQudjjtzDumEp6fF4auCgNXJAGzksCFmVBC9IA1NEyLzmhiA1RJ9AUscGKmGBlIl1J/rSO/C2dIpFxLvaYvu+0Ye0s5T+hHzzq0tISFB0YGDjd2jY/PmKcHDRNDa3OjZmRAY33qyZHYKMPXUXTiqqtRic8MCM+MXcr563lEMtngncIH3ajfVZ8QiM8oG4sVT/aPy/aioQmi7K7mbxFh7w5x8VGkQvBd4ihMwIY0WEMcXhEdDhLFkqPYnJiGRHRoeEScXTq0NhYbUNjSUVlxcmawdGx/uERcGB0rH1gpP7YvsG8pIHxKURZWLXFYoE8ra2t/f39MM1FtaaXe3iE6dPFPFDlt6sl2H2Id0TL91FNTzzs1QgyL3N9XgvzaGpGeXZaIZiTXpRtZWFOhZAdZb/7Ew8nF3lqYU5GMV5CmZZZUR8RZK5KJ5+H+AixRQlvf+IFyRuR7i0M/6LwwLLwE+WMgAomVSHLUvqJk+ygMbmsL1kwlC4ezpCMZklvUjaYIVGEO87XFo3Nzvf09LS1tY2MjCAvhQkODw+3tbcjuDZF+MdKUg4FsHba2bl6H07JPTXB87fMT+hNZttZPWjAHyCdJn94XJdXxwnJLGzJza/Ly6/LlFfKc05mZVflF9SzObIDfgc9vX0l0gyJLEMqy4gSpyZlVKazmPOlqeTjzB4htibhzd/aexBidytRsVLiSoidiSgnQuRIMnITscm1I3j7rLQj6+TmBu017XXUQ0tgfzA+RMHx8XFyZWI2K1TqgajAjJi0I8fpBw7sd3P3iU8urgz2Getonl9ahtiA7dweEHDc2dlZnENDa3ttDDch6Lg8v0Eur8zJORkdnREZmSyVpovFqcHBbB8fb29v39TU4szM8szMsoyM0rSc2lI2XVuVrnmEVgjXtTUJ1T0tZ9lOKt5+rcAX1PD3a3g+OtT5vmqej150wCL1N0u+hBaJvynKzxjlZ5EducZ1NHaSz52h9FhZWcE5IZFBaopyem5+VBoSx5f5Hgxwc3NxcvKQxeWXBnr31lc3nSYf4wWxYTG207tvQL/e3l7kxsinlnRGU0NBLSswKas6IwMKlWVlVVDMz69jMiM9PT3c3DzT08uys6ugMcrk7NpaLm2tTq4/c476OAD2aattBWQedxPwCgCGhQJ1qlh/Y8YDWCNsTUJLT0Nt6EE/VmJgRNwJZkwIN/E4Q3aCEY3yGF1aXNcyNLfYPT7dMzHTM/45yZaNzYmZvqm5iqbWvKq6wqaOylDvHnlcZ/9QZ2cnfCn5zJ7eXiwqIGFjYyPWJ/KjbnR6pKPX8d/88Y//92MHXnR+d/h+9cSgSqtD+MRw442IoPjYGCxqvKiPvfkD3wvwLqTENTU11E5gSaSEzIC49EqY2mbK5VU0msDDw93JyZXNjhaLUwSCeC43Jim9IjE0pCs1qn9sAu4EoJ5SRdUBfK6NxxRRFbyKcqORKjEIaKcq1kcOkM8cuCvQB9iahPre5lm6a3l4wMnwY2A143gN8wRVqaQd6Y5mTGaJx9NF4+mRX8yxdNFYmqg3gatkOi/Vl86rdchFgXkr5ubm4M3m5udnFhXLsoCeYNcKf4ekPb8u9t1ZfNi15dAnfS0NXb19OHt8+MzMzNLSUuphGNRTFSYmJmasz3JbXl7GPIWQUJSc25tk3oB1opPAPEAwhlkjEpMzYOWMpamojnE8JrUiObkQTEkpApOTi7KyKsPC+Pv3+7i4uEsk6TExclAmy4hNLs0KC5opiJ9eVmJ6UcC0sNWmsUiexYkBqKPEJgV8XupTA9Q4LFpBPsFoiXogHQkYHIBPZL0kSYKapluT0BoLHa0/FXclKd5EiRv59C6+wz1R4EhS6EjGwrZaTHnqbCiQjoOC3qAeGzD1Na8Ota2P96yNdGIOnS7KXpyft6ys2Lro9RUVFXB9+Pzks02sz7HdmM7Wp5uQoOYs2ilrQLfR0VG8C2+hnsiHQayqqoL3xn7I8VWqlyqzcoP8OVEZUVEpIAKhUJhIhcNjx8L37bPbs2dffHwuRE1MzIfGsuTSSkbQen2OYf2C9QrjVwE1ye4EZttGZTPQsjUJb8tIPxO5XRO6XRW6XRO5U+UVvsslrjPFK3xXvHp5U8sddCJ4Dvqbj9GDHrYDbQL5BLxNP8zXW1aVWn1jUxOmJz4AOqCEBk1NTTAj7IT6VNRHxSYmBOYspjAmNaUNOkM2iAd7hZDQDIpCddQLCgpaWlqgMen9Rif6smNjjxxk8ZMiIqRstozLjWWxpCyWhMeL8/U9gdjs4OCMFrhQgSABHTii1MSgEyPZ0WOz5NWJDeBA1LE2KjgoVQfI/5aytqDEmVAVqr4BbKIdJ4bzxOZGHcCk/KoSij1viNwymTQuSxTNl4qYAik3SsjgJ0tjhzpOj3S1j3Z3dDWeOlmY23yyYqynY7izdbizjSpHulBB2d7Tdror2Hm8NGtkhvyjLAwxxhpCQgCMvu2gdwAvQT9ESngY6ERdWK+vr4dHuuskADYbN94O4I23YXV1FcOBEUdKRZ7A2vqZlpLy0COcuBJxbL44Ni8qJs9ayY9NKfM/wd7r7PyHP38czklg8BLZwlQ6O44uzIgOoCSchzAUsEOqQqlFVSCJVT4S1HyigE10QAUl2jeA0IDxQUlV4DMowCGjvB8JXfPDgyXh7AQWR0YLx0peRmOk8Li91SV9NWX9teWtxTn1uWmd5QXY7K0u7asupUoba8raq0oGQhzHy+RDk9OYUJj7lNNDhMOJUtrcVRWMOKUiwgZlcBiU1tZWhDFbj60DO8EItre3w5thE8tzc31B22G7+JCwtNDgzcyi0yR++z1+++7BP/0mkxaWSQ/LCAtBJTGM3nzY/kxNlm5TRnrX6bIZ1JSisNFyW/vfAjUjv6qEFCNdrT8ed7Y9iQil0JngOtzg2IO2H49bN8kHqVDlzQrZCPJtjnTj7BGxMbmgIpILiEqJBBuyncNNoDOsECqiMzXoyE6p5IXqsFXgjdghFiq2SWMwKQY6yUdVF8huo6FAZi6KWSlNWC1NuK3dlCdW9p4mr+VSgBs3k/+kcRea11Tm1QfC+5LwisjjrMBrXeh5TuhFcV3geZbvYa2j8U56XYj0vhjlQ9XPCjxvcB1MXfXUQoqaVpTHo2SD36AeaAibQ4vtNG4C/WGpWIbDguEG0Q0R4s5um5+u9TdplQ3v/dwhW39prTJv7eYz9Ccfa2jNGLFP5fKStibHWJ5kKE82Vaau1cpXa7KMFSnUpr46W3dSfu/UV8uNm2hAWZNtqsm+DwkjXSoigk+wYnjCRDhRNi8ughtLZ0nzCsvHJicHhkc2s39oZGh0rKWtveJkdUNzC+pk4+RMDS+wJzthYGwSIRoxAOkGTIGSEApZLdMAdw+dIA/a0Wg7GSvQgg6QECaL+AGjvM2XQmPl4oJuaU63SNKgWDCplvXL89QmRe3iHMYanXFQWD+mAmXW9wnySd+zEwqmaxWHfiqSU8YMZu3+A2/fn2v4zFNiQSM78LOIvVa3ZEdEfEKwPiF4ewkh0nU7sh6x8yY/Idi7bd6LbXcpfOel8F0bvMLcc5H2yf1YoXs361ASnZ7FoGVYHyqWGR6WFhZcHSMcKZMPFKVTHCpKHylOHy5GmTFUlNabk9iVFTeGFKYkY7g8Z5jtO1WZMzG/BAGQa8FzYiWLcIjMAiYIx4hhpeSExhASJoJN2/ncBFrgbzH6WVlZsFpKezQazCuamQmj2H9CcGQ66sSMOGCQ5dsW5DTKOzQlOj4pOgpOCI/NcffrskUqPXmbAfYDX4q323Z9H4CEhrmJUd7hRHltXlm7QCZ38fZ18PDhSTLjMk7GxGVrGI6E1EPN9z0VxWmT8QuD/STOH+Qc9+qIEbRKuRSbpfxOQQgh9iBkHpOCYxlJ2YUp8gIryzIL6IePuHz85/uR0AsqkoGQioIbFFjvFacmDtfhWoTdJZbdZbb95Yh9FC9F2F0I332OtvMcfRfmoKWnybh+AdZDLotMJggA5WCOMDsqHGLFBj3QAQYKhaAufOyd5oj3QuDU1FS8C30wIcanZua6W5pp+xNTS+Ni5akpRQd8D3/80YeBAeGFhafkWeVgZk51riRGk0gjH3+qIR9hCl+KI2KHtl3fM6izwqniTFAazRbT4swE71BCUmFeXq1IlOju7u7m5o5KfGJBrDSZlFDi2s8/EZffkl/RdeA4Y5+7u7PP0bj0SlFsnjAmRxiTK04ulURntPl9MH3sL2lB/rK0ypiEPHF0VpQsMy6p6IB/oJfvln4Wc2c686WMdGngh/H4sUKWEBTzJMkxqaHHgj98//du+/b+8f33GX/9zXRVHrJwpKCQDas3uD6MIwQDMI5oh2wwTQwrWjAyyBuxeqOyGIya7dysQAtst7q6GvvB3kh3XV+VH+ibnlMrlaUnJOT5Hw7wO3QwKDiisqqjoLC+sKihoLSlMC5Fk8ygJMQeqIs+OJBtp18GyIZ34VRxUMQCzB6cMM6w5XTr6ZNlmf6uPFGyKDIpLIxv/Z8Gu7i4nMyc2jRpwjXy+VzuY4Ljydk1JSXNR4+GeHl5+Poegd4ZGWXp6SXktdns6ozo5BWWwwWufQPreFJWdXp6KV5CKZdXHT0ajLdsSULr/1Qwd5EXaO6RvL2naId4YVxREC0yJDwymJ7AEQV6eL3/7lt73vv1ez97h/n+O9OVOcNTs9QqFVJRgsGGIBLkxIIdysG8YFsYXOSryFywfKS6wS5vExKbWGBARXhmvdmyvjgxKTiaknmyqKi+uLgxMDAsLCzEz+9EampxUlJ+XFx2YkpxmiR+Ko5OXkMgUxAdQm9zc/OXSoiDog/0oyYZbLehoQEVOA8IiZNfWFpWjA/1MH3F0szk5CImU2xvv2/37j0MRpQ0Jlsmip0J2mti7qkOO8iXZmF6+fkd9/b29PDwRefo6Izo6EyZLCMmPjcuKm4+ePc1kXMfPyAuvSorq8L63Uh5bm7t4cMBdna7tyChFnn2SJ8pg2PJFt4rc4SGTJ46naPJ4GkyyEdpo24lV5nKVqVxVjIidMM9hpU1W/Sy3sSG/BPGRE1nOFIs+a02Sf4xGiY3giK6QVqMNdaC6Eblq9R7cZ6oowWB81RjU0tJnvy4T0xioVCYgBE5ejTQ09P90KHAxMT8+PhcjBTGKEEUMxJNI+/wsN4LiVkCPayf+O7AUTBR4O1xbnV1dcihcEqYTDgBtFO6Yiro8IEWpobZfnxxZlxySQg9ys7J+ePddoGhIoFEzuPFdR/5ZDn447wTPjxxhkyW6eV1yNXV2d19P+QUiZLgbyMjk8SyLJkgeuDIR+NH/px0zDcyOgcfhMOJ5nBkkZEp0NvNzXkrVgjodAqjRWEw3ztVRjM8sHqD1s2bXFGh5Y6HWWKMqKCCOuY4leDAMa6srGCYMM0hD9qhIoZsfHwcBoo+qMA6N6IROsMKVUPdzfSDienlGRmk58Fn3r1757FjYUVFjXJ5JVqycuuyJbHaZIbK6khxRAw+demHmhCbQYkHjXE+MHRqtYOWjdmzGUhn9PNTU+z9UXR2HE/MD6bvfO83O9/7rYzJi+FLk+i0GyJ3IsZzhHs4Mq4gM7PCw+Ogk5ODs7NXIiJlbLaVcllcfjxfcl3oRkjcWlhHJQlFmHkUU1KKPT0P2Nvv3aKEjxyUJAiElI9FBY4Ug0htQlfK06IdrhiNAOwSZgGTnVlYwvL8NMMvKjobfgmW5+vrDyv09w/KyalJSysBUzMrMyNlqiRbLKSO2GS9BrtZFeiKo2CKQLza2locAo0Q707lNgAJl2enPxX7XOY6XuI5Xxa4XuK5XBGQF40/5TlfFbiSuYLYrYvlz5TlxyaXOXv627u6fLDTkS1MDWXKguji4HBJGDs+nClW0u0JqVtbxFFBdA5CKdSNiZHD37q6+uzb93cvIQWMIISER6UMDhKura1hAQA7gJCIPYiaMDuMMpXNIuWBon2Dw/2nKrOPefGi0thsGbwTpi08j59fAOyP+gopObUsTSiBhNZLKlCEvCwOkajjYhPHpQ5N/dMfMh00QjyqwxeAkvAS+SgLd9tz86hH/G5+jJ7EY4LlEx0ekcEVhHt52P/u54FO9pk8YWoEJzWCjTKJzcuhBV6DFUa6ZgUcDOMksFhSGj2SRhOx2TEwWWeXx+oBXmR8sX4vAUcKO8BYwyLh8ajlB5IdKIfEB+0YdFjnytlz55Ymxzj+0rgC69fuVW5u3r6+PpAQjispqQBMSC5J5Uepk5k6kwUOGDvEnIBOmCIwRySZ2DlCIxaLsGxKUdvZfBluWuF+8mkyGyn6XehBCJxvYCWGbqSuHjfIzc9JPtmClNytkX4omJvC5ieRFCQJojJ27XP7+S9/+ThJSAEqYnCRcFLrP0gI+4NZwCghIVIM+DoABtrdNwArzDnmGSnLRkLI5cZ6evrC8yDqIN5ER2dJpRmyuNxEbuR8HG12cRlpcEVFRUlJCSrYOXWLOoyeup5w7+JRuGcJbxrl3+LNPut8jxmm5xzLi+IC23ssxLHT78PHT0IKEBJGiRQGRoNRhqLUAoNyp3iJ/I5QoVrubz8Vuj8qOkcqTUfWByv86KMPnZ29OZwYkEYTcvnxURxx6mGX7Nw8OTKcykpMAlghnDPCIY6CfWJvtqNuBVuQ8B4JOSUet1DmRcQ+5k+8wBADsD/YDYSE8UEAKpeB6Swq1dqRnjb6ASY3ITIqJTpavm8fsnZXT89DSOesN0xky+Ly4lg8OFLjyhpcL+SnDA6GDrdpO8xXwoOX8G/xsZaQAsaa0hJpDnIZWCSZy/T19fQP9tdVpB72CGDFBdKiwlgx+1x8Pty1y87ZNyapRCTLBgUx+RKmQHkznbHt8UFgW8KvCCrlgRmRklrWLDOjUyGO8cHB6XS6nMkM2PXB7p9+n+G8L4vBSAkNAZPCwnKP+hjiQzbWhQ8KlISXISH5faqrlS62Uuhk/Q7VgbwdHokMz/HmJWUrSYd584m/98KvmYS3QK9XzM3oi+P1+VJdgQw0FceZSxJQ6m626PJlhjyxur5YpaP+LvKBARJq5qa0At98Fi2XzcznMAt5EXlsRj6HVRsbNVdXPF6R05wisf43TOZMTeF0deFMTdFoRe4C23OdQ/572T3yay0hoNWp7vhi9g6ukdeMHjQgoW5+ao7rG04XhtJFIWECLNJDacKQUGFMXFpvX19rW3tJWVlFZVVFVVVndw9yaJQNbR3NIe6q0F2qMLt75Nddwv85QELF7PSFKB/yn/747uf47us8N7Lku5/hup7luaFyUeR1Qeh5XuhJbvLcyJLrSnpRme1PDr6EMh8ievsZbA8Nt8RC8rZb8grL5xQ6kzcWIRCStxdtCoRce+t/o1n/mIJ6UB75rLxNxKbY63qkx6cCtzMcZwNz+0mIDw1ULFTxD6SwWMkcbgKDmcrhpXK4qVxeCpuTxuWfykppK5K3FsknmmvGGqo2OHG6visrVhGyy8JyNDMdjQwHfbi9lr5PRbNbDt27GLJ3IYT8FxmUyjA7A2NbwocGSKidn1rk+fLC2Bw6LyI0gkPn8hgCXjifQ+Ny6by89PS6ipKmmqrulsau5oYN9nS01WUmzgV8rGfYQyEj08HMclyNcDrLcT7Pc7kkcLsu8iATUco6UW5L+JBAOdJPxT5XrF9TkN9RCFwv813JUuB2ie9yiedCVnguFzlOF7nOG7zAcboucCHj3IbnJEldIge/cF24jccUNgm38RjjH/7h/wF9dj+0x66w7gAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAAJYAAABkCAIAAADrOV6nAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACmuSURBVHhe7X33VxxJlu7+Qe+n9354+86e83Zm9+yZmZ23PbPt5KXGCCGHAFG4cpSjvPfeF94IJCQQIAmEE94jCV8GCiPTaqeW4X1ZUVQDsmjU02KX79yTJyoyMjPifvfeuJEiQ/+wj/8K2NjHnsUvFAb3sQexT+Gexz6Fex77FO557FO457FP4Z7HPoV7HvsU7nnsU7jnsU/hnsc+hXse+xTueexTuOexT+Gexz6Fex77FO557FO457GdwqXlbRIKxVvt4xPGNgqXRnuXxyiJjvWGxwYW5uf2Wfz0sY3C2yZFm14KuaGTTmoZ4dE+yhf38WljG4X+ihvukiaIpaSlRSuJjvTsU/jpYxuFZWWNgcAViNN/7ZZWvDx6Z5/CTx/bKNRoXDqdW6Gwaoyl5SJeaKh7n8JPH9sodLsvOZ1VDkelyVF7VSFYHtn3wj2AbRR6vfUOR7XTWW2017SoiqP7gXQvYBuFTmeNzVYB0VmrrisF+xT+vbAYjCwFo6vB5ZUtgp/R+Pm3YhuFNlul2VwKUZvKmxR8rA73Kfx7IBxZHBsK3b622H5t8XYjjqt9tx4MtIUGuxbjLd6GbRSazWVGYwCi0JVeV/AeTA2GYRpbAUZhGkvvIWgGy9rHe2Axuhaqc93zKu9eKb1b759uKPWzs1Tph8dsonAo+M63K9soFAi0xcU6NlsmkjvsrMK+prqJe/cjkUgodpfFxcXgaF90sGN5hwx1Ppjoh6CwtX5xYiQYCpPHfArAKBIIbwEGuBVL74d46y2I324T8SdtIt6J12J5da7WNdFzO7j+eBEhdGWNySs+nJTapOGtREK7o1Cr9apUTohE5a4VsWd7bt0ZGOro6FhYWFiKRoPzczNWQYuSf0MrTshNnaRVI7JlJtkzk2/qpG0G+S297KZeflvGXKq2hFfX4+N7FxJKIQraFciFQFx5MfWR4cHs0Pn5+fm5ubnZ2dmZmZnp6en79+/fu3fv7t27k5OTExMT4+PjY2Njo6OjIyMjw8PDQ0NDgzEMDAz0x9DX19cbw51NdHd392yClLu6ulDo7OzEEWUUyCkUSJlUbgVqcCuqWV9/k1HaWlfd2d1z+/ZtXFVUVJScnNyi4UV3S6FKVyJTeSA8hfeypGh9oj+6/mBqaurWrVvjE5PgcMQuMzvrXKVNrpJGd2mTp/S6r7wFNSfSzhxNPqXQB3SWCq2lQm+vNendHRbp+OQU9LIV0BQATRGghqgPiiM10F1CiQD0iGNClQltAkSbUAGlhU1AL6+CnEIzcgm5nNwNtyWPAEgfSCfRK1ALgkEzNACAchAP+gHYAQCDgFkAxD5whK0kANNJAJb0WsRJiFJeOHqzcXp+gdy5qIhz6PBhULgSCe+OQqtAbOTwIUoW/yYvm6QzsG50AiO+c/tWhaDQZq/y+S57vXUqlV2rdatUDqnUnJ5+Ji0tXaNxmUyYSn0mS5lVY71lEg+PjRPtJAA1QUc4EkBl0BdqErpLaBBH4h84vqrNhEKJKok2iRITWsPwSBAjrkk8FYg77+sQb7EJcuFWkBu+FkShH4Lo6kKde7j16tTMLMaFQdFyc//4xz+26gS7pjDY4A82BGLiD18rWbg3iWQJjdA/BNLw3Ey7lo981eWudblq7PZKu73C6azS6bypqWlJSamoCQQa/P7LnkCDR2dduuRYffR4eXk5rp5NQDXxUgxEWYnCmxBX4RYQxW0FGdLfjvjtPpR7clX8Flt6RTzvNViKzta6+pvqRyYmYcqw2hwa7cuvvrqu4uyeQuSf0TUiiyhvTUbC4aWFuSGLWK/32eyVWDvGKKx0OqtBIVwwOTmFz1fDKUUivUbr0StMzbri0fEJeAZGFb/JbwGiR6JWouK41jeBGqJxNIb7wo/h0HBueDk8Hq6PGJAIFQgkZI4kIZ1E5h3BHEhEb1LAEQ2omB4rJMoAzvYPjzSbZDcu13bf6a2vr79+/frFnJzPv/iiSVW0awpjw3yD0UWjq+HgiFWi1XqstgqrtdyCaGktB4sajfvUqfSkpBSZzAqCEV11hoBBqut1KEYnJtva2qAI3C3+wPcGUX0CpG8EpHtAvG9bgErSBneAfW/lI0EGmCA0gAOi0Ji24yBqRSWZNROTZSLUb43qiWAO4EEATHZHPCcggyKIDymBlbX5OnfH1br+ibv9o+MDYxOnMjL/77/94aqCvboU2R2FCMRknPBlYnRkxqJMb2hobLCvTszg8NRCoV4kMuAoEGiKi7VFRfJjx44fPnxEobCbTCUGg19vLDWK1YvVltWHj9BDZF8JzRKQnidAukKGSvwAgCKgEUxy0A7UBGWR7pEckrhFvG8DAwmfSFBCbBxI8IE2aIlLcCEGiPuQiQePwLPwXPQBnUH3XmscAGU1MZBREJAhJEDGsivE1oXOfouwu8xxp9TWX+mSn/sm8z9+32/kLWFhuCsKSZ5GjA5DBYXQFIABY8T3x0caZWyB0CCRWiAyuU0iMUtlFi5XnZJ68uixE4V0MY+nFhTririq4iJpg4p3p4+y9JqamtudXT1DI539g5DugSFIR98Ajl39gwnBqc3yUBdOxWW4exAygsvvDI/2joz1jY73j00MjE8NTd4dnro/em967P7sxMz81NzCvYXgdDA8G16ai0QXllco1ayuh9cehNceRtZ/EfxEZWgVsh5cgWDWoCaO30xWH8xPjYe7W4PdN4I9N3BcG+56NNYTGund9duZuLFtIm5yBMvLq+HFQQOPV6SQiIwSoV4s1EtEBpnExOeq/t+///n3//w7FFApot4P6CV07l2/ej4cgWOBv3vDA8Hm6nBrTQjSQkm4tTZ8ozZyozbYUr3QVLlwvWrxehXqIzcuRW7WoXGktfZBV+NaTFYhnY0rnY3RjmsJWb59lchSewMkAmm7AgnfurzH5GZ9pKNxsa1hrrV+/gYlkY6m5c7GUG/brimM170W4fDiwvxiqW7IJBiyiLbKsFXcJiu4raCjgHwHNYMW8biRG74aCC5FERLhWGsD7ePiLBmDoy/imXjFVqHEwOUbOHw9hx/QqEdarww3Xxlpaei4VNZS6m4t94zdbOqqKx8Vnl1RnF9WZKyoLqxrsh7rL/5gyn1mzX9pL4Q8txX8bMnf64LhPLfm/2DImbzkvdfWdO9mw0x7o56eVXjiq0GTACv73QXSeN2bAZdaCr1GVpYikK01kRDaBuG9mLcGRsfXR7rGlflaDt/ME1j4xTahyMwXQExcfkCl7Lta3XulCtJZW3qj3NPkt/c3Xmqv8k8ocqL63LCWtqjOmVddnFFk3ZNl3pVlTsuzghramqngRyf7hZf7wsN96ir6reRnd9EzN+e5B0L1hOpPQjxcVOIs5OdY45+cbPT5BweE9b2dku/szB/szKg+b7i3e355dTYYng8vFQmEx1PTmtS7fzsTr3sLcDusNKjjO4VqhmiMPOLu7Hywv+OlvWDDw9jwMKmjmxSYG076hr3guZn2AmLJ3bDmbdjyUfMUFmot2PBSKtiqlGceDlTwyMJY1ufNqS5SdCqylvR5qHzp5UFTW5X7cYXwBFZexnqCjoEVkPHExnxooa8ZC6KG/IguN6ShLahz5pQwuGz0DdZ2X555X5YJ4yNHUkA9CjBKFGbkmXd4Z5qvXsGCo6OjA8kXm81OSvqgF2zxuo8HpHlIR0NYj/S1rxjyp4yce0bO/djxnoFz38QJe8QRrzTileAYdAnn7fyQWwz5zllENAUb36FKyM+UNilVovDIQofKJqUXZpXZj60MVP7tRMbuz8HTqT7EqIK7gCcMIazNXVDlgJ77MQ4g4GBWkY0ggcAACkHkqrHggbkQHfvWyoCTfe9gwcLgf9SdYzcnfhlz3NhAPNzvrPTRzrbZxSBZmXA4nAMHDsResP2mFCLhxhoAKe7S2oP1gVtXRYwLLC2NpchjK+k8XXahlCM23Orp7egfau8dwPFy843yuiveypr6G+3NItqsLAPcYPxQ5Vb97hDoAv4HvawY8+GU0GyMSKpmR8s3CawkQRgUCl3jDvAqsAVngg/htjGPyUZ/Iro8MAR6wA1axpj4JUiQyIm7oR4doOSVx70qz1xF31oLB9pap6ZnyDoHS/s/fOALto8KRFGsizEXhpHZ97XDQgfVzBENa4swZx3COaeIyLxLvOCWoGbWXvzYzv7OzkKEnBBn4EJQsmPYrwpRJcz/rvQCPAPcv/YqqHUbYVCfjQFWQloa/BhUETtYUF3EczHdIk6CKnLJJknvy837CKYGzBerhrzu1qah0TGswbCio9FoX375VZOa+9tTiLAOm0IgXehtf4650Fu0Q166WC+dzJcuJnWMyYaLBXnmpmIOVAZzhh8gTEHjOwb/WiG6hkdOSjIwLeGqDR+PaB+3QkCDh60kCIt5GPjG/UHYuqkQvgWnJO3BFvT72kj+sQRPeWChT8szezinWhuv9tzpu3LlSnNz88WLFz///IvGD3lH+lGRoDCyur7Y2/7ClkclL076Swed4i/A33AzqTKpdFNTxasCIuFMyAugdOJVr0wnMXVvCn6SFBFeiAmyq+gUXAohEWFwMx7+QtgTOxM3jGcosdTxY/nW+wh6i8kVYYaaL230W9cbe8ameqkXF5MpZzP+8Xf/2qAsWl36TSnEXIjI3t7ePhdeig7cHlazrhm0LSbNLbvRw7woTz9crxDeshlazdprRu2kkbcRoNyFsIIjIYnMKNDvpOQCMgWoGJENaQJmI3CAAIjUFAxh1YEENZFl4AiqFjU5M8rsHk56H/80Aiy54W9F2A7B0zGQcfF5FDDYHx2sUbdysMQ0FDCOlpkDjHPqtK/HHdIw+PsNKQSwLkRG09Xb11HlNfH4ttJWpaFEZSw7k1V4LDXtYqFYrgtI1B6FtdYi4HcWHr8rzUQGQdI8KhenjpSQ5Pt6/jfj4gxQRZJAtAxqclZ0OWt62rfmgp8crJ/sjJ8dWLGwXmx6J6Lohp8PshFXg1oaoXCHNj+uvHQXbXjYlLjZ8WDj5VBlDxunfmnm5WLOfmimo5/4SQUbB+OFvZDIhp+3UcL9tlw1t/ixl/YfAOrl3Op6qLu5ViqwuOpj/z5Ve+ECLSnpBIcjJ3/2qLNWXVWJotrsQcFZqBszFrXsdbCfOxkvHRgPFw664WE9txfOiM88c7HBCkWPl/uDiztj5s3biie1jB7B+Sk9a9rEvWvgPLQhV/xFX6ANrox8ckKSAVeOefnuiPzZyfrZkr/hw0M5P5nzfjLnYtmKe+5ohoeGzOwpar3EnbHwJ7TMTt7ZcTUdP7Ggwini9+gP5mMY4lvStGcOxoNS5fynQCGAdCbY02pmFnJFFpHYKJXb0k9nJqckZ2YxJVKqRmko9wu5IAkr5THReWSJVJRzsgaMxbfMGnduui0r+ZZB3mXVXNNIWznnHxjzoYUNP+eGjCUzlGr0/rMX8v/l3/6NxZGXlDfrHXXDBsGGj8pRE0K1DwigGhA5rciGobyMOSiUCGvYIXARKthulkHbQ594+HK5PCPFmH/+/vXau811kzXu723MraH4uZvz0JhrUWidJU0KjUuqdNBZ4v/88suLeRx/WZPZ21Ct0z2zF6IZrsIwf3CwXjWChHxaFAaXV5Z6b7pZ+SyulsdVikSG48dSfv+7f87KpIuEej5PxRGaKopZL1xMqAx5PHwFHobRlpntBm9jytnMY6npGkulp6zZ5G/q1fEXlReQm0S02deEBRpTuV7vz75IT0lNzqGxjaYS1DRKmGv6HKxJKNHlYb6ERLS5OML8kc5ggmxnnRwRnkOIRmpDZlPUE0GyCkGBvGSZl55v0/ObunqPnzx1NitnYXkl8vj7iaH+JxY6+EgoHeVHxly7UuctaXS6aszmUg5HeuZMOo3GqqxqdQWa6gx6ZHBgblx0HsN8e0j/5CgM9d1eN+Qu6OlBAyNkZE6raMjEFg3UT8i8rvChFdk8pQ64BRSKeeJbU16ZzmiwVp0+fe7ChUyt1u121xpsVX1azHCxxZw+5zI/V6JyyxW28+dzTpw4lpGRr1I5xCp3naBgWZsd1NCIIJsFT1hj4M4QEImVO2pgBz3c9D7eaUyxoJBas1sZ39qYWHggXUIZR0xXT4y5k07pzc7u1JSUs2fP3rlzZ3B4tOtmC9h9YmVQ2ZaXeoODyPHYlG+VKi2OWswORmOARmN//vlfz53LUaudcrXbIpJOic5MSS+smwtxyVbCXpVPjkIsKjCTbWAZS0kRNan4Y/M8qfFytpozhocEcqT4tIInEkosSUkpx44d53CUxcVasdJVwc1bVFCv0yKa7ApWdhZTxRYYDh5P/x//83+dPFugNpYzxY47KuQRvwRGShJrj1hQjYdWxFIfD8sPTJDwOSxdkMEijwXHiLQgknoH7WA9dzAWfIrGG7dSU1NB4c2bNzu6um82XRsWnp9TZoGSRQ0NN6FuZSvUF0sEYjO6qlDYs7MZR44cOn+eZjKVKLQ+p1jyyEiLpdxvjJ8J+RQp/MlasKOXb5EXXs4LJ9OnUMu1/uPHkw4cOCiVWhCaZBpfr5p6JwDbhyJWLMxuBbNfw7nBz6rOPnZbnNerYncpmFEz85ln5z3fJNRaPkYwykj04Yvw1AVVDpJekIrEeFZy7rqCXVJbf+5CZvrZc0OjYxMzcz03W36wM2CLSL7QHkTCqqal56VFxUUiK0egF8kcZzPpXx06mJqebbLVSPTlfplsw8XYOn2+RT5FCp9asapDSvZe8szNxlxoFsnZEtcfP/viX/74ZyZPJ1V7mRJnl4K14WWhzVMn+wUyeC/ydRaVtZYVb/jg0zhL1ePs1hu+pzyLTWkvPRwqo8HRg0UItSQIuUQNNZVJX39+6ujBzusNHS1N7ZW+76yYC6mr0Oy5u+iJlY4VjoNNl7IESjZPyxOyL2Qd+tO/FJw+bZdp1MWKGlHRSxcyoG1PfJM8d9Aflio+IQoX7rR9Z8r9IfZvY+8pP9oZnbLCK2K25exR/amvG0SMaxJWvZAxqy186mTtaPxry3c2xgNTwZohD8d1Yz4KD00FO9pgef7Uxf7RRn9iKfjOUkgdrYWgGYJ5HfK9lf6D/X17/qO1YDUg/2QoDIUWZmfmR/oXRgd2I4PRiYHV8f5H90cfT4+tTvSvjPfjGB4fnN/Z8u8hwbGB0PhQaHwQBSI7GhBZHEODLUK1jwtO7Wj8VumfnxiJK/Ct+LtQCITCsS+etu9rsy9vl/f7NOzvReE+fjXsU7jnsU/hnsc+hXse+xTueexTuOexGwpDocUtX6+9XRZX1oKR5WAQS9N9/Lp4bwpDYSzPwzfrw82VoeaqrRJprV6+WQfZUlkZuV6xONizv+nF3wHvTWFkKXJ3dERFr1Bra3W6Wr3ukl5fq9fXG42lclnh8a+Kz6RcNpnxE1JjNF+XFC01eBfhkfv4lfFeFIbD4aWV1ZX74+06odXf5C1t8pQ0uvwN7sA1X1mTUudLPpV+8swFjalMbShRGwI6W41FZRqrcUVW9yl8PyBc7Xx79b4b97ybwqWlpXv37t3p6+9pvurlFNg99V5vndtdq1TaNBqXSmXn8VRpaWnnzmXa7ZUOB/UNt81V61Hqpuu9oZXtOw/t47VAkjE1FhroDPZ3BAc6UVifHHwwORicHF181ztu4B0URiKRsbGx9vb2e9Mzkcnhdg3faKtyOqmt9lyuGojPV69Q2FJSUk6dOut01oBanHJ46ktU2si1EurvuN8M6i+jNrHj5w7AjMhxtyCX7wB5+lbEv9B9BXEt/MpYRN5XYbzrU9+tcd2tcU5VOwKM876c5LlKM+WO78I7KFxYWAB/GGQkuhK9N3Zbw9eaqE/sIfA2HEGYRGI8eTI1NTVdJNLL5VaBQK3R+fQi5XWLvLt/IP659CY6Y5vr9MY+co9XbW60s7XmTmx7HhRQScqJIwH5LJt8n41jfwwDMZBPlMlXyiMxxD9U3txKBiBfygN3Y5ufAPdft5sMMB8D9ABQH5LHENfOJuKEb4KYxS6wHJ2rME2NDofXH0fWHtydXzyXk5uUnNLvMywt75JC0rlEP2DFGBs0srq6CgrXZiY7NHyl1m82l5pMJUZjAAUQCeaSkpKSk9NMJmoLPpzSmyscYvlcvXc+skxU8FoQHSVAFJcAtZdMDESzALQMEI0D0D4AGsAHQLgBSQDYIp+YEwq3bRrwhj2diA0RwFYIYEOJIzG+xDFRCeASUkBNohJAPe6MlvHfbwAMs1FbfLPpWmcXdS18Jjcv72xa6gBF4bs3Q9xGIR62FXh8c3NzQ0MDxtnT2zfY1uxh57K4Gi5XKRBoMAVyOAoeT52byz1y5PCJEykqlROzo1rtUmi81mLJTJ13LrwU52f7zkgAsWuCHaadsCECEv1IYFzeguhbEW8UA7n2fUCelUC8BzGQXgHxXm7u70AQH0kMidGRkb4bwdBUiX6os53sLQU7y6Hlpn5zfMC/ewpD4Qj1QXYotBAMkl7AomEXKMwuLIYmBq9KWAK5S6Z0yVUuhdojU7lUWh+dJT+elHTg8Ak22BXoOHwdk6cTs4pbrMqe/kFiDbBH2EHCQlHYark4ok2i8CpwigBXEcC8cEMSQhPBk0ROEjBJqISzQilwZbg1dIWBQN2ggbBCeIqztx3kFAFpDBAKdyCuyL8FkaXZCtNwZ9u9WKTBENJOpX/5l/8YKjHtmsLI/MzS/OzSwmxkYRZ2hf5h2NAghhFaWsaioluSJ2UVa7nimIhwNAikkgLWoT/+6/HP/mwsluv5Eh1PoubL3IW05Wt+aquJ7Vp4FUQRCZBubTVt9IH4MYmuJKKSQEqiaCJykoCZiJYkVFJRkuxWt2UnEyBhE69aAzEF3BC3TUyceBwxCHSA2ASQiC6kqwDpORkFEB/VdsRHngA1F5r721rHqEdRX2Smnjx59MBXAz79rikctkmHrJSMGXnBejcyJWgfo0VH4aAL0/dD9Z65attcjf0XqbbP1zpmqmzzNY5E5Wy1LVhlXuy+sfgeCdV7Ij76LYiPf3sqG3ei7SCn0BJX4VbEOIhNEIMg1kCmUjKDgsUdEycAprfaRMIsyHEHEgEGQEtSQ8qJeoLuO70Nal7HjZbbHR2XL1+ur68/lZ5+5MBX/aAwuksKAyVX3Z5Lbt9lt842U6oLLUcxfgwApoHxQ4uLyyuh6OqrEl5ZwxJwa00wurpIrUw/6XekxBSAmCVQIGQDhPvXIt4ihvhlMZBbxW8dA/FIAuKjBMRxE1gIhSdLdLdvtPSPTfYNjbR19RxJSvnss896vTpM+PF7vRnbKKysbAkEGkrKmvxmz0yZARSilwgmMEZ0PX7FhwPD+28gYPFdsgPUDsql2k63tqs60F3t66jw5B37MuOzf53waxFj48p7M7ZRaDD4NBqnSu3UyY09LvVSdAUPQKiB4/+NFC6GwqGlJSxTqJVKNIoQH45QZXjqfPi/u8wtRefvtC80Vc5dr4bMN1cvtV1ZvlU/f6dtMbYT5duxjUKvtx5LdburxqaxIs0lJoAggDhOGcuHYhH36Wia9Som/bqpgH7AJhlxKe+WGPBzqcKwXm2EPK6h5Mkl83d1FlIm8m2N8WG1cbWKavNdjf5JtY4Iyk8vW3+qt1Dlat3jGgParO1ZWa2zr152rV52Elm77Fqrs4cbyxYwEb1L8zspdDiq7K5ah9pCAilagDxQCCLJBR+C6Fr4qr9KJva6a+DfJw5+dTb1pMdaYjYFBlXMDUfB95aCkC4/oi+YU2RNSzOWDIXLRjqRsL7wiblww8X8yUYf0XFGDPxRA3/MKBjWca/kJzcx0kf0vAEtd1FPf2kvfGb7ryMvLbkP/ZJd/ymwy1VL7VJpr7IqjdNxCqldnJA1YbqOX/E6UBE9lhSQSZ6a9Ldi/dHy9YoKrT5QeVOlcZ08dSr9TIZC6VAay65K2Rsexoiea7JXuVw1p0+fO3bsmExmMpn8Op1bp3NpzWVVctGaLqtXSlMYSvS2arWxVGsuFytdh04kH0k+Zfc1mALN1/SqDSd9x2cJHyDP3UUvNuUl9b0O94WHk6jZ0fhXlQ/8psLhqLFYykzWSrNMP1duWl5/sLa2RlbN0SiV2uygBz/BHFIsrJOwZkLiitwnkZEnkvKB0fEun1HDEah0Xg5HkUoh3e2u01mrBnW8DT97zMi3exu8/oaz5zJTT6bJ5FabvdJgDBhNJUbHpQq5JKq50CXK1hl8ZnMpJmyTKSCTWTIyMkC5233J7rt2Xa/YcDJ2aGGH/BzbZwHyjEjsC6NN4eL40st9Ymctm+hrVta6lR010UMa2oqZQWTVzPgpdh/qU2w3i/r2Oi4s6hMt6oPsRD0r8U12vI2niPqSy8fd/MmGrZAGb5IPpFCjcctkVrnCoRVr7thkA8MjLS2tLS0tZM1E6AGdIAaLJLLWIUC+g6USKnEK/GFphQUWWRQDUzPzEzVOM1+oNZRwucojR44cPfqNQmmXa33XxfRHZlqrhC5Te7RaDyj55ptvJBIjoQqiNVdUy0VP7flLFrbZXOLx1ns8l/z+yziVnJxy/HiSw1Ftdl9u1sk3fNTuMIQbQhL5YJFse/a9g/Xd5j4LD8zUVgtrxoLVmKwY8mOfjuYvq7PKFDKXu9qosdvNvvyL+Ye+/FwiUJT5ar2uKpfZvWxmgoywpWjcyJuKyV0zf9oqHFbT2zhnRjVM/ETlhJG3aKY+2saj501FMybutLGoT5gxpsybM/NmTNT+V+s29tu3Q/lACiUSc3GxrlhokBer6mTslhs3AThTbHXbjwL4Az3gBmthrIixOkaYJfEz7pgxxNyVArVcAlYfRJrKzQKxwlxdWKT669cH//r1UbbAyJF7yotoIc2FWi6tWGaTSi3JyWnHjx8XCDRqtQt+JpdbQXNAxF9UnGsqOieO1YhEOrHYAG8+cQJ0pwgEWtBv5hb1MJNmldkzsc/Jpjd3WCBC7bwQ24KB+oJQQX3BO6ekvuZdUOcsanKCsV3TIrrciOqCX6XxVrTaHFUuT11uflFa+imeQFNRdcNfdt3hrFo2s3625fuUKmug0em9DDFaK6zO2iwa++DRo3S2tLSy1eW7YvZdqzUaN9zMdTPdafH5yq9L5NbDx46dzaD5Sq65vPUmT8NtvQgNdtC2VT6QQpO5XKvzavQlmmLlYiW1py/iZ5yWTSS4IfNf/DZvxWJ0bel65SVuvlMis3I5F77+rDDpSECusBSL7utZG6Vc5CkKnV+v96ekpCUlJbFYUnikUmlXKOxipadGVrzhYy0YGAgSJnOZyVSCCVsiMYHsY8e+0et9KmN5vUI0LT6zpMt76mB9a8r7wUb/0cb40U7/3lrwo7XwmZP1bPOz0PiHoluF+myfD6+NarL8SqXNXa/Xe222ChqNnpqazOMpysoavf4rdmtp1MycFqU7ZQpPSZPPd9nvv2K1UVtb03JZSUkn8vI4RlMAffOXN1ukihVN1mMb020NlFe1ymTm8xnnsy/ml5Y2+gNX7P5rHXrxr0KhXGIWF2uFxXoZnTcT0JKM9G/HQnQ10lK9Ycl97qC/dDFj39ZynzsZL5wMTAmYQnqUTIbIzpc6/vL10d/94U8XaAImT5/HVOSxlDSu0cZhv3QzpjSFAqEepEqlZvhiUZECiQ8oBK9yXUmjSvytkbaqvThsEpY7S8T5uacP/NUsFNc6fSVWT7tO/ML1Rn2BvMdWxoQ4I6i8EFAoLM46o9FvsZTn5NAPHTrA5cpLS695fJcdlpIZdV5Eca7BqLO4YqsvewVSMJzNzy86cuQgnS5AkAejds/lUrX6njB9xVjgNvsCZU1SqTEt7eTZs5mBQAPaIPJ36H4dL6TekdqkgzbpmFkQbAhQ/5r8MUAofGahNv7ZIVRfPRzMMe0yZpeqqDb/ZFnWsU4Fq1vN6VZR0q5gz+qZG37ugCw3t0jDEhjpHA0Izi4Q/+Wrg3/+/IBQ7uIoA7Uy4SNDzro2u9usdFW25+Rz0s6c4YkM5dW37GU3rhq1G6435qvIYhBgMUfCqpwSqdVVjwCg0biysvIPHjxAo7F1OoQEh1Jlb2GfWddftIklFmctZmuhUAfBqczMfHhhQQHP670MCg32mjq9Fp0Zl1xwGFxu3xWRSH/ixPH09PNU8mWv1Ntr2jTFG15qF74dnUnIB1K4FA4uhUOQSDiEaz8WEhTu6GVCiC9S3+uWCKiPdUk5IR4k9JwHVmaZiF8mFZdLRRUySUDIZ534iptypEwidAuL7yhZTx0MxNI6Kddgqzl/PufkyRQWS2y1lmlMZWVyyffmPATSHc8lgkBKbXxgYz6zF/qlUoOt2mDwI1yDwmPHjuTksPFTDV+XW++q8ja8zCqlXGupMpvLkL1DsBIDhYcPH8jKKjSZSlUqh0Lr98tkz5z0Lt5ZAV8pEhsLCgTffHPi1KlziP/FxVqJyu3hFM5Izj6yMN7Uqw+kkGq9VT4S3knh+wgSPESeDRcDy3zqiDLy+ACP/HzpZmO2e2LK83DoMo3v9OkLX3zxnzRakVxuwwrSUSyYEp5e0r+eRUyHSG2Qo/5kp+uKOGy+js9Xi0TGjAzayZOpubkcu73KaCrVKG0rZuYzR6GBwy0SGJBzoRmSKcT2tLSMAwe+On06WyjUYyLnCo1aruAHa8FjK9OgtFjtNWy2FIH01KnzFksFjEOpL7uh5H1vLxwXn49t3PcaX/xQCn8dfBQK30fgsjfVAo2l5vSZrM+/+M+8fL7dUaNEsqOUYNV4T5aJmAlToD6fj+11QYmX2kBozVSIjBSX+yUimdqnUjkNhsDp05lHjhy6eJEFh9PqfAqZOWJiPHfStWwOjaNjcLVMng5RnSe2Hk0+/0+//33SqRyFrkSkcBXJPA6hEEaGjFQnN5qtlUym+ODBr5OSqL9NQf4l1fpB4Yafg8XMojoHNrRjIJBPkcLnlnyoD4uhbfLK7Ehkx3jeUza8rGvSIr7cfehIyv/+P/+YcYGuUDq5YtslmfBHa8GcIvOpg8pRHxjzg6rsBWXWtOTctDQDC4xJSUY7M3Vaek7B5tIFJiZXzREY087mHDlx4tS5Qo2xXKbxC8XmoIGOVfx9HbNbVdSrYlOiZvdpODeLL9bQvmkT5aIGqVmngjmlZbz0ctbMdLXUYDCXFxQWHzx04MQ3J/WGgEbjEam8rQouLOahhY4YvncoNOf+7GRSm5ltHn+wFn5vKfjJzoBgDYAy5Dtz/nMn6+XmJqK/yJuWBDGhNqiIbZr3yM6eNbDuqfJGRBnzBuasgTmiyLunyu1jJ1dL+eXOQJ23jJmdc+Av/84rYLlNHp9CsWrMw6ofGSmWIjXFTK1AYuKLbGI5PT3t8B/+WZhDc0iVZqHUwhOsmhmYlalXLdRsvSkedny/DRxRjldSvg4KhTyFUOHOovH/9B+fffb5IbHcKRCbCwWWJik1zX9rZSCTwrjA2XMX+4WL9RzijL3u8bAffjoUYl240lxRyWdI+XIVX6IVypU8saZY3lJXM9x560qZH3LryqXB9hsDba0DXbfb7MoF2fnE3k1k+yaycRPCzg7BKRwXYuv0kIYW1eeu6GghNbVyHy0+081OGeCdusNJu5p9EAtei/eq3lyeV8g7m3G+iKesqOvy2fxPrHRwj+U/Zfsu1lM7/amdgSPKyLOwpsQciZ8/OxgIGwkveacglvzkZE9p6KNqxqiq8BbrVK8oa0LLHFMzhlV0alqNbZqK8E4oXLVzlu3cqJ274uDN6fKnZRdWSlS7/peKeN3HBiiMNldeFRRYBEI7n+csFjj4fBRuBJxDV6tul7vbypztZa6ByxX99eV9V2u6LeKIOhvzRHwTNX1e1JC/YsxfMeSjgPqoPp8Iah6YCxGOkIxgMrsnzxwqPtvLSx8QnIF1R3TURl3IF+BhsIkytdrivGSzVeblsQ8fPlhYKPD4rzp1tjVDflCdM6vMhiqpMP5LnCdv6X6p2crQewrlT5Rfcqhk24+pN+ajXvgodRbp1V3phe9sjKcO5lhn2+xCcHZmZn5+nslkHjlypM0oiu72P/yJ131sxAJpzYY9d8ODuST2nxx4Y+LI37DmYsm/YcvbsNBemi5CXhgvbtjzqd07N/coJEESP2MJCJ96X0y9MuY993C+t7NWjQVw09nYfncoPDDToXqqGdWAvLyGh2VteFj1Oo3RUev3N2RlFRw9ejgjI0+pdinE2h7u6YiW9tq08NcWmAjWo1OSjAlJRtfNltGJqeGR0bHxCZ5AkJqW1vwB/8nBPvYo4hTuYw/jH/7h/wOmK72Gt82nDQAAAABJRU5ErkJggg== From a6bc6c13929bb4e54da9799b7d06cd61f15a76bd Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 16:25:14 +1000 Subject: [PATCH 11/18] Add new icons to illustrator file --- assets/icons.ai | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/icons.ai b/assets/icons.ai index cdbd97e0..7d32bbdd 100644 --- a/assets/icons.ai +++ b/assets/icons.ai @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db473558efda60780b774997b31c6837fb608649d70b5229caaf5524330e7a85 -size 1668570 +oid sha256:b50909b4d6372c3a1c3dd20c0e4764a22bd4b514ec2d4b8575b917e3dfe33d48 +size 1667865 From 4e4f42a68af0e63147bd3d8bd049315d62c87092 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 19:30:24 +1000 Subject: [PATCH 12/18] Update info text --- docs/contours/Groundhog - Contour Examples.ghx | 2 +- docs/fields/Groundhog - Fields Examples.ghx | 2 +- docs/floods/Groundhog - Floods Examples.ghx | 2 +- docs/flows/Groundhog - Flows Examples.ghx | 2 +- docs/plants/Groundhog - Plants Examples.ghx | 2 +- .../Barcelona Botanic Gardens.ghx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/contours/Groundhog - Contour Examples.ghx b/docs/contours/Groundhog - Contour Examples.ghx index 43c2d9c6..a4b29985 100644 --- a/docs/contours/Groundhog - Contour Examples.ghx +++ b/docs/contours/Groundhog - Contour Examples.ghx @@ -1675,7 +1675,7 @@ Contact groundhog@philipbelesky.com for support or feedback. -This is an example file related to the plugin's documentation. +This 3dm/gha files are a part of that plugin's documentation. This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 diff --git a/docs/fields/Groundhog - Fields Examples.ghx b/docs/fields/Groundhog - Fields Examples.ghx index aff76f74..abd41f5d 100644 --- a/docs/fields/Groundhog - Fields Examples.ghx +++ b/docs/fields/Groundhog - Fields Examples.ghx @@ -1532,7 +1532,7 @@ Contact groundhog@philipbelesky.com for support or feedback. -This is an example file related to the plugin's documentation. +This 3dm/gha files are a part of that plugin's documentation. This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 diff --git a/docs/floods/Groundhog - Floods Examples.ghx b/docs/floods/Groundhog - Floods Examples.ghx index 4a697ca3..464b3d4b 100644 --- a/docs/floods/Groundhog - Floods Examples.ghx +++ b/docs/floods/Groundhog - Floods Examples.ghx @@ -5502,7 +5502,7 @@ Contact groundhog@philipbelesky.com for support or feedback. -This is an example file related to the plugin's documentation. +This 3dm/gha files are a part of that plugin's documentation. This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 diff --git a/docs/flows/Groundhog - Flows Examples.ghx b/docs/flows/Groundhog - Flows Examples.ghx index 21189c22..c20016a6 100644 --- a/docs/flows/Groundhog - Flows Examples.ghx +++ b/docs/flows/Groundhog - Flows Examples.ghx @@ -2894,7 +2894,7 @@ Contact groundhog@philipbelesky.com for support or feedback. -This is an example file related to the plugin's documentation. +This 3dm/gha files are a part of that plugin's documentation. This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 diff --git a/docs/plants/Groundhog - Plants Examples.ghx b/docs/plants/Groundhog - Plants Examples.ghx index 7ea93a6e..4fe41937 100644 --- a/docs/plants/Groundhog - Plants Examples.ghx +++ b/docs/plants/Groundhog - Plants Examples.ghx @@ -4455,7 +4455,7 @@ Podocarpus totara,Totara,Totara,30,800,800,1600,33,110,350,30,500,22000,30,220,1 Contact groundhog@philipbelesky.com for support or feedback. -This is an example file related to the plugin's documentation. +This 3dm/gha files are a part of that plugin's documentation. This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 diff --git a/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx b/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx index 95d75e2d..21fb79ea 100644 --- a/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx +++ b/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx @@ -881,7 +881,7 @@ Contact groundhog@philipbelesky.com for support or feedback. -This is an example file related to the plugin's documentation. +This 3dm/gha files are a part of that plugin's documentation. This definition is licensed under the terms of the GPL v3 https://opensource.org/licenses/GPL-3.0 From 70e037d40573b2c7910f4989c43c11df3f1dc60e Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 20:00:04 +1000 Subject: [PATCH 13/18] Fix jekyll-asset generation when thumbnail not provided --- site/_includes/tile.html | 9 ++++++--- site/documentation.md | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/site/_includes/tile.html b/site/_includes/tile.html index f235f31f..5cbd36ca 100644 --- a/site/_includes/tile.html +++ b/site/_includes/tile.html @@ -3,13 +3,16 @@ {% else %} {% assign collection = item.collection %} {% endif %} + + {% if item.thumbnail %} {% capture thumbnailFullPath %}{{ item.url }}{{ item.thumbnail }}{% endcapture %} {% assign thumbnailAssetPath = thumbnailFullPath | remove: collection | remove: '/plugin/' | remove_first: "//" %} + {% capture thumbnailAsset %} + {% asset '{{ thumbnailAssetPath }}' magick:resize=450x450^ magick:crop=450x450+0+0 magick:quality=33 @path %} + {% endcapture %} +{% else %} {% endif %} -{% capture thumbnailAsset %} - {% asset '{{ thumbnailAssetPath }}' magick:resize=450x450^ magick:crop=450x450+0+0 magick:quality=33 @path %} -{% endcapture %} {% if collection == 'documentation' %} {% assign icon = 'book' %} diff --git a/site/documentation.md b/site/documentation.md index d6d3760e..8cf31626 100644 --- a/site/documentation.md +++ b/site/documentation.md @@ -2,6 +2,6 @@ layout: landing_documentation title: Documentation category: top -excerpt: Explanatory material and example definitions that outline how to use the plugin's components in different contexts. +excerpt: Explanatory material and example definitions that outline how to use the plugin's components in different contexts. --- From 3be5983faf90c585f880141e76f7f991cf618cb8 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 20:05:37 +1000 Subject: [PATCH 14/18] Update table metadata and some excerpts --- site/_documentation/flows.md | 2 +- site/_documentation/plants.md | 2 +- site/_includes/elements/component.html | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/site/_documentation/flows.md b/site/_documentation/flows.md index 091954bc..ddb7a4cd 100644 --- a/site/_documentation/flows.md +++ b/site/_documentation/flows.md @@ -1,6 +1,6 @@ --- title: Flows -excerpt: Components for simple projections and analysis of surface water flows. +excerpt: Components for creating simple projections and analysis of surface water flows. date: 17-10-14 files: true files_text: model and definition that demonstrating the use of these components diff --git a/site/_documentation/plants.md b/site/_documentation/plants.md index 1c40f619..bdfb1298 100644 --- a/site/_documentation/plants.md +++ b/site/_documentation/plants.md @@ -1,6 +1,6 @@ --- title: Plants -excerpt: Components for parametric control of planting design, performance, and visualisation. +excerpt: Components that enable the parametric control of plant selection, distribution, performance, and visualisation. date: 17-11-08 files: true files_text: model and definition that demonstrating the use of these components diff --git a/site/_includes/elements/component.html b/site/_includes/elements/component.html index 64b9018b..e1e642e9 100644 --- a/site/_includes/elements/component.html +++ b/site/_includes/elements/component.html @@ -18,18 +18,18 @@
-
-
Icon
+
Nickname
+
{{ component.nickname }}
-
{{ component.nickname }}
-
Nickname
+
Panel
+
{{ component.subcategory }}
-
{{ component.subcategory }}
-
Panel
+
Icon
+
From 257e61f609574e4f2aa86782c9ad9855b26c9aee Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 22:57:23 +1000 Subject: [PATCH 15/18] Remove Settings param until it can emulate MeshSettings properly --- plugin/Terrain/groundhogSurfaceAspectComponent.cs | 3 +-- plugin/Terrain/groundhogSurfaceSlopeComponent.cs | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugin/Terrain/groundhogSurfaceAspectComponent.cs b/plugin/Terrain/groundhogSurfaceAspectComponent.cs index cd20ccec..ec4ae425 100644 --- a/plugin/Terrain/groundhogSurfaceAspectComponent.cs +++ b/plugin/Terrain/groundhogSurfaceAspectComponent.cs @@ -24,8 +24,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[0].Optional = false; pManager.AddVectorParameter("Aspect", "A", "Vector representing the direction to measure aspect against", GH_ParamAccess.item, new Vector3d(0, 1, 0)); pManager[1].Optional = true; - pManager.AddMeshParameter("Settings", "P", "Settings to be used by the meshing algorithm", GH_ParamAccess.item); - pManager[2].Optional = true; + // TODO: add Mesh construction settings/parameters (Param_MeshParameters) } protected override void RegisterOutputParams(GH_OutputParamManager pManager) diff --git a/plugin/Terrain/groundhogSurfaceSlopeComponent.cs b/plugin/Terrain/groundhogSurfaceSlopeComponent.cs index afaa86ca..50cbb6c0 100644 --- a/plugin/Terrain/groundhogSurfaceSlopeComponent.cs +++ b/plugin/Terrain/groundhogSurfaceSlopeComponent.cs @@ -22,8 +22,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) { pManager.AddSurfaceParameter("Surface", "S", "The terrain surface", GH_ParamAccess.item); pManager[0].Optional = false; - pManager.AddMeshParameter("Settings", "P", "Settings to be used by the meshing algorithm", GH_ParamAccess.item); - pManager[1].Optional = true; + // TODO: add Mesh construction settings/parameters (Param_MeshParameters) } protected override void RegisterOutputParams(GH_OutputParamManager pManager) From 8ea681e9914d8659b708f7a37d239e60931fd2d6 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Tue, 1 May 2018 22:57:29 +1000 Subject: [PATCH 16/18] Bump version number --- CHANGELOG.md | 2 +- demos/Groundhog - General Demo.ghx | 2 +- demos/Groundhog - Planting Plan Demo.ghx | 2 +- docs/contours/Groundhog - Contour Examples.ghx | 2 +- docs/fields/Groundhog - Fields Examples.ghx | 2 +- docs/floods/Groundhog - Floods Examples.ghx | 2 +- docs/flows/Groundhog - Flows Examples.ghx | 2 +- docs/plants/Groundhog - Plants Examples.ghx | 2 +- docs/terrain/Groundhog - Terrain Examples.ghx | 2 +- plugin/Properties/AssemblyInfo.cs | 4 ++-- plugin/groundhog readme.md | 2 +- plugin/groundhog.csproj | 2 +- plugin/release/manifest.yml | 2 +- .../Barcelona Botanic Gardens.ghx | 2 +- .../Groundhog - Keio University Roof Garden.ghx | 2 +- .../Groundhog - Max IV Laboratory.ghx | 2 +- site/_documentation/terrain.md | 17 +++++++++++++---- site/_includes/elements/download.html | 2 +- site/package.json | 2 +- site/plugin.md | 2 +- 20 files changed, 33 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec5d17d5..41d1411c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## Changelog -#### [0.8.0] - ????-??-?? +#### [0.8.0] - 2018-05-01 ###### Added - Surface equivalents of the Slope and Aspect terrain components diff --git a/demos/Groundhog - General Demo.ghx b/demos/Groundhog - General Demo.ghx index d6e6d100..2035b5b8 100644 --- a/demos/Groundhog - General Demo.ghx +++ b/demos/Groundhog - General Demo.ghx @@ -17994,7 +17994,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback diff --git a/demos/Groundhog - Planting Plan Demo.ghx b/demos/Groundhog - Planting Plan Demo.ghx index 5ae16209..3ac5b4cb 100644 --- a/demos/Groundhog - Planting Plan Demo.ghx +++ b/demos/Groundhog - Planting Plan Demo.ghx @@ -3771,7 +3771,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback diff --git a/docs/contours/Groundhog - Contour Examples.ghx b/docs/contours/Groundhog - Contour Examples.ghx index a4b29985..a0733a1f 100644 --- a/docs/contours/Groundhog - Contour Examples.ghx +++ b/docs/contours/Groundhog - Contour Examples.ghx @@ -1671,7 +1671,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/docs/fields/Groundhog - Fields Examples.ghx b/docs/fields/Groundhog - Fields Examples.ghx index abd41f5d..a8026dfb 100644 --- a/docs/fields/Groundhog - Fields Examples.ghx +++ b/docs/fields/Groundhog - Fields Examples.ghx @@ -1528,7 +1528,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/docs/floods/Groundhog - Floods Examples.ghx b/docs/floods/Groundhog - Floods Examples.ghx index 464b3d4b..72fa8a30 100644 --- a/docs/floods/Groundhog - Floods Examples.ghx +++ b/docs/floods/Groundhog - Floods Examples.ghx @@ -5498,7 +5498,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/docs/flows/Groundhog - Flows Examples.ghx b/docs/flows/Groundhog - Flows Examples.ghx index c20016a6..3e94abfc 100644 --- a/docs/flows/Groundhog - Flows Examples.ghx +++ b/docs/flows/Groundhog - Flows Examples.ghx @@ -2890,7 +2890,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/docs/plants/Groundhog - Plants Examples.ghx b/docs/plants/Groundhog - Plants Examples.ghx index 4fe41937..22cf05bf 100644 --- a/docs/plants/Groundhog - Plants Examples.ghx +++ b/docs/plants/Groundhog - Plants Examples.ghx @@ -4451,7 +4451,7 @@ Podocarpus totara,Totara,Totara,30,800,800,1600,33,110,350,30,500,22000,30,220,1 false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/docs/terrain/Groundhog - Terrain Examples.ghx b/docs/terrain/Groundhog - Terrain Examples.ghx index fc610c27..ac5360e7 100644 --- a/docs/terrain/Groundhog - Terrain Examples.ghx +++ b/docs/terrain/Groundhog - Terrain Examples.ghx @@ -1458,7 +1458,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/plugin/Properties/AssemblyInfo.cs b/plugin/Properties/AssemblyInfo.cs index 61b8b0ac..fa620b6a 100644 --- a/plugin/Properties/AssemblyInfo.cs +++ b/plugin/Properties/AssemblyInfo.cs @@ -33,5 +33,5 @@ // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("0.7.2.*")] -[assembly: AssemblyFileVersion("0.7.2.*")] +[assembly: AssemblyVersion("0.8.0.*")] +[assembly: AssemblyFileVersion("0.8.0.*")] diff --git a/plugin/groundhog readme.md b/plugin/groundhog readme.md index 4d227d44..9fa73e62 100644 --- a/plugin/groundhog readme.md +++ b/plugin/groundhog readme.md @@ -2,7 +2,7 @@ -# Groundhog (0.7.2b) +# Groundhog (0.8.0b) *... a Grasshopper plugin, a set of reference models, and wiki exploring the applications of computational design in landscape architecture.* diff --git a/plugin/groundhog.csproj b/plugin/groundhog.csproj index 039e0376..5b91282c 100644 --- a/plugin/groundhog.csproj +++ b/plugin/groundhog.csproj @@ -14,7 +14,7 @@ 512 false - 0.7.2 + 0.8.0 diff --git a/plugin/release/manifest.yml b/plugin/release/manifest.yml index 91dfd98d..b11e2108 100644 --- a/plugin/release/manifest.yml +++ b/plugin/release/manifest.yml @@ -1,6 +1,6 @@ --- name: groundhog -version: 0.7.2 +version: 0.8.0 authors: - Philip Belesky description: > diff --git a/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx b/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx index 21fb79ea..fbd9bfb3 100644 --- a/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx +++ b/projects/botanical-gardens-of-barcelona/Barcelona Botanic Gardens.ghx @@ -877,7 +877,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback. diff --git a/projects/keio-university-roof-garden/Groundhog - Keio University Roof Garden.ghx b/projects/keio-university-roof-garden/Groundhog - Keio University Roof Garden.ghx index 717668b0..74f3eb35 100644 --- a/projects/keio-university-roof-garden/Groundhog - Keio University Roof Garden.ghx +++ b/projects/keio-university-roof-garden/Groundhog - Keio University Roof Garden.ghx @@ -9154,7 +9154,7 @@ false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback diff --git a/projects/max-iv-laboratory/Groundhog - Max IV Laboratory.ghx b/projects/max-iv-laboratory/Groundhog - Max IV Laboratory.ghx index 9d8fe1c3..02bcb1a6 100644 --- a/projects/max-iv-laboratory/Groundhog - Max IV Laboratory.ghx +++ b/projects/max-iv-laboratory/Groundhog - Max IV Laboratory.ghx @@ -7072,7 +7072,7 @@ Bezier curve evaluator false 0 0 - Definition prepared for Groundhog v0.7.2b and depends on components from that plugin. It is available for download at http://groundhog.la/ + Definition prepared for Groundhog v0.8.0b and depends on components from that plugin. It is available for download at http://groundhog.la/ Contact groundhog@philipbelesky.com for support or feedback diff --git a/site/_documentation/terrain.md b/site/_documentation/terrain.md index e55e7b18..df5fb8fa 100644 --- a/site/_documentation/terrain.md +++ b/site/_documentation/terrain.md @@ -1,9 +1,18 @@ --- title: Terrain -excerpt: Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium -date: 17-11-08 -published: false +excerpt: Components for quantifying different elements of topographic form. +date: 18-05-01 +published: true thumbnail: false --- -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. LIPSUM \ No newline at end of file +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. LIPSUM + +{% include elements/component.html title='SurfaceSlope' %} +{% include elements/component.html title='MeshSlope' %} + +{% include elements/component.html title='SurfaceAspect' %} +{% include elements/component.html title='MeshAspect' %} + + +> ***Coming Soon**: further components that provide other metrics for assessing different terrain characteristics.* \ No newline at end of file diff --git a/site/_includes/elements/download.html b/site/_includes/elements/download.html index 26c65d92..acb82c92 100644 --- a/site/_includes/elements/download.html +++ b/site/_includes/elements/download.html @@ -8,7 +8,7 @@
-Download the latest version (0.7.2b).
Note that the README file in the zip contains instructions for how to install the plugin. +Download the latest version (0.8.0b).
Note that the README file in the zip contains instructions for how to install the plugin.
diff --git a/site/package.json b/site/package.json index 05d7733f..1f6da8d1 100644 --- a/site/package.json +++ b/site/package.json @@ -1,6 +1,6 @@ { "name": "groundhog", - "version": "0.7.2b", + "version": "0.8.0b", "description": "groundhog.la site source", "main": "index.html", "dependencies": { diff --git a/site/plugin.md b/site/plugin.md index 0a3afe1d..c309ca40 100644 --- a/site/plugin.md +++ b/site/plugin.md @@ -1,7 +1,7 @@ --- layout: page title: Plugin -excerpt: Download the latest version (0.7.2b) of the Groundhog plugin for Grasshopper. +excerpt: Download the latest version (0.8.0b) of the Groundhog plugin for Grasshopper. thumbnail: thumbnail.png --- From 27a7cbfadc8dfd4fd4dddd31e7b0499c6a8a987f Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Wed, 2 May 2018 17:12:02 +1000 Subject: [PATCH 17/18] Finalise for release --- README.md | 2 +- RELEASE.md | 2 +- plugin/groundhog readme.md | 4 ++-- plugin/groundhog readme.pdf | Bin 69888 -> 88256 bytes site/_documentation/terrain.md | 2 +- site/_includes/elements/beta.html | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 78a4840e..2973f721 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ -Groundhog is a [Grasshopper plugin](http://grasshopper3d.com), a set of reference models, and wiki exploring the applications of computational design in landscape architecture. Groundhog is currently in beta. The plugin and associated site will be updated with more features and information in early 2018. +Groundhog is a [Grasshopper plugin](http://grasshopper3d.com), a set of reference models, and wiki exploring the applications of computational design in landscape architecture. Groundhog is currently in beta. The plugin and associated site will be updated with more features and information over the course of 2018. Please visit [www.groundhog.la](http://groundhog.la) for documentation and examples of how to use the plugin and for resources on computational approaches to landscape architectural design in general. diff --git a/RELEASE.md b/RELEASE.md index 52d3f4ec..3ad5c5d9 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -22,7 +22,7 @@ #### Plugin/Website - Rebuild `groundhog readme.pdf` from the Markdown source -- Follow `compile.sh` and `s3_website` steps in `site/README.md` +- Run `npm run publish` in the site directory #### Yak diff --git a/plugin/groundhog readme.md b/plugin/groundhog readme.md index 9fa73e62..4a9d52af 100644 --- a/plugin/groundhog readme.md +++ b/plugin/groundhog readme.md @@ -2,7 +2,7 @@ -# Groundhog (0.8.0b) +# Groundhog `v0.8.0 beta` *... a Grasshopper plugin, a set of reference models, and wiki exploring the applications of computational design in landscape architecture.* @@ -29,7 +29,7 @@ The preferred method of submitting bug reports and feature requests is through [ #### Contributing -This is an open source project and the code for the plugin and groundhog.la are [hosted on Github](https://github.com/philipbelesky/groundhog). Contributions to the plugin, and to the articles and reference definitions on the wiki are welcome. +This is an open source project and the code for both the plugin and groundhog.la site are [hosted on Github](https://github.com/philipbelesky/groundhog). Contributions to the plugin, and to the articles or models on the site are welcome. #### Developer and License diff --git a/plugin/groundhog readme.pdf b/plugin/groundhog readme.pdf index 25cffd3aeaf244259f3496e8fbfa1ba63aa9309b..09cd03950c1f89ee492c45e3330106c020dfb6b0 100644 GIT binary patch delta 66274 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 diff --git a/site/_documentation/terrain.md b/site/_documentation/terrain.md index df5fb8fa..2ccc42c2 100644 --- a/site/_documentation/terrain.md +++ b/site/_documentation/terrain.md @@ -2,7 +2,7 @@ title: Terrain excerpt: Components for quantifying different elements of topographic form. date: 18-05-01 -published: true +published: false thumbnail: false --- diff --git a/site/_includes/elements/beta.html b/site/_includes/elements/beta.html index c135e833..1e404df2 100644 --- a/site/_includes/elements/beta.html +++ b/site/_includes/elements/beta.html @@ -11,7 +11,7 @@

From b04e3155e9ab4bfe2138af360b7bae149d614050 Mon Sep 17 00:00:00 2001 From: Philip Belesky Date: Wed, 2 May 2018 17:29:05 +1000 Subject: [PATCH 18/18] Typos --- RELEASE.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 3ad5c5d9..cfe27503 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,4 +1,4 @@ -## Release Checklist +## Release Check-list #### Version Numbers @@ -7,15 +7,15 @@ - Version number to be iterated in `AssemblyInfo.cs` - Version number to be iterated in `groundhog.csproj` - Version number to be iterated in `groundhog readme.md` -- Version number to be iterated in the `gh_string` of each definition; search string for *Definition prepared for Groundhog v0.7.2b and depends on* +- Version number to be iterated in the `gh_string` of each definition; search string for *Definition prepared for Groundhog v0.8.0b and depends on* - Version number to be iterated in `package.json` - Version number to be iterated in `manifest.yml` - Release date/notes in `CHANGELOG.md` #### Models/Definitions -- Downsave to Rhinoceros 5 versions -- Update screenhots used on site +- Downsave models to Rhinoceros 5 +- Update screenshots used on site - Check Full Names are off; fancy wires are on - Export as JPG with background 227, 222, 218; at 2X resolution (needs to be done in Rhinoceros 6) @@ -26,7 +26,7 @@ #### Yak -In terminal (not powershell): +In command prompt (not power shell): > "C:\Program Files\Rhino WIP\System\Yak.exe" build > "C:\Program Files\Rhino WIP\System\Yak.exe" push groundhog-X.Y.Z.yak