├── .github └── workflows │ └── main.yml ├── .vl ├── VL.Clipper.vl.dll ├── VL.Clipper2.vl.dll ├── VL.LibTessDotNet.vl.dll ├── VL.ParagonClipper.vl.dll ├── VL.PolyTools.vl.dll └── Verbs_Skia.vl.dll ├── Clipper License.txt ├── Dependencies.txt ├── Geometry3Sharp License.txt ├── LICENSE ├── LibTessDotNet License.txt ├── README.md ├── VL.Clipper.vl ├── VL.Geometry3Sharp.vl ├── VL.LibTessDotNet.vl ├── VL.PolyTools.PolygonLERP.vl ├── VL.PolyTools.SplineLine.vl ├── VL.PolyTools.Stride.vl ├── VL.PolyTools.Triangle.vl ├── VL.PolyTools.vl ├── VL.Polytools.Stride.PolygonTube.vl ├── VL.SKPathUtils.vl ├── VL.Supplement.Math.Util.vl ├── VL.Supplement.Stride.DynamicMeshWithTangents.vl ├── VL.Supplement.Stride.ForceUpdateMeshModel.vl ├── VL.Supplement.Stride.Line.vl ├── assets ├── UVCheckerMap1024.png └── UVCheckerMap1024_ExtrudedPolygon.png ├── deployment └── VL.PolyTools.nuspec ├── experiments └── AlternateShadowCastingAttempts.vl ├── help ├── BothPolygonsAndPolyPaths │ ├── HowTo Find Nearest Point of a Polygon or Polypath.vl │ ├── HowTo Get Bounds of a Polygon or Polypath.vl │ ├── HowTo Set Origin of a Polygon or Polypath.vl │ └── HowTo Transform Polygon or Polypath.vl ├── Conversion │ ├── HowTo Convert a PolyPath to a Polygon.vl │ └── HowTo Convert a Polygon to a PolyPath.vl ├── Examples │ └── Example Circle Splitter.vl ├── General Geometry │ ├── Example SVG Path Extract.vl │ ├── HowTo 3D Line Intersects Box.vl │ ├── HowTo Calculate Normal of a 2D Line Segment.vl │ ├── HowTo Check if an Angle is Between Constraints.vl │ ├── HowTo Find Grid Cells Along A Line.vl │ ├── HowTo Find Intersection of Lines.vl │ ├── HowTo Find Shortest Distance Between Angles.vl │ ├── HowTo Find bounds of a Point Cloud.vl │ ├── HowTo Find if 2D Line Intersects Rectangle.vl │ ├── HowTo Find if Points are on a Line.vl │ ├── HowTo Find if Triangle Contains Point.vl │ ├── HowTo Generate a nearly Square GridSpread.vl │ ├── HowTo Interpolate Point in a Triangle.vl │ ├── HowTo Sample a point on a line.vl │ ├── HowTo Solve Triangle 3D.vl │ ├── HowTo Split an SKPath into Discrete Shapes.vl │ └── RCA_Indian_Head_Test_Pattern.svg ├── HelpTextures │ ├── Leather_Padded_001 │ │ ├── Leather_Padded_001_ambientOcclusion.jpg │ │ ├── Leather_Padded_001_basecolor.jpg │ │ ├── Leather_Padded_001_height.png │ │ ├── Leather_Padded_001_normal.jpg │ │ ├── Leather_Padded_001_roughness.jpg │ │ ├── Material_1889.jpg │ │ └── Source.txt │ ├── Plastic_Mesh_001 │ │ ├── Material_1442.jpg │ │ ├── Plastic_Mesh_001_ambientOcclusion.jpg │ │ ├── Plastic_Mesh_001_basecolor.jpg │ │ ├── Plastic_Mesh_001_height.png │ │ ├── Plastic_Mesh_001_mask.jpg │ │ ├── Plastic_Mesh_001_normal.jpg │ │ ├── Plastic_Mesh_001_roughness.jpg │ │ └── Source.txt │ └── UVCheckerMap1024_Quadrants.png ├── Stride 3D │ ├── HowTo 3D Polygon Outline.vl │ ├── HowTo 3D Polygon Tube.vl │ ├── HowTo 3D points to 2D Polygon plus transform.vl │ ├── HowTo Extrude A Polygon in 3D.vl │ ├── HowTo Extrude A Polypath in 3D.vl │ ├── HowTo Generate Polygon2DPlus data.vl │ ├── HowTo Intersection of 3D Triangles.vl │ ├── HowTo Render A PolyPath Plane in 3D.vl │ ├── HowTo Render A Polygon Plane in 3D.vl │ ├── HowTo Transform Polygons along 3D Line.vl │ ├── Plane+Extrude Advanced │ │ ├── ExampleTexture_normal.jpg │ │ ├── Explanation 1.Texturing 3D Polygons Basics.vl │ │ ├── Explanation 2.Texturing 3D Polygons Quadrant Map.vl │ │ ├── Explanation 3.Texturing 3D Polygons Square Map.vl │ │ ├── Explanation 4.Texturing 3D Polygons Side Detail.vl │ │ ├── Explanation 5.Texturing 3D Polygons Normal Mapping.vl │ │ ├── HowTo Stride Wireframe Debug tools.vl │ │ └── UVCheckerMap1024_Quadrants.png │ └── PolygonTube Advanced │ │ ├── HowTo 1.Tube UV Mapping.vl │ │ ├── HowTo 2.Tube On Path.vl │ │ ├── HowTo 3.Tube On Path UV Mapping.vl │ │ └── HowTo 4.Tube With Normal Map.vl ├── UnderstandingTriangularExpansionFOV.odg ├── UnderstandingTriangularExpansionFOV.pdf ├── _Introduction │ ├── Explanation Discrete Shapes Concept.vl │ ├── Explanation Polygon vs PolyPath.vl │ ├── HowTo First steps with PolyPath.vl │ └── HowTo First steps with Polygons.vl ├── _PolyPaths │ ├── Compartments │ │ ├── Example Basic UI for drawing PolyPath compartments.vl │ │ ├── Explanation PolyPath Compartments Concept.vl │ │ ├── HowTo Create PolyPath compartments.vl │ │ └── HowTo Extract Compartments from a PolyPath.vl │ ├── Explanation What is Res Scale.vl │ ├── HowTo Difference of two PolyPaths.vl │ ├── HowTo Extract Contours or Edges from Polypaths.vl │ ├── HowTo Find Intersection Points of PolyPaths.vl │ ├── HowTo Find Length of a PolyPath.vl │ ├── HowTo Find Nearest Edge of a Polypath.vl │ ├── HowTo Find if PolyPath Contains Point.vl │ ├── HowTo Intersect two Polypaths.vl │ ├── HowTo Sample a Point on a Polypath with Tangent or Normal.vl │ ├── HowTo Union of two PolyPaths.vl │ └── HowTo XOR two Polypaths.vl └── _Polygons │ ├── HowTo Calculate FOV or Shadows in a Polygon.vl │ ├── HowTo Calculate Winding Direction of a Polygon.vl │ ├── HowTo Create a Polygon from Unordered Points.vl │ ├── HowTo Difference of Two Polygons.vl │ ├── HowTo Find Area of a Polygon.vl │ ├── HowTo Find Intersection of Line and Polygons.vl │ ├── HowTo Find Length of a Polygon.vl │ ├── HowTo Find if Polygon Contains Point.vl │ ├── HowTo Inflate Deflate Offset a Polygon.vl │ ├── HowTo Intersect two Polygons.vl │ ├── HowTo LERP between Polygons.vl │ ├── HowTo Sample a point on a Polygon perimeter.vl │ ├── HowTo Union of two Polygons.vl │ └── HowTo XOR two Polygons.vl └── old └── VL.Stride.MeshPhysics.vl /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: push_nuget 2 | 3 | # on push on main 4 | on: 5 | push: 6 | branches: 7 | - main 8 | paths-ignore: 9 | - README.md 10 | 11 | jobs: 12 | build: 13 | runs-on: windows-latest 14 | steps: 15 | - name: Git Checkout 16 | uses: actions/checkout@main 17 | 18 | - name: Setup Nuget.exe 19 | uses: nuget/setup-nuget@v1 20 | 21 | - name: Publish VL Nuget 22 | uses: vvvv/PublishVLNuget@1.0.29 23 | with: 24 | nuspec: deployment\VL.PolyTools.nuspec 25 | nuget-key: ${{ secrets.NUGET_KEY }} 26 | -------------------------------------------------------------------------------- /.vl/VL.Clipper.vl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/.vl/VL.Clipper.vl.dll -------------------------------------------------------------------------------- /.vl/VL.Clipper2.vl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/.vl/VL.Clipper2.vl.dll -------------------------------------------------------------------------------- /.vl/VL.LibTessDotNet.vl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/.vl/VL.LibTessDotNet.vl.dll -------------------------------------------------------------------------------- /.vl/VL.ParagonClipper.vl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/.vl/VL.ParagonClipper.vl.dll -------------------------------------------------------------------------------- /.vl/VL.PolyTools.vl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/.vl/VL.PolyTools.vl.dll -------------------------------------------------------------------------------- /.vl/Verbs_Skia.vl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/.vl/Verbs_Skia.vl.dll -------------------------------------------------------------------------------- /Clipper License.txt: -------------------------------------------------------------------------------- 1 | //CLIPPER 2 | The Clipper Library (including Delphi, C++ & C# source code, other accompanying code, examples and documentation), hereafter called the "Software", has been released under the following license, terms and conditions: 3 | 4 | Boost Software License - Version 1.0 - August 17th, 2003 5 | http://www.boost.org/LICENSE_1_0.txt 6 | 7 | Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the Software covered by this license to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: 8 | 9 | The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | 13 | 14 | //CLIPPER2 15 | Boost Software License - Version 1.0 - August 17th, 2003 16 | 17 | Permission is hereby granted, free of charge, to any person or organization 18 | obtaining a copy of the software and accompanying documentation covered by 19 | this license (the "Software") to use, reproduce, display, distribute, 20 | execute, and transmit the Software, and to prepare derivative works of the 21 | Software, and to permit third-parties to whom the Software is furnished to 22 | do so, all subject to the following: 23 | 24 | The copyright notices in the Software and this entire statement, including 25 | the above license grant, this restriction and the following disclaimer, 26 | must be included in all copies of the Software, in whole or in part, and 27 | all derivative works of the Software, unless such copies or derivative 28 | works are solely in the form of machine-executable object code generated by 29 | a source language processor. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 34 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 35 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 36 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 37 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Dependencies.txt: -------------------------------------------------------------------------------- 1 | com.angusj.Clipper -Version 6.4.2 2 | https://sourceforge.net/projects/polyclipping/ 3 | https://www.nuget.org/packages/com.angusj.Clipper 4 | credit Angus Johnson, gylee 5 | 6 | 7 | LibTessDotNet -Version 1.1.15 8 | https://github.com/speps/LibTessDotNet 9 | https://www.nuget.org/packages/LibTessDotNet 10 | credit https://github.com/speps/LibTessDotNet/graphs/contributors 11 | 12 | Geometry3Sharp - Version 1.0.324 13 | https://github.com/gradientspace/geometry3Sharp 14 | https://www.nuget.org/packages/geometry3Sharp 15 | 16 | To install dependencies manually 17 | 18 | -go to your grey menu > manage nugets > command line 19 | 20 | nuget install com.angusj.Clipper -Version 6.4.2 21 | nuget install LibTessDotNet -Version 1.1.15 22 | nuget install Geometry3Sharp -Version 1.0.324 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Geometry3Sharp License.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /LibTessDotNet License.txt: -------------------------------------------------------------------------------- 1 | ** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) 2 | ** Copyright (C) 2011 Silicon Graphics, Inc. 3 | ** All Rights Reserved. 4 | ** 5 | ** Permission is hereby granted, free of charge, to any person obtaining a copy 6 | ** of this software and associated documentation files (the "Software"), to deal 7 | ** in the Software without restriction, including without limitation the rights 8 | ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 9 | ** of the Software, and to permit persons to whom the Software is furnished to do so, 10 | ** subject to the following conditions: 11 | ** 12 | ** The above copyright notice including the dates of first publication and either this 13 | ** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be 14 | ** included in all copies or substantial portions of the Software. 15 | ** 16 | ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 17 | ** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 18 | ** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. 19 | ** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 20 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 21 | ** OR OTHER DEALINGS IN THE SOFTWARE. 22 | ** 23 | ** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not 24 | ** be used in advertising or otherwise to promote the sale, use or other dealings in 25 | ** this Software without prior written authorization from Silicon Graphics, Inc. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VL.PolyTools 2 | Tools for working with Polygons and Polypaths in vvvv gamma. 3 | 4 | Polygon = shape made only of lines, Polypath = shape made of lines and curves 5 | 6 | See the helppatches for a more detailed overview 7 | 8 | # To Install 9 | Grey menu (top left)>Manage Nugets>Command Line 10 | 11 | Type 12 | ```nuget install VL.PolyTools``` 13 | 14 | # What kind of things does it do? 15 | 16 | ![image](https://github.com/TobyKLight/VL.PolyTools/assets/4467208/8f598eec-f057-40ab-8c57-2e13ff3787f6) 17 | Interactive Helppatches 18 | 19 | ![PolyTubeStars](https://github.com/TobyKLight/VL.PolyTools/assets/4467208/5986ffa5-9d8d-4c73-aea9-80f3213ac98a) 20 | 21 | Polygon Tube 22 | 23 | 24 | ![NormalMappedTube](https://github.com/TobyKLight/VL.PolyTools/assets/4467208/19301827-0490-49e9-a320-359cd1e0e48a) 25 | 26 | Polygon Tube with normal mapping 27 | 28 | ![LerpDemo](https://github.com/TobyKLight/VL.PolyTools/assets/4467208/e7a47c1c-5f02-45af-bd93-1374cdacf694) 29 | 30 | Lerp between 2D Polygons in 2D and 3D 31 | 32 | ![VL PolyTools FOV Calc](https://user-images.githubusercontent.com/4467208/193471193-00f37121-4291-4f5e-96b8-f6f1b4862b12.gif) 33 | 34 | Visibility from a point inside a polygon 35 | (Using Expanding Triangles method by Francisc Bungiu, Michael Hemmer, John Hershberger, Kan Huang and Alexander Kröller) 36 | 37 | 38 | ![VL PolyTools 3D Extrude](https://user-images.githubusercontent.com/4467208/193471211-3fbd4d82-f38c-4a37-9a2d-0c6f1e720fc5.gif) 39 | 40 | 3D extrusion of Polygons in stride 41 | 42 | 43 | ![VL PolyTools Polypath Union](https://user-images.githubusercontent.com/4467208/193471293-660766b1-8c12-4399-a1cc-a2049c15494b.JPG) 44 | 45 | Union of PolyPaths including internal compartment lines. 46 | 47 | 48 | ![VL PolyTools Cutting A Poly into Compartments](https://user-images.githubusercontent.com/4467208/193478760-e1ad7721-a4ae-4d34-a3ba-d15dc5c67208.gif) 49 | 50 | Cutting a PolyPath into compartments 51 | 52 | ![VL.PolyTools extruded polygon with normal mapping](https://github.com/TobyKLight/VL.PolyTools/assets/4467208/c90eb722-16ab-4c8d-8ff8-117dd71a29ac) 53 | 54 | An extruded Polygon with Normal mapping 55 | 56 | Bonus see included 'SKPathUtils.vl' if you are looking for low level ways to extend SKPaths 57 | 58 | # Dependencies 59 | Made with vvvv Gamma 5.3-0088 60 | 61 | com.angusj.Clipper -Version 6.4.2 62 | 63 | https://sourceforge.net/projects/polyclipping/ 64 | 65 | https://www.nuget.org/packages/com.angusj.Clipper 66 | 67 | credit Angus Johnson, gylee 68 | 69 | 70 | LibTessDotNet 71 | https://github.com/speps/LibTessDotNet 72 | 73 | https://www.nuget.org/packages/LibTessDotNet 74 | 75 | credit https://github.com/speps/LibTessDotNet/graphs/contributors 76 | 77 | Geometry3Sharp 78 | https://github.com/gradientspace/geometry3Sharp 79 | 80 | # Special Thanks 81 | @Untone for help unlocking the SKPath verbs for use in vvvv gamma 82 | 83 | # Version History 84 | 85 | V1.4.1 86 | * Fixed a Polygon2DPlus helpatch 87 | * Added new function RadialSort as a way to generate a polygon from unordered points, in simple cases. 88 | 89 | V1.4.0 90 | * !Breaking Change! Fixed error in the Polygon2DPlus Join method that takes 3D polygon points and a normal 91 | * !Breaking Change! Renamed 'LineSegmentIntersectsBox' to just 'LineIntersectsBox' to make consistent with similar functions 92 | * Added new function LineIntersectsRectangle and helppatch. 93 | * Fixed bug TransformsOnLine where it didn't normalise internal direction vector 94 | * Fixed Bug PolyTubeMesh where it would reverse the direction of 2D data but not 3D data. 95 | * Improved debug out data on PolyTubeMesh 96 | * Added new function and helppatch 'find if points are on a line' 97 | * Added new function and helppatch 'Interpolate points in a triangle' 98 | * Added new function and helppatch 'Calculate normal of a line segment 2d' 99 | 100 | V1.3.0 101 | * !Breaking Changes! Re-categorisation of some nodes into new Line category. Some line related functions may have red nodes. Double click on them, clear their existing associations in the bottom right and search again for the name and you should find the same nodes. 102 | * !Breaking Change! All polytubes need their input 'Polygon2DPlus' types to have heightmode=1 (Y=height). This is now consistent, was 0 on some old helppatches. 103 | * Added 3D Triangle Intersection, see helppatch. 104 | * Exposed RayIntersectsTriangle from Stride.Core.Mathematics 105 | * Added a helppatch for Solving a Triangle in 3D and a node for finding the third point of a triangle if you know some constraints about the first two points. 106 | * Added function for finding a 3D Line segment intersects a box with helppatch 107 | * Added new dependency Geometry3Sharp https://github.com/gradientspace/geometry3Sharp. Currently only using this for a few intersections but has potential to do a lot more in this package. It's Boost 1.0 licence (like clipper). 108 | * Added LinePoints utility drawing function for stride 109 | * Added Plane (Plane) utility drawing function for stride, this takes a Plane mathematical struct as input, however note this has some limitations as the struct is infinite and we are drawing a finite plane. Basically just make it really big. 110 | * Exposed Normal input on LibTessDotNet Triangulation nodes. Triangulation nodes are 2D but it can be necessary to set the face direction in 3D use. See the CalcTubeEndCaps process inside PolyTubes for an example usecase. 111 | * Improved TransformsOnSpline and TransformOnLine nodeset where you specify either ForwardVectors or a single ForwardVector. See the "Tube On Path" helppatch for an explanation. This is less confusing for their usecases where the UpVector of the Spline/Line is the Y axis, and results in less weird singularity twists in tubes. The previous nodes are still included in obsolete category. 112 | 113 | 114 | V1.2.2 115 | * Bugfixes with dependencies 116 | 117 | V1.2.0 118 | * !Breaking Change! Refactored categories for some of the Polygon3D nodes to make it clearer The actual nodes are still the same, you may have to double click red nodes in your apps and retype the names to recreate them. 119 | * !Breaking change! Bugfix on winding direction node. With the calculation method I was using winding direction is potentially flipped in some spaces where Y is inverted. Between Stride and Skia we have a mix of spaces where this might be true. There is now a 'YIncreasesDownward' pin on the WindingDirection and ForceClockwise/CounterClockwise nodes. Check the helppatch 'HowTo Calculate Winding Direction Of A Polygon' 120 | * New Polygon2DPlus datatype, for a 2D polygon that is effectively annotated with a third dimension. The underlying 2D polygon can still be accessed and manipulated. 121 | * Rearranged helppatches to make general geometric functions clearer 122 | * Added sample a point on a line 123 | * New 3D functions for dynamic geometry to make 'polygon tubes', where each element of the tube can have a different polygon face. See the new helppatches in 3D category. 124 | * LERP (morph) between two polygons, see HowTo LERP between Polygons helppatch 125 | * Added sample a point on a polygon perimeter (previously only for PolyPath) 126 | * Added DrawPolygonRadialLines to draw radial lines between origin and points 127 | * Added DrawPolygonPointLabels to draw text labels at each point on a polygon 128 | * Improved the TriangleContainsPoint helppatch 129 | * Aspect changed on PolygonVisibility nodes to advanced. 130 | * Added PointCount operation to Polygon datatype 131 | 132 | V1.1.3 133 | * Removed stride physics Raycast function now there is a native one shipped with vvvv 5.3 134 | 135 | V1.1.2 136 | * PolygonExtrude now has an additional 2D UV scaling option for the sides of the extrude. (Was U only in last release) 137 | 138 | V1.1.1 139 | * Rearranged and expanded the helppatches for PolygonPlane and PolygonExtrusions 140 | * Added option to generate tangents, needed for normal (bump) mapping 141 | * Added many options for texture mapping the 3D polygon objects 142 | * For those planning to make their own dynamic meshes or models in stride the PolygonPlane and PolygonExtrusion patches are reasonably well documented examples, including with UV coordinates, tangents and bounding boxes. 143 | * Added some tools for debugging stride entities as wireframe, vertices, tangents etc 144 | 145 | V1.1.0 146 | * Tested in vvvv gamma 5.0-stable 147 | * Added UV map to the ExtrudedPolygon. This is not intended for every usecase but should be a good starting point. 148 | * Fixed another bug with bounding boxes of PolygonPlane and ExtrudedPolygons that caused incorrect culling. 149 | * Minor breaking change due to new signature of PolygonPlane and ExtrudedPolygon nodes (so they go red). Just double click on them and recreate them and you should be good to go. 150 | 151 | V1.0.10 152 | * Minor improvement to 3D polygon plane and extrusion nodes and helppatch 153 | * Can set custom bounding box depth for the 3D polygon plane 154 | 155 | V1.0.9 156 | * Stride dependencies moved to separate document VL.PolyTools.Stride 157 | 158 | V1.0.8 159 | * Ensured compatibility with vvvv 2021.4.11-1313 (RC4) 160 | * Fxed some helppatch windows potentially not opening 161 | 162 | V1.0.7 163 | 164 | * Made the bugfix from V1.0.6 optional as 'Allow Perfect Diagonals' on 'HowTo Find Grid Cells Along A Line' 165 | 166 | V1.0.6 167 | 168 | * Fixed bug in line intersects grid calculation 169 | 170 | V1.0.5 171 | 172 | * Added second 'Does Line Intersect Grid cells' operation including all cells. See helpatch 'HowTo Find Grid Cells Along A Line' 173 | 174 | 175 | V1.0.4 176 | 177 | * Added function for finding grid cells along a line based on Bresenhams Line Algorithm. See Helppatch 'HowTo Find Grid Cells Along A Line' 178 | * Added function for generating square-ish layout grids using a single count input. I say square-ish because it handles cases where the input count does not have a whole square root and a partial row/column might be needed. See HelpPatch 'HowTo Generate a nearly Square GridSpread' 179 | 180 | 181 | V1.0.3 182 | 183 | * Helppatch improvements 184 | * Consistent GetBounds method for Polygon and PolyPath 185 | * Added Splitting Circles Example patch kindly contributed by ██ ██ 186 | * Added option to Compartments to avoid including outer stroke 187 | 188 | 189 | 190 | # License 191 | 192 | Boost 1.0 193 | -------------------------------------------------------------------------------- /VL.Supplement.Stride.DynamicMeshWithTangents.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 9 12 | Comment 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 9 21 | Link 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 9 30 | Comment 31 | 32 | 33 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 9 162 | Comment 163 | 164 | 165 | 166 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | -------------------------------------------------------------------------------- /assets/UVCheckerMap1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/assets/UVCheckerMap1024.png -------------------------------------------------------------------------------- /assets/UVCheckerMap1024_ExtrudedPolygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/assets/UVCheckerMap1024_ExtrudedPolygon.png -------------------------------------------------------------------------------- /deployment/VL.PolyTools.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | VL.PolyTools 5 | 1.4.1 6 | VL.PolyTools 7 | TobyKLight 8 | TobyKLight 9 | https://github.com/TobyKLight/VL.PolyTools 10 | false 11 | Tools for working with Polygons and Polypaths in vvvv Gamma 12 | Work with discrete 2D shapes with and without curves 13 | VL, vvvv, polygon, clipping, 2D 14 | BSL-1.0 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Find Intersection of Lines.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | Low 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 9 159 | Comment 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Find Shortest Distance Between Angles.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | Low 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 9 148 | Comment 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 9 180 | Comment 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Find bounds of a Point Cloud.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | High 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 9 190 | Comment 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 9 249 | Comment 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Find if 2D Line Intersects Rectangle.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | Toggle 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 9 151 | Comment 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Find if Triangle Contains Point.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -0.37, -0.56 51 | -0.02, 0.2 52 | 0.6, -0.22 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | Low 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 9 213 | Comment 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Generate a nearly Square GridSpread.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 9 85 | Comment 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | High 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 9 115 | Comment 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 9 124 | Comment 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | Toggle 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | Toggle 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 9 151 | Comment 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 9 160 | Comment 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 9 169 | Comment 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 9 178 | Link 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | -------------------------------------------------------------------------------- /help/General Geometry/HowTo Sample a point on a line.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | Toggle 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | High 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 9 152 | Comment 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | High 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 9 182 | Comment 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | High 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 9 205 | Comment 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Leather_Padded_001_ambientOcclusion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Leather_Padded_001/Leather_Padded_001_ambientOcclusion.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Leather_Padded_001_basecolor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Leather_Padded_001/Leather_Padded_001_basecolor.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Leather_Padded_001_height.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Leather_Padded_001/Leather_Padded_001_height.png -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Leather_Padded_001_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Leather_Padded_001/Leather_Padded_001_normal.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Leather_Padded_001_roughness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Leather_Padded_001/Leather_Padded_001_roughness.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Material_1889.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Leather_Padded_001/Material_1889.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Leather_Padded_001/Source.txt: -------------------------------------------------------------------------------- 1 | https://3dtextures.me/about/ -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Material_1442.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Material_1442.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_ambientOcclusion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_ambientOcclusion.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_basecolor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_basecolor.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_height.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_height.png -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_mask.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_mask.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_normal.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_roughness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/Plastic_Mesh_001/Plastic_Mesh_001_roughness.jpg -------------------------------------------------------------------------------- /help/HelpTextures/Plastic_Mesh_001/Source.txt: -------------------------------------------------------------------------------- 1 | https://3dtextures.me/about/ -------------------------------------------------------------------------------- /help/HelpTextures/UVCheckerMap1024_Quadrants.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/HelpTextures/UVCheckerMap1024_Quadrants.png -------------------------------------------------------------------------------- /help/Stride 3D/Plane+Extrude Advanced/ExampleTexture_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/Stride 3D/Plane+Extrude Advanced/ExampleTexture_normal.jpg -------------------------------------------------------------------------------- /help/Stride 3D/Plane+Extrude Advanced/UVCheckerMap1024_Quadrants.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/Stride 3D/Plane+Extrude Advanced/UVCheckerMap1024_Quadrants.png -------------------------------------------------------------------------------- /help/UnderstandingTriangularExpansionFOV.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/UnderstandingTriangularExpansionFOV.odg -------------------------------------------------------------------------------- /help/UnderstandingTriangularExpansionFOV.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TobyKLight/VL.PolyTools/204b52ef69536be70ed42d5ee4834013c1d8badc/help/UnderstandingTriangularExpansionFOV.pdf -------------------------------------------------------------------------------- /help/_Introduction/Explanation Polygon vs PolyPath.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 22 23 | Comment 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 9 32 | Comment 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 9 41 | Comment 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 22 50 | Comment 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 22 59 | Comment 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 9 68 | Comment 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 9 77 | Comment 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 9 86 | Comment 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /help/_PolyPaths/Compartments/Explanation PolyPath Compartments Concept.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 9 23 | Comment 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 9 32 | Comment 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 9 41 | Comment 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 9 50 | Comment 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 22 59 | Comment 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /help/_PolyPaths/Explanation What is Res Scale.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 9 40 | Comment 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 9 55 | Comment 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 9 64 | Link 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 9 73 | Comment 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 9 118 | Comment 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /help/_PolyPaths/HowTo Find if PolyPath Contains Point.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | Bang 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | -------------------------------------------------------------------------------- /help/_Polygons/HowTo Find Length of a Polygon.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | High 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | Toggle 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | Toggle 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 9 146 | Comment 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /old/VL.Stride.MeshPhysics.vl: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | false 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 9 47 | Comment 48 | 49 | 50 | 51 | 52 | 57 | 58 | 59 | 60 | 61 | 62 | false 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 9 131 | Comment 132 | 133 | 134 | 135 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | --------------------------------------------------------------------------------