├── .gitignore ├── README.md ├── data └── README ├── distribution ├── ComputationalGeometry-1 │ ├── INSTALL.txt │ ├── download │ │ ├── ComputationalGeometry-1.txt │ │ ├── ComputationalGeometry-1.zip │ │ ├── ComputationalGeometry.txt │ │ └── ComputationalGeometry.zip │ ├── examples │ │ ├── IsoContourExample │ │ │ └── IsoContourExample.pde │ │ ├── IsoSkeletonExample │ │ │ └── IsoSkeletonExample.pde │ │ ├── IsoSurfaceExample │ │ │ └── IsoSurfaceExample.pde │ │ └── IsoWrapExample │ │ │ └── IsoWrapExample.pde │ ├── index.html │ ├── reference │ │ ├── ComputationalGeometry │ │ │ ├── IsoContour.html │ │ │ ├── IsoSkeleton.html │ │ │ ├── IsoSurface.html │ │ │ ├── IsoWrap.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── resources │ │ │ └── inherit.gif │ │ └── stylesheet.css │ └── stylesheet.css ├── ComputationalGeometry-2 │ ├── INSTALL.txt │ ├── download │ │ ├── ComputationalGeometry-2.txt │ │ ├── ComputationalGeometry-2.zip │ │ ├── ComputationalGeometry.txt │ │ └── ComputationalGeometry.zip │ ├── examples │ │ ├── IsoContourExample │ │ │ └── IsoContourExample.pde │ │ ├── IsoSkeletonExample │ │ │ └── IsoSkeletonExample.pde │ │ ├── IsoSurfaceExample │ │ │ └── IsoSurfaceExample.pde │ │ └── IsoWrapExample │ │ │ └── IsoWrapExample.pde │ ├── index.html │ ├── reference │ │ ├── ComputationalGeometry │ │ │ ├── IsoContour.html │ │ │ ├── IsoSkeleton.html │ │ │ ├── IsoSurface.html │ │ │ ├── IsoWrap.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-frame.html │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── quickhull3d │ │ │ ├── InternalErrorException.html │ │ │ ├── Point3d.html │ │ │ ├── QuickHull3D.html │ │ │ ├── QuickHull3DTest.html │ │ │ ├── SimpleExample.html │ │ │ ├── Vector3d.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── resources │ │ │ └── inherit.gif │ │ ├── serialized-form.html │ │ └── stylesheet.css │ └── stylesheet.css └── ComputationalGeometry-3 │ ├── README.md │ ├── download │ ├── ComputationalGeometry-3.txt │ ├── ComputationalGeometry-3.zip │ ├── ComputationalGeometry.txt │ └── ComputationalGeometry.zip │ ├── examples │ ├── IsoContourExample │ │ └── IsoContourExample.pde │ ├── IsoSkeletonExample │ │ └── IsoSkeletonExample.pde │ ├── IsoSurfaceExample │ │ └── IsoSurfaceExample.pde │ └── IsoWrapExample │ │ └── IsoWrapExample.pde │ ├── index.html │ ├── reference │ ├── ComputationalGeometry │ │ ├── IsoContour.html │ │ ├── IsoSkeleton.html │ │ ├── IsoSurface.html │ │ ├── IsoWrap.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── quickhull3d │ │ ├── InternalErrorException.html │ │ ├── Point3d.html │ │ ├── QuickHull3D.html │ │ ├── QuickHull3DTest.html │ │ ├── SimpleExample.html │ │ ├── Vector3d.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ ├── stylesheet.css │ └── template │ │ └── library │ │ ├── HelloLibrary.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ └── stylesheet.css ├── examples ├── IsoContourExample │ └── IsoContourExample.pde ├── IsoSkeletonExample │ └── IsoSkeletonExample.pde ├── IsoSurfaceExample │ └── IsoSurfaceExample.pde ├── IsoWrapExample │ └── IsoWrapExample.pde └── README ├── lib └── README ├── license.txt ├── resources ├── README.md ├── build.properties ├── build.xml ├── code │ ├── ExampleTaglet.class │ ├── ExampleTaglet.java │ ├── ant-contrib-1.0b3.jar │ └── doc.sh ├── library.properties └── stylesheet.css ├── src ├── ComputationalGeometry │ ├── IsoContour.java │ ├── IsoSkeleton.java │ ├── IsoSurface.java │ └── IsoWrap.java ├── quickhull3d │ ├── Face.java │ ├── FaceList.java │ ├── HalfEdge.java │ ├── InternalErrorException.java │ ├── Point3d.java │ ├── QhullTest.java │ ├── QuickHull3D.java │ ├── QuickHull3DTest.java │ ├── SimpleExample.java │ ├── Vector3d.java │ ├── Vertex.java │ └── VertexList.java └── template │ └── library │ └── HelloLibrary.java └── web ├── index.html └── stylesheet.css /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /data/README: -------------------------------------------------------------------------------- 1 | the data folder: 2 | If your Library is using files like images, sound files, 3 | any data file, etc., put them into the data folder. 4 | When coding your Library you can use processing's internal loading 5 | functions like loadImage(), loadStrings(), etc. to load files 6 | located inside the data folder into your Library. 7 | 8 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/INSTALL.txt: -------------------------------------------------------------------------------- 1 | How to install library ComputationalGeometry 2 | 3 | 4 | Install with the "Add Library..." tool 5 | 6 | New for Processing 2.0: Add contributed libraries by selecting "Add Library..." 7 | from the "Import Library..." submenu within the Sketch menu. Not all available 8 | libraries have been converted to show up in this menu. If a library isn't there, 9 | it will need to be installed manually by following the instructions below. 10 | 11 | 12 | Manual Install 13 | 14 | Contributed libraries may be downloaded separately and manually placed within 15 | the "libraries" folder of your Processing sketchbook. To find (and change) the 16 | Processing sketchbook location on your computer, open the Preferences window 17 | from the Processing application (PDE) and look for the "Sketchbook location" 18 | item at the top. 19 | 20 | Copy the contributed library's folder into the "libraries" folder at this 21 | location. You will need to create the "libraries" folder if this is your first 22 | contributed library. 23 | 24 | By default the following locations are used for your sketchbook folder: 25 | For Mac users, the sketchbook folder is located inside ~/Documents/Processing. 26 | For Windows users, the sketchbook folder is located inside 27 | 'My Documents'/Processing. 28 | 29 | The folder structure for library ComputationalGeometry should be as follows: 30 | 31 | Processing 32 | libraries 33 | ComputationalGeometry 34 | examples 35 | library 36 | ComputationalGeometry.jar 37 | reference 38 | src 39 | 40 | Some folders like "examples" or "src" might be missing. After library 41 | ComputationalGeometry has been successfully installed, restart the Processing 42 | application. 43 | 44 | 45 | If you're having trouble, have a look at the Processing Wiki for more 46 | information: http://wiki.processing.org/w/How_to_Install_a_Contributed_Library 47 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/download/ComputationalGeometry-1.txt: -------------------------------------------------------------------------------- 1 | name = ComputationalGeometry 2 | authorList = [Mark Collins & Toru Hasegawa](http://proxyarch.com) 3 | url = http://thecloudlab.org/processing/library.html 4 | category = Geometry 5 | sentence = A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons. 6 | paragraph = Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling. 7 | version = 1 8 | prettyVersion = 1.0 9 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/download/ComputationalGeometry-1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-1/download/ComputationalGeometry-1.zip -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/download/ComputationalGeometry.txt: -------------------------------------------------------------------------------- 1 | name = ComputationalGeometry 2 | authorList = [Mark Collins & Toru Hasegawa](http://proxyarch.com) 3 | url = http://thecloudlab.org/processing/library.html 4 | category = Geometry 5 | sentence = A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons. 6 | paragraph = Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling. 7 | version = 1 8 | prettyVersion = 1.0 9 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/download/ComputationalGeometry.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-1/download/ComputationalGeometry.zip -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/examples/IsoContourExample/IsoContourExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Example: IsoContour 3 | ------------------------------------*/ 4 | 5 | import ComputationalGeometry.*; 6 | IsoContour iso; 7 | 8 | void setup(){ 9 | 10 | size(250,250,P3D); 11 | 12 | // Creating the Isocontour 13 | iso = new IsoContour(this, new PVector(0,0), new PVector(width,height), 10,10); 14 | 15 | // Adding Meta-blobs to the Isocontour 16 | randomSeed(1); 17 | for(int i=0; i<20; i++){ 18 | PVector pt = new PVector( random(width), random(height), 0 ); 19 | iso.addPoint(pt); 20 | } 21 | } 22 | void draw(){ 23 | 24 | background(220); 25 | 26 | // Plot Voxel Space 27 | noFill(); 28 | stroke(0,50); 29 | iso.plotGrid(); 30 | 31 | // Plot Contour at a Threshold 32 | fill(255,200); 33 | noStroke(); 34 | float threshold = abs(sin(frameCount/100.0f)) * .01; 35 | iso.plot( threshold); // you must provide a threshold to render the iso contour 36 | } 37 | 38 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/examples/IsoSkeletonExample/IsoSkeletonExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Example: IsoContour 3 | ------------------------------------*/ 4 | 5 | import ComputationalGeometry.*; 6 | IsoSkeleton skeleton; 7 | 8 | 9 | void setup() { 10 | size(1280, 720, P3D); 11 | 12 | // Create iso-skeleton 13 | skeleton = new IsoSkeleton(); 14 | 15 | // Create points to make the network 16 | PVector[] pts = new PVector[100]; 17 | for (int i=0; i 3 | 4 | 5 | ComputationalGeometry 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 25 | 26 | 38 | 39 |
40 | 41 |
42 |

ComputationalGeometry

43 |

44 | A library by Mark Collins & Toru Hasegawa for the Processing programming environment.
45 | Last update, 07/23/2013. 46 |

47 |

48 | A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons.
49 | Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling.
50 | Feel free to replace this paragraph with a description of the library.
51 | Contributed libraries are developed, documented, and maintained by members of the Processing community. Further directions are included with each library. For feedback and support, please post to the Discourse. We strongly encourage all libraries to be open source, but not all of them are. 52 |

53 |
54 | 55 | 56 | 57 |
58 |

Download

59 |

60 | Download ComputationalGeometry version 1.0 (1) in 61 | .zip format. 62 |

63 |

Installation

64 |

65 | Unzip and put the extracted ComputationalGeometry folder into the libraries folder of your Processing sketches. Reference and examples are included in the ComputationalGeometry folder. 66 |

67 |
68 | 69 | 70 |
71 |

Keywords. 3D, geometry, surface, contour, iso, polygon, poly, generative, skeleton, wrap, hull, boundary, Proxy

72 |

Reference. Have a look at the javadoc reference here. A copy of the reference is included in the .zip as well.

73 |

Source. The source code of ComputationalGeometry is available at GitHub, and its repository can be browsed here.

74 |
75 | 76 | 77 |
78 |

Examples

79 |

Find a list of examples in the current distribution of ComputationalGeometry, or have a look at them by following the links below.

80 | 83 |
84 | 85 | 86 |
87 |

Tested

88 |

89 | 90 | Platform osx 91 | 92 | 93 |
Processing 2.0 94 | 95 | 96 |
Dependencies ? 97 |

98 |
99 | 100 | 101 | 102 | 114 | 115 | 116 | 121 | 122 | 123 | 127 | 128 | 129 |
130 |
131 | 132 | 135 |
136 | 137 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/ComputationalGeometry/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ComputationalGeometry (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ComputationalGeometry 20 | 21 | 22 | 33 | 34 |
23 | Classes  24 | 25 |
26 | IsoContour 27 |
28 | IsoSkeleton 29 |
30 | IsoSurface 31 |
32 | IsoWrap
35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | All Classes 20 |
21 | 22 | 23 | 24 | 33 | 34 |
IsoContour 25 |
26 | IsoSkeleton 27 |
28 | IsoSurface 29 |
30 | IsoWrap 31 |
32 |
35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | All Classes 20 |
21 | 22 | 23 | 24 | 33 | 34 |
IsoContour 25 |
26 | IsoSkeleton 27 |
28 | IsoSurface 29 |
30 | IsoWrap 31 |
32 |
35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Constant Field Values (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 22 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 49 | 52 | 53 | 54 | 55 | 58 | 74 | 75 |
50 | 51 |
76 | 77 | 78 | 79 |
80 |
81 |

82 | Constant Field Values

83 |
84 |
85 | Contents 87 | 88 |
89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 109 | 112 | 113 | 114 | 115 | 118 | 134 | 135 |
110 | 111 |
136 | 137 | 138 | 139 |
140 | Processing library ComputationalGeometry by Mark Collins & Toru Hasegawa. (C) 2013 141 | 142 | 143 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Deprecated List (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 22 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 49 | 52 | 53 | 54 | 55 | 58 | 74 | 75 |
50 | 51 |
76 | 77 | 78 | 79 |
80 |
81 |

82 | Deprecated API

83 |
84 |
85 | Contents 87 | 88 |
89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 109 | 112 | 113 | 114 | 115 | 118 | 134 | 135 |
110 | 111 |
136 | 137 | 138 | 139 |
140 | Processing library ComputationalGeometry by Mark Collins & Toru Hasegawa. (C) 2013 141 | 142 | 143 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Javadocs: ComputationalGeometry 8 | 9 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | <H2> 62 | Frame Alert</H2> 63 | 64 | <P> 65 | This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. 66 | <BR> 67 | Link to<A HREF="ComputationalGeometry/package-summary.html">Non-frame version.</A> 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/package-list: -------------------------------------------------------------------------------- 1 | ComputationalGeometry 2 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/resources/inherit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-1/reference/resources/inherit.gif -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/reference/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* Javadoc style sheet */ 2 | /* Define colors, fonts and other style attributes here to override the defaults */ 3 | /* processingLibs style by andreas schlegel, sojamo */ 4 | 5 | 6 | body { 7 | margin : 0; 8 | padding : 0; 9 | padding-left : 10px; 10 | padding-right : 8px; 11 | background-color : #FFFFFF; 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.7em; 15 | font-weight : normal; 16 | line-height : normal; 17 | margin-bottom:30px; 18 | } 19 | 20 | 21 | 22 | 23 | /* Headings */ 24 | h1, h2, h3, h4, h5, th { 25 | font-family :Arial, Helvetica, sans-serif; 26 | font-size:1.2em; 27 | } 28 | 29 | 30 | p { 31 | font-size : 1em; 32 | width:80%; 33 | } 34 | 35 | pre, code { 36 | font-family : "Courier New", Courier, monospace; 37 | font-size : 12px; 38 | line-height : normal; 39 | } 40 | 41 | 42 | 43 | table { 44 | border:0; 45 | margin-bottom:10px; 46 | margin-top:10px; 47 | } 48 | 49 | 50 | tr, td { 51 | border-top: 0px solid; 52 | border-left: 0px solid; 53 | padding-top:8px; 54 | padding-bottom:8px; 55 | } 56 | 57 | 58 | 59 | hr { 60 | border:0; 61 | height:1px; 62 | padding:0; 63 | margin:0; 64 | margin-bottom:4px; 65 | 66 | } 67 | 68 | 69 | 70 | dd, th, td, font { 71 | font-size:1.0em; 72 | line-height:1.0em; 73 | } 74 | 75 | 76 | 77 | dt { 78 | margin-bottom:0px; 79 | } 80 | 81 | 82 | 83 | dd { 84 | margin-top:2px; 85 | margin-bottom:4px; 86 | } 87 | 88 | 89 | 90 | a { 91 | text-decoration: underline; 92 | font-weight: normal; 93 | } 94 | 95 | a:hover, 96 | a:active { 97 | text-decoration: underline; 98 | font-weight: normal; 99 | } 100 | 101 | a:visited, 102 | a:link:visited { 103 | text-decoration: underline; 104 | font-weight: normal; 105 | } 106 | 107 | 108 | img { 109 | border: 0px solid #000000; 110 | } 111 | 112 | 113 | 114 | /* Navigation bar fonts */ 115 | .NavBarCell1 { 116 | border:0; 117 | } 118 | 119 | .NavBarCell1Rev { 120 | border:0; 121 | } 122 | 123 | .NavBarFont1 { 124 | font-family: Arial, Helvetica, sans-serif; 125 | font-size:1.1em; 126 | } 127 | 128 | 129 | .NavBarFont1 b { 130 | font-weight:normal; 131 | } 132 | 133 | 134 | 135 | .NavBarFont1:after, .NavBarFont1Rev:after { 136 | font-weight:normal; 137 | content: " \\"; 138 | } 139 | 140 | 141 | .NavBarFont1Rev { 142 | font-family: Arial, Helvetica, sans-serif; 143 | font-size:1.1em; 144 | } 145 | 146 | .NavBarFont1Rev b { 147 | font-family: Arial, Helvetica, sans-serif; 148 | font-size:1.1em; 149 | font-weight:normal; 150 | } 151 | 152 | .NavBarCell2 { 153 | font-family: Arial, Helvetica, sans-serif; 154 | } 155 | 156 | .NavBarCell3 { 157 | font-family: Arial, Helvetica, sans-serif; 158 | } 159 | 160 | 161 | 162 | font.FrameItemFont { 163 | font-family: Helvetica, Arial, sans-serif; 164 | font-size:1.1em; 165 | line-height:1.1em; 166 | } 167 | 168 | font.FrameHeadingFont { 169 | font-family: Helvetica, Arial, sans-serif; 170 | line-height:32px; 171 | } 172 | 173 | /* Font used in left-hand frame lists */ 174 | .FrameTitleFont { 175 | font-family: Helvetica, Arial, sans-serif 176 | } 177 | 178 | 179 | .toggleList { 180 | padding:0; 181 | margin:0; 182 | margin-top:12px; 183 | } 184 | 185 | .toggleList dt { 186 | font-weight:bold; 187 | font-size:12px; 188 | font-family:arial,sans-serif; 189 | padding:0px; 190 | margin:10px 0px 10px 0px; 191 | } 192 | 193 | .toggleList dt span { 194 | font-family: monospace; 195 | padding:0; 196 | margin:0; 197 | } 198 | 199 | 200 | .toggleList dd { 201 | margin:0; 202 | padding:0; 203 | } 204 | 205 | html.isjs .toggleList dd { 206 | display: none; 207 | } 208 | 209 | .toggleList pre { 210 | padding: 4px 4px 4px 4px; 211 | } 212 | 213 | 214 | 215 | 216 | 217 | /* COLORS */ 218 | 219 | pre, code { 220 | color: #000000; 221 | } 222 | 223 | 224 | body { 225 | color : #333333; 226 | background-color :#FFFFFF; 227 | } 228 | 229 | 230 | h1, h2, h3, h4, h5, h6 { 231 | color:#555; 232 | } 233 | 234 | a, 235 | .toggleList dt { 236 | color: #1a7eb0; 237 | } 238 | 239 | a:hover, 240 | a:active { 241 | color: #1a7eb0; 242 | } 243 | 244 | a:visited, 245 | a:link:visited { 246 | color: #1a7eb0; 247 | } 248 | 249 | td,tr { 250 | border-color: #999999; 251 | } 252 | 253 | hr { 254 | color:#999999; 255 | background:#999999; 256 | } 257 | 258 | 259 | .TableHeadingColor { 260 | background: #dcdcdc; 261 | color: #555; 262 | } 263 | 264 | 265 | .TableSubHeadingColor { 266 | background: #EEEEFF 267 | } 268 | 269 | .TableRowColor { 270 | background: #FFFFFF 271 | } 272 | 273 | 274 | .NavBarCell1 { 275 | background-color:#dcdcdc; 276 | color:#000; 277 | } 278 | 279 | .NavBarCell1 a { 280 | color:#333; 281 | } 282 | 283 | 284 | .NavBarCell1Rev { 285 | background-color:transparent; 286 | } 287 | 288 | .NavBarFont1 { 289 | color:#333; 290 | } 291 | 292 | 293 | .NavBarFont1Rev { 294 | color:#fff; 295 | } 296 | 297 | .NavBarCell2 { 298 | background-color:#999; 299 | } 300 | 301 | .NavBarCell2 a { 302 | color:#fff; 303 | } 304 | 305 | 306 | 307 | .NavBarCell3 { 308 | background-color:#dcdcdc; 309 | } 310 | 311 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-1/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* processingLibs style by andreas schlegel, sojamo. */ 2 | 3 | 4 | * { 5 | margin:0; 6 | padding:0; 7 | border:0; 8 | } 9 | 10 | 11 | body { 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.70em; 15 | font-weight : normal; 16 | line-height : normal; 17 | } 18 | 19 | 20 | 21 | #container { 22 | margin-left:64px; 23 | background-color:#fff; 24 | } 25 | 26 | #header { 27 | float:left; 28 | padding-top:24px; 29 | padding-bottom:48px; 30 | } 31 | 32 | #menu { 33 | margin-top:16px; 34 | float:left; 35 | margin-bottom:64px; 36 | } 37 | 38 | 39 | #about, 40 | #download, 41 | #examples, 42 | #demos, 43 | #misc { 44 | width:480px; 45 | float:left; 46 | margin-right:24px; 47 | } 48 | 49 | 50 | #resources, #info { 51 | width:320px; 52 | float:left; 53 | } 54 | 55 | 56 | .clear { 57 | clear:both; 58 | } 59 | 60 | #footer { 61 | margin-top:300px; 62 | height:20px; 63 | margin-bottom:32px; 64 | } 65 | 66 | 67 | ul { 68 | list-style:none; 69 | padding:0; 70 | margin:0; 71 | } 72 | 73 | 74 | #menu ul li, #subMenu ul li { 75 | float:left; 76 | padding-right:6px; 77 | } 78 | 79 | 80 | 81 | 82 | 83 | 84 | /* Headings */ 85 | 86 | h1 { 87 | font-size:2em; 88 | font-weight:normal; 89 | } 90 | 91 | 92 | h2, h3, h4, h5, th { 93 | font-size:1.3em; 94 | font-weight:normal; 95 | margin-bottom:4px; 96 | } 97 | 98 | 99 | 100 | p { 101 | font-size:1em; 102 | width:90%; 103 | margin-bottom:32px; 104 | } 105 | 106 | 107 | pre, code { 108 | font-family:"Courier New", Courier, monospace; 109 | font-size:1em; 110 | line-height:normal; 111 | } 112 | 113 | 114 | 115 | 116 | hr { 117 | border:0; 118 | height:1px; 119 | margin-bottom:24px; 120 | } 121 | 122 | 123 | a { 124 | text-decoration: underline; 125 | font-weight: normal; 126 | } 127 | 128 | 129 | a:hover, 130 | a:active { 131 | text-decoration: underline; 132 | font-weight: normal; 133 | } 134 | 135 | 136 | a:visited, 137 | a:link:visited { 138 | text-decoration: underline; 139 | font-weight: normal; 140 | } 141 | 142 | 143 | 144 | img { 145 | border: 0px solid #000000; 146 | } 147 | 148 | 149 | 150 | 151 | 152 | /* COLORS */ 153 | 154 | 155 | body { 156 | color : #333; 157 | background-color :#fff; 158 | } 159 | 160 | 161 | #header { 162 | background-color:#fff; 163 | color:#333; 164 | } 165 | 166 | 167 | 168 | h1, h2, h3, h4, h5, h6 { 169 | color:#666; 170 | } 171 | 172 | 173 | pre, code { 174 | color: #000000; 175 | } 176 | 177 | 178 | a,strong { 179 | color: #333; 180 | } 181 | 182 | 183 | a:hover, 184 | a:active { 185 | color: #333; 186 | } 187 | 188 | 189 | a:visited, 190 | a:link:visited { 191 | color: #333; 192 | } 193 | 194 | 195 | #footer, #menu { 196 | background-color:#fff; 197 | color:#333; 198 | } 199 | 200 | 201 | #footer a, #menu a { 202 | color:#333; 203 | } 204 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/INSTALL.txt: -------------------------------------------------------------------------------- 1 | How to install library ComputationalGeometry 2 | 3 | 4 | Install with the "Add Library..." tool 5 | 6 | New for Processing 2.0: Add contributed libraries by selecting "Add Library..." 7 | from the "Import Library..." submenu within the Sketch menu. Not all available 8 | libraries have been converted to show up in this menu. If a library isn't there, 9 | it will need to be installed manually by following the instructions below. 10 | 11 | 12 | Manual Install 13 | 14 | Contributed libraries may be downloaded separately and manually placed within 15 | the "libraries" folder of your Processing sketchbook. To find (and change) the 16 | Processing sketchbook location on your computer, open the Preferences window 17 | from the Processing application (PDE) and look for the "Sketchbook location" 18 | item at the top. 19 | 20 | Copy the contributed library's folder into the "libraries" folder at this 21 | location. You will need to create the "libraries" folder if this is your first 22 | contributed library. 23 | 24 | By default the following locations are used for your sketchbook folder: 25 | For Mac users, the sketchbook folder is located inside ~/Documents/Processing. 26 | For Windows users, the sketchbook folder is located inside 27 | 'My Documents'/Processing. 28 | 29 | The folder structure for library ComputationalGeometry should be as follows: 30 | 31 | Processing 32 | libraries 33 | ComputationalGeometry 34 | examples 35 | library 36 | ComputationalGeometry.jar 37 | reference 38 | src 39 | 40 | Some folders like "examples" or "src" might be missing. After library 41 | ComputationalGeometry has been successfully installed, restart the Processing 42 | application. 43 | 44 | 45 | If you're having trouble, have a look at the Processing Wiki for more 46 | information: http://wiki.processing.org/w/How_to_Install_a_Contributed_Library 47 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/download/ComputationalGeometry-2.txt: -------------------------------------------------------------------------------- 1 | name = ComputationalGeometry 2 | authorList = [Mark Collins & Toru Hasegawa](http://proxyarch.com) 3 | url = http://thecloudlab.org/processing/library.html 4 | category = Geometry 5 | sentence = A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons. 6 | paragraph = Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling. 7 | version = 2 8 | prettyVersion = 2 9 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/download/ComputationalGeometry-2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-2/download/ComputationalGeometry-2.zip -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/download/ComputationalGeometry.txt: -------------------------------------------------------------------------------- 1 | name = ComputationalGeometry 2 | authorList = [Mark Collins & Toru Hasegawa](http://proxyarch.com) 3 | url = http://thecloudlab.org/processing/library.html 4 | category = Geometry 5 | sentence = A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons. 6 | paragraph = Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling. 7 | version = 2 8 | prettyVersion = 2 9 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/download/ComputationalGeometry.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-2/download/ComputationalGeometry.zip -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/examples/IsoContourExample/IsoContourExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Library: ComputationalGeometry 3 | By: Mark Collins & Toru Hasegawa 4 | Example: IsoContour 5 | 6 | Creates a 2D isometric contour, 7 | based on a series of random points. 8 | ------------------------------------*/ 9 | 10 | import ComputationalGeometry.*; 11 | IsoContour iso; 12 | 13 | void setup(){ 14 | 15 | size(250,250,P3D); 16 | 17 | // Creating the Isocontour 18 | iso = new IsoContour(this, new PVector(0,0), new PVector(width,height), 10,10); 19 | 20 | // Adding Meta-blobs to the Isocontour 21 | randomSeed(1); 22 | for(int i=0; i<20; i++){ 23 | PVector pt = new PVector( random(width), random(height), 0 ); 24 | iso.addPoint(pt); 25 | } 26 | } 27 | void draw(){ 28 | 29 | background(220); 30 | 31 | // Plot Voxel Space 32 | noFill(); 33 | stroke(0,50); 34 | iso.plotGrid(); 35 | 36 | // Plot Contour at a Threshold 37 | fill(255,200); 38 | noStroke(); 39 | float threshold = abs(sin(frameCount/100.0f)) * .01; 40 | iso.plot( threshold); // you must provide a threshold to render the iso contour 41 | } 42 | 43 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/examples/IsoSkeletonExample/IsoSkeletonExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Library: ComputationalGeometry 3 | By: Mark Collins & Toru Hasegawa 4 | Example: IsoSkeleton 5 | 6 | Creates a 3D skeleton with adjustable 7 | thickness and node size, based on an 8 | edge pairing of points. 9 | ------------------------------------*/ 10 | 11 | import ComputationalGeometry.*; 12 | IsoSkeleton skeleton; 13 | 14 | 15 | void setup() { 16 | size(250, 250, P3D); 17 | 18 | // Create iso-skeleton 19 | skeleton = new IsoSkeleton(this); 20 | 21 | // Create points to make the network 22 | PVector[] pts = new PVector[100]; 23 | for (int i=0; i 3 | 4 | 5 | ComputationalGeometry 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 25 | 26 | 38 | 39 |
40 | 41 |
42 |

ComputationalGeometry

43 |

44 | A library by Mark Collins & Toru Hasegawa for the Processing programming environment.
45 | Last update, 07/25/2013. 46 |

47 |

48 | A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons.
49 | Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling.
50 | Feel free to replace this paragraph with a description of the library.
51 | Contributed libraries are developed, documented, and maintained by members of the Processing community. Further directions are included with each library. For feedback and support, please post to the Discourse. We strongly encourage all libraries to be open source, but not all of them are. 52 |

53 |
54 | 55 | 56 | 57 |
58 |

Download

59 |

60 | Download ComputationalGeometry version 2 (2) in 61 | .zip format. 62 |

63 |

Installation

64 |

65 | Unzip and put the extracted ComputationalGeometry folder into the libraries folder of your Processing sketches. Reference and examples are included in the ComputationalGeometry folder. 66 |

67 |
68 | 69 | 70 |
71 |

Keywords. 3D, geometry, surface, contour, iso, polygon, poly, generative, skeleton, wrap, hull, boundary, Proxy

72 |

Reference. Have a look at the javadoc reference here. A copy of the reference is included in the .zip as well.

73 |

Source. The source code of ComputationalGeometry is available at GitHub, and its repository can be browsed here.

74 |
75 | 76 | 77 |
78 |

Examples

79 |

Find a list of examples in the current distribution of ComputationalGeometry, or have a look at them by following the links below.

80 | 83 |
84 | 85 | 86 |
87 |

Tested

88 |

89 | 90 | Platform osx 91 | 92 | 93 |
Processing 2.0 94 | 95 | 96 |
Dependencies ? 97 |

98 |
99 | 100 | 101 | 102 | 114 | 115 | 116 | 121 | 122 | 123 | 127 | 128 | 129 |
130 |
131 | 132 | 135 |
136 | 137 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/ComputationalGeometry/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ComputationalGeometry (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ComputationalGeometry 20 | 21 | 22 | 33 | 34 |
23 | Classes  24 | 25 |
26 | IsoContour 27 |
28 | IsoSkeleton 29 |
30 | IsoSurface 31 |
32 | IsoWrap
35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | All Classes 20 |
21 | 22 | 23 | 24 | 45 | 46 |
InternalErrorException 25 |
26 | IsoContour 27 |
28 | IsoSkeleton 29 |
30 | IsoSurface 31 |
32 | IsoWrap 33 |
34 | Point3d 35 |
36 | QuickHull3D 37 |
38 | QuickHull3DTest 39 |
40 | SimpleExample 41 |
42 | Vector3d 43 |
44 |
47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | All Classes 20 |
21 | 22 | 23 | 24 | 45 | 46 |
InternalErrorException 25 |
26 | IsoContour 27 |
28 | IsoSkeleton 29 |
30 | IsoSurface 31 |
32 | IsoWrap 33 |
34 | Point3d 35 |
36 | QuickHull3D 37 |
38 | QuickHull3DTest 39 |
40 | SimpleExample 41 |
42 | Vector3d 43 |
44 |
47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Deprecated List (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 22 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 50 | 53 | 54 | 55 | 56 | 59 | 75 | 76 |
51 | 52 |
77 | 78 | 79 | 80 |
81 |
82 |

83 | Deprecated API

84 |
85 |
86 | Contents 88 | 89 |
90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 111 | 114 | 115 | 116 | 117 | 120 | 136 | 137 |
112 | 113 |
138 | 139 | 140 | 141 |
142 | Processing library ComputationalGeometry by Mark Collins & Toru Hasegawa. (C) 2013 143 | 144 | 145 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Javadocs: ComputationalGeometry 8 | 9 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | <H2> 65 | Frame Alert</H2> 66 | 67 | <P> 68 | This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. 69 | <BR> 70 | Link to<A HREF="overview-summary.html">Non-frame version.</A> 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Overview List (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 |
22 |
25 | 26 | 27 | 28 | 38 | 39 |
All Classes 29 |

30 | 31 | Packages 32 |
33 | ComputationalGeometry 34 |
35 | quickhull3d 36 |
37 |

40 | 41 |

42 |   43 | 44 | 45 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/overview-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Overview (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 22 | 24 | 25 | 26 | 27 | 28 |


29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 50 | 53 | 54 | 55 | 56 | 59 | 75 | 76 |
51 | 52 |
77 | 78 | 79 | 80 |
81 |
82 |

83 | Javadocs: ComputationalGeometry 84 |

85 |
86 | 87 | 88 | 89 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
90 | Packages
ComputationalGeometry 
quickhull3d 
101 | 102 |

103 |  


104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 125 | 128 | 129 | 130 | 131 | 134 | 150 | 151 |
126 | 127 |
152 | 153 | 154 | 155 |
156 | Processing library ComputationalGeometry by Mark Collins & Toru Hasegawa. (C) 2013 157 | 158 | 159 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/package-list: -------------------------------------------------------------------------------- 1 | ComputationalGeometry 2 | quickhull3d 3 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/quickhull3d/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | quickhull3d (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | quickhull3d 20 | 21 | 22 | 35 | 36 |
23 | Classes  24 | 25 |
26 | Point3d 27 |
28 | QuickHull3D 29 |
30 | QuickHull3DTest 31 |
32 | SimpleExample 33 |
34 | Vector3d
37 | 38 | 39 | 40 | 41 | 46 | 47 |
42 | Exceptions  43 | 44 |
45 | InternalErrorException
48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/resources/inherit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-2/reference/resources/inherit.gif -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/serialized-form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Serialized Form (Javadocs: ComputationalGeometry) 8 | 9 | 10 | 11 | 12 | 13 | 14 | 22 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 50 | 53 | 54 | 55 | 56 | 59 | 75 | 76 |
51 | 52 |
77 | 78 | 79 | 80 |
81 |
82 |

83 | Serialized Form

84 |
85 |
86 | 87 | 88 | 89 | 91 | 92 |
90 | Package quickhull3d
93 | 94 |

95 | 96 | 97 | 98 | 100 | 101 |
99 | Class quickhull3d.InternalErrorException extends RuntimeException implements Serializable
102 | 103 |

104 | 105 |

106 |


107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 128 | 131 | 132 | 133 | 134 | 137 | 153 | 154 |
129 | 130 |
155 | 156 | 157 | 158 |
159 | Processing library ComputationalGeometry by Mark Collins & Toru Hasegawa. (C) 2013 160 | 161 | 162 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/reference/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* Javadoc style sheet */ 2 | /* Define colors, fonts and other style attributes here to override the defaults */ 3 | /* processingLibs style by andreas schlegel, sojamo */ 4 | 5 | 6 | body { 7 | margin : 0; 8 | padding : 0; 9 | padding-left : 10px; 10 | padding-right : 8px; 11 | background-color : #FFFFFF; 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.7em; 15 | font-weight : normal; 16 | line-height : normal; 17 | margin-bottom:30px; 18 | } 19 | 20 | 21 | 22 | 23 | /* Headings */ 24 | h1, h2, h3, h4, h5, th { 25 | font-family :Arial, Helvetica, sans-serif; 26 | font-size:1.2em; 27 | } 28 | 29 | 30 | p { 31 | font-size : 1em; 32 | width:80%; 33 | } 34 | 35 | pre, code { 36 | font-family : "Courier New", Courier, monospace; 37 | font-size : 12px; 38 | line-height : normal; 39 | } 40 | 41 | 42 | 43 | table { 44 | border:0; 45 | margin-bottom:10px; 46 | margin-top:10px; 47 | } 48 | 49 | 50 | tr, td { 51 | border-top: 0px solid; 52 | border-left: 0px solid; 53 | padding-top:8px; 54 | padding-bottom:8px; 55 | } 56 | 57 | 58 | 59 | hr { 60 | border:0; 61 | height:1px; 62 | padding:0; 63 | margin:0; 64 | margin-bottom:4px; 65 | 66 | } 67 | 68 | 69 | 70 | dd, th, td, font { 71 | font-size:1.0em; 72 | line-height:1.0em; 73 | } 74 | 75 | 76 | 77 | dt { 78 | margin-bottom:0px; 79 | } 80 | 81 | 82 | 83 | dd { 84 | margin-top:2px; 85 | margin-bottom:4px; 86 | } 87 | 88 | 89 | 90 | a { 91 | text-decoration: underline; 92 | font-weight: normal; 93 | } 94 | 95 | a:hover, 96 | a:active { 97 | text-decoration: underline; 98 | font-weight: normal; 99 | } 100 | 101 | a:visited, 102 | a:link:visited { 103 | text-decoration: underline; 104 | font-weight: normal; 105 | } 106 | 107 | 108 | img { 109 | border: 0px solid #000000; 110 | } 111 | 112 | 113 | 114 | /* Navigation bar fonts */ 115 | .NavBarCell1 { 116 | border:0; 117 | } 118 | 119 | .NavBarCell1Rev { 120 | border:0; 121 | } 122 | 123 | .NavBarFont1 { 124 | font-family: Arial, Helvetica, sans-serif; 125 | font-size:1.1em; 126 | } 127 | 128 | 129 | .NavBarFont1 b { 130 | font-weight:normal; 131 | } 132 | 133 | 134 | 135 | .NavBarFont1:after, .NavBarFont1Rev:after { 136 | font-weight:normal; 137 | content: " \\"; 138 | } 139 | 140 | 141 | .NavBarFont1Rev { 142 | font-family: Arial, Helvetica, sans-serif; 143 | font-size:1.1em; 144 | } 145 | 146 | .NavBarFont1Rev b { 147 | font-family: Arial, Helvetica, sans-serif; 148 | font-size:1.1em; 149 | font-weight:normal; 150 | } 151 | 152 | .NavBarCell2 { 153 | font-family: Arial, Helvetica, sans-serif; 154 | } 155 | 156 | .NavBarCell3 { 157 | font-family: Arial, Helvetica, sans-serif; 158 | } 159 | 160 | 161 | 162 | font.FrameItemFont { 163 | font-family: Helvetica, Arial, sans-serif; 164 | font-size:1.1em; 165 | line-height:1.1em; 166 | } 167 | 168 | font.FrameHeadingFont { 169 | font-family: Helvetica, Arial, sans-serif; 170 | line-height:32px; 171 | } 172 | 173 | /* Font used in left-hand frame lists */ 174 | .FrameTitleFont { 175 | font-family: Helvetica, Arial, sans-serif 176 | } 177 | 178 | 179 | .toggleList { 180 | padding:0; 181 | margin:0; 182 | margin-top:12px; 183 | } 184 | 185 | .toggleList dt { 186 | font-weight:bold; 187 | font-size:12px; 188 | font-family:arial,sans-serif; 189 | padding:0px; 190 | margin:10px 0px 10px 0px; 191 | } 192 | 193 | .toggleList dt span { 194 | font-family: monospace; 195 | padding:0; 196 | margin:0; 197 | } 198 | 199 | 200 | .toggleList dd { 201 | margin:0; 202 | padding:0; 203 | } 204 | 205 | html.isjs .toggleList dd { 206 | display: none; 207 | } 208 | 209 | .toggleList pre { 210 | padding: 4px 4px 4px 4px; 211 | } 212 | 213 | 214 | 215 | 216 | 217 | /* COLORS */ 218 | 219 | pre, code { 220 | color: #000000; 221 | } 222 | 223 | 224 | body { 225 | color : #333333; 226 | background-color :#FFFFFF; 227 | } 228 | 229 | 230 | h1, h2, h3, h4, h5, h6 { 231 | color:#555; 232 | } 233 | 234 | a, 235 | .toggleList dt { 236 | color: #1a7eb0; 237 | } 238 | 239 | a:hover, 240 | a:active { 241 | color: #1a7eb0; 242 | } 243 | 244 | a:visited, 245 | a:link:visited { 246 | color: #1a7eb0; 247 | } 248 | 249 | td,tr { 250 | border-color: #999999; 251 | } 252 | 253 | hr { 254 | color:#999999; 255 | background:#999999; 256 | } 257 | 258 | 259 | .TableHeadingColor { 260 | background: #dcdcdc; 261 | color: #555; 262 | } 263 | 264 | 265 | .TableSubHeadingColor { 266 | background: #EEEEFF 267 | } 268 | 269 | .TableRowColor { 270 | background: #FFFFFF 271 | } 272 | 273 | 274 | .NavBarCell1 { 275 | background-color:#dcdcdc; 276 | color:#000; 277 | } 278 | 279 | .NavBarCell1 a { 280 | color:#333; 281 | } 282 | 283 | 284 | .NavBarCell1Rev { 285 | background-color:transparent; 286 | } 287 | 288 | .NavBarFont1 { 289 | color:#333; 290 | } 291 | 292 | 293 | .NavBarFont1Rev { 294 | color:#fff; 295 | } 296 | 297 | .NavBarCell2 { 298 | background-color:#999; 299 | } 300 | 301 | .NavBarCell2 a { 302 | color:#fff; 303 | } 304 | 305 | 306 | 307 | .NavBarCell3 { 308 | background-color:#dcdcdc; 309 | } 310 | 311 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-2/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* processingLibs style by andreas schlegel, sojamo. */ 2 | 3 | 4 | * { 5 | margin:0; 6 | padding:0; 7 | border:0; 8 | } 9 | 10 | 11 | body { 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.70em; 15 | font-weight : normal; 16 | line-height : normal; 17 | } 18 | 19 | 20 | 21 | #container { 22 | margin-left:64px; 23 | background-color:#fff; 24 | } 25 | 26 | #header { 27 | float:left; 28 | padding-top:24px; 29 | padding-bottom:48px; 30 | } 31 | 32 | #menu { 33 | margin-top:16px; 34 | float:left; 35 | margin-bottom:64px; 36 | } 37 | 38 | 39 | #about, 40 | #download, 41 | #examples, 42 | #demos, 43 | #misc { 44 | width:480px; 45 | float:left; 46 | margin-right:24px; 47 | } 48 | 49 | 50 | #resources, #info { 51 | width:320px; 52 | float:left; 53 | } 54 | 55 | 56 | .clear { 57 | clear:both; 58 | } 59 | 60 | #footer { 61 | margin-top:300px; 62 | height:20px; 63 | margin-bottom:32px; 64 | } 65 | 66 | 67 | ul { 68 | list-style:none; 69 | padding:0; 70 | margin:0; 71 | } 72 | 73 | 74 | #menu ul li, #subMenu ul li { 75 | float:left; 76 | padding-right:6px; 77 | } 78 | 79 | 80 | 81 | 82 | 83 | 84 | /* Headings */ 85 | 86 | h1 { 87 | font-size:2em; 88 | font-weight:normal; 89 | } 90 | 91 | 92 | h2, h3, h4, h5, th { 93 | font-size:1.3em; 94 | font-weight:normal; 95 | margin-bottom:4px; 96 | } 97 | 98 | 99 | 100 | p { 101 | font-size:1em; 102 | width:90%; 103 | margin-bottom:32px; 104 | } 105 | 106 | 107 | pre, code { 108 | font-family:"Courier New", Courier, monospace; 109 | font-size:1em; 110 | line-height:normal; 111 | } 112 | 113 | 114 | 115 | 116 | hr { 117 | border:0; 118 | height:1px; 119 | margin-bottom:24px; 120 | } 121 | 122 | 123 | a { 124 | text-decoration: underline; 125 | font-weight: normal; 126 | } 127 | 128 | 129 | a:hover, 130 | a:active { 131 | text-decoration: underline; 132 | font-weight: normal; 133 | } 134 | 135 | 136 | a:visited, 137 | a:link:visited { 138 | text-decoration: underline; 139 | font-weight: normal; 140 | } 141 | 142 | 143 | 144 | img { 145 | border: 0px solid #000000; 146 | } 147 | 148 | 149 | 150 | 151 | 152 | /* COLORS */ 153 | 154 | 155 | body { 156 | color : #333; 157 | background-color :#fff; 158 | } 159 | 160 | 161 | #header { 162 | background-color:#fff; 163 | color:#333; 164 | } 165 | 166 | 167 | 168 | h1, h2, h3, h4, h5, h6 { 169 | color:#666; 170 | } 171 | 172 | 173 | pre, code { 174 | color: #000000; 175 | } 176 | 177 | 178 | a,strong { 179 | color: #333; 180 | } 181 | 182 | 183 | a:hover, 184 | a:active { 185 | color: #333; 186 | } 187 | 188 | 189 | a:visited, 190 | a:link:visited { 191 | color: #333; 192 | } 193 | 194 | 195 | #footer, #menu { 196 | background-color:#fff; 197 | color:#333; 198 | } 199 | 200 | 201 | #footer a, #menu a { 202 | color:#333; 203 | } 204 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/README.md: -------------------------------------------------------------------------------- 1 | ## How to install Computational Geometry 2 | 3 | ### Install with the Contribution Manager 4 | 5 | Add contributed Libraries by selecting the menu item _Sketch_ → _Import Library..._ → _Add Library..._ This will open the Contribution Manager, where you can browse for Computational Geometry, or any other Library you want to install. 6 | 7 | Not all available Libraries have been converted to show up in this menu. If a Library isn't there, it will need to be installed manually by following the instructions below. 8 | 9 | ### Manual Install 10 | 11 | Contributed Libraries may be downloaded separately and manually placed within the `libraries` folder of your Processing sketchbook. To find (and change) the Processing sketchbook location on your computer, open the Preferences window from the Processing application (PDE) and look for the "Sketchbook location" item at the top. 12 | 13 | By default the following locations are used for your sketchbook folder: 14 | * For Mac users, the sketchbook folder is located inside `~/Documents/Processing` 15 | * For Windows users, the sketchbook folder is located inside `My Documents/Processing` 16 | 17 | Download Computational Geometry from http://thecloudlab.org/processing/library.html 18 | 19 | Unzip and copy the contributed Library's folder into the `libraries` folder in the Processing sketchbook. You will need to create this `libraries` folder if it does not exist. 20 | 21 | The folder structure for Library Computational Geometry should be as follows: 22 | 23 | ``` 24 | Processing 25 | libraries 26 | Computational Geometry 27 | examples 28 | library 29 | Computational Geometry.jar 30 | reference 31 | src 32 | ``` 33 | 34 | Some folders like `examples` or `src` might be missing. After Library Computational Geometry has been successfully installed, restart the Processing application. 35 | 36 | ### Troubleshooting 37 | 38 | If you're having trouble, have a look at the [Processing Wiki](https://github.com/processing/processing/wiki/How-to-Install-a-Contributed-Library) for more information, or contact the author [Mark Collins & Toru Hasegawa](http://thecloudlab.org). 39 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/download/ComputationalGeometry-3.txt: -------------------------------------------------------------------------------- 1 | # More on this file here: https://github.com/processing/processing/wiki/Library-Basics 2 | # UTF-8 supported. 3 | 4 | # The name of your Library as you want it formatted. 5 | name = Computational Geometry 6 | 7 | # List of authors. Links can be provided using the syntax [author name](url). 8 | authors = [Mark Collins & Toru Hasegawa](http://thecloudlab.org) 9 | 10 | # A web page for your Library, NOT a direct link to where to download it. 11 | url = http://thecloudlab.org/processing/library.html 12 | 13 | # The category (or categories) of your Library, must be from the following list: 14 | # "3D" "Animation" "Compilations" "Data" 15 | # "Fabrication" "Geometry" "GUI" "Hardware" 16 | # "I/O" "Language" "Math" "Simulation" 17 | # "Sound" "Utilities" "Typography" "Video & Vision" 18 | # 19 | # If a value other than those listed is used, your Library will listed as 20 | # "Other". Many categories must be comma-separated. 21 | categories = Geometry 22 | 23 | # A short sentence (or fragment) to summarize the Library's function. This will 24 | # be shown from inside the PDE when the Library is being installed. Avoid 25 | # repeating the name of your Library here. Also, avoid saying anything redundant 26 | # like mentioning that it's a Library. This should start with a capitalized 27 | # letter, and end with a period. 28 | sentence = A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons. 29 | 30 | # Additional information suitable for the Processing website. The value of 31 | # 'sentence' always will be prepended, so you should start by writing the 32 | # second sentence here. If your Library only works on certain operating systems, 33 | # mention it here. 34 | paragraph = Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling. 35 | 36 | # Links in the 'sentence' and 'paragraph' attributes can be inserted using the 37 | # same syntax as for authors. 38 | # That is, [here is a link to Processing](http://processing.org/) 39 | 40 | # A version number that increments once with each release. This is used to 41 | # compare different versions of the same Library, and check if an update is 42 | # available. You should think of it as a counter, counting the total number of 43 | # releases you've had. 44 | version = 3 # This must be parsable as an int 45 | 46 | # The version as the user will see it. If blank, the version attribute will be 47 | # used here. This should be a single word, with no spaces. 48 | prettyVersion = 3.0 # This is treated as a String 49 | 50 | # The min and max revision of Processing compatible with your Library. 51 | # Note that these fields use the revision and not the version of Processing, 52 | # parsable as an int. For example, the revision number for 2.2.1 is 227. 53 | # You can find the revision numbers in the change log: https://raw.githubusercontent.com/processing/processing/master/build/shared/revisions.txt 54 | # Only use maxRevision (or minRevision), when your Library is known to 55 | # break in a later (or earlier) release. Otherwise, use the default value 0. 56 | minRevision = 0 57 | maxRevision = 0 58 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/download/ComputationalGeometry-3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-3/download/ComputationalGeometry-3.zip -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/download/ComputationalGeometry.txt: -------------------------------------------------------------------------------- 1 | # More on this file here: https://github.com/processing/processing/wiki/Library-Basics 2 | # UTF-8 supported. 3 | 4 | # The name of your Library as you want it formatted. 5 | name = Computational Geometry 6 | 7 | # List of authors. Links can be provided using the syntax [author name](url). 8 | authors = [Mark Collins & Toru Hasegawa](http://thecloudlab.org) 9 | 10 | # A web page for your Library, NOT a direct link to where to download it. 11 | url = http://thecloudlab.org/processing/library.html 12 | 13 | # The category (or categories) of your Library, must be from the following list: 14 | # "3D" "Animation" "Compilations" "Data" 15 | # "Fabrication" "Geometry" "GUI" "Hardware" 16 | # "I/O" "Language" "Math" "Simulation" 17 | # "Sound" "Utilities" "Typography" "Video & Vision" 18 | # 19 | # If a value other than those listed is used, your Library will listed as 20 | # "Other". Many categories must be comma-separated. 21 | categories = Geometry 22 | 23 | # A short sentence (or fragment) to summarize the Library's function. This will 24 | # be shown from inside the PDE when the Library is being installed. Avoid 25 | # repeating the name of your Library here. Also, avoid saying anything redundant 26 | # like mentioning that it's a Library. This should start with a capitalized 27 | # letter, and end with a period. 28 | sentence = A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons. 29 | 30 | # Additional information suitable for the Processing website. The value of 31 | # 'sentence' always will be prepended, so you should start by writing the 32 | # second sentence here. If your Library only works on certain operating systems, 33 | # mention it here. 34 | paragraph = Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling. 35 | 36 | # Links in the 'sentence' and 'paragraph' attributes can be inserted using the 37 | # same syntax as for authors. 38 | # That is, [here is a link to Processing](http://processing.org/) 39 | 40 | # A version number that increments once with each release. This is used to 41 | # compare different versions of the same Library, and check if an update is 42 | # available. You should think of it as a counter, counting the total number of 43 | # releases you've had. 44 | version = 3 # This must be parsable as an int 45 | 46 | # The version as the user will see it. If blank, the version attribute will be 47 | # used here. This should be a single word, with no spaces. 48 | prettyVersion = 3.0 # This is treated as a String 49 | 50 | # The min and max revision of Processing compatible with your Library. 51 | # Note that these fields use the revision and not the version of Processing, 52 | # parsable as an int. For example, the revision number for 2.2.1 is 227. 53 | # You can find the revision numbers in the change log: https://raw.githubusercontent.com/processing/processing/master/build/shared/revisions.txt 54 | # Only use maxRevision (or minRevision), when your Library is known to 55 | # break in a later (or earlier) release. Otherwise, use the default value 0. 56 | minRevision = 0 57 | maxRevision = 0 58 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/download/ComputationalGeometry.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudlab/ComputationalGeometry-P5/829f4da805990d56390df12578db948bfc4460da/distribution/ComputationalGeometry-3/download/ComputationalGeometry.zip -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/examples/IsoContourExample/IsoContourExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Library: ComputationalGeometry 3 | By: Mark Collins & Toru Hasegawa 4 | Example: IsoContour 5 | 6 | Creates a 2D isometric contour, 7 | based on a series of random points. 8 | ------------------------------------*/ 9 | 10 | import ComputationalGeometry.*; 11 | IsoContour iso; 12 | 13 | void setup(){ 14 | 15 | size(250,250,P3D); 16 | 17 | // Creating the Isocontour 18 | iso = new IsoContour(this, new PVector(0,0), new PVector(width,height), 10,10); 19 | 20 | // Adding Meta-blobs to the Isocontour 21 | randomSeed(1); 22 | for(int i=0; i<20; i++){ 23 | PVector pt = new PVector( random(width), random(height), 0 ); 24 | iso.addPoint(pt); 25 | } 26 | } 27 | void draw(){ 28 | 29 | background(220); 30 | 31 | // Plot Voxel Space 32 | noFill(); 33 | stroke(0,50); 34 | iso.plotGrid(); 35 | 36 | // Plot Contour at a Threshold 37 | fill(255,200); 38 | noStroke(); 39 | float threshold = abs(sin(frameCount/100.0f)) * .01; 40 | iso.plot( threshold); // you must provide a threshold to render the iso contour 41 | } 42 | 43 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/examples/IsoSkeletonExample/IsoSkeletonExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Library: ComputationalGeometry 3 | By: Mark Collins & Toru Hasegawa 4 | Example: IsoSkeleton 5 | 6 | Creates a 3D skeleton with adjustable 7 | thickness and node size, based on an 8 | edge pairing of points. 9 | ------------------------------------*/ 10 | 11 | import ComputationalGeometry.*; 12 | IsoSkeleton skeleton; 13 | 14 | 15 | void setup() { 16 | size(250, 250, P3D); 17 | 18 | // Create iso-skeleton 19 | skeleton = new IsoSkeleton(this); 20 | 21 | // Create points to make the network 22 | PVector[] pts = new PVector[100]; 23 | for (int i=0; i 3 | 4 | 5 | Computational Geometry 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 25 | 26 | 38 | 39 |
40 | 41 |
42 |

Computational Geometry

43 |

44 | A Library by Mark Collins & Toru Hasegawa for the Processing programming environment.
45 | Last update, 02/10/2016. 46 |

47 |

48 | A simple, lightweight library for generating meshes such as isometric surfaces, boundary hulls and skeletons.
49 | Meshes are generated by specifying points and edges that inform the generation of the target output. In isometric surfacing, the library supports direct manipulation of the underlying grid data as well as simple meta-ball modeling.
50 | Feel free to replace this paragraph with a description of the Library.
51 | Contributed Libraries are developed, documented, and maintained by members of the Processing community. Further directions are included with each Library. For feedback and support, please post to the Discourse. We strongly encourage all Libraries to be open source, but not all of them are. 52 |

53 |
54 | 55 | 56 | 57 |
58 |

Download

59 |

60 | Download Computational Geometry version 3.0 (3) in 61 | .zip format. 62 |

63 |

Installation

64 |

65 | Unzip and put the extracted ComputationalGeometry folder into the libraries folder of your Processing sketches. Reference and examples are included in the ComputationalGeometry folder. 66 |

67 |
68 | 69 | 70 |
71 |

Keywords. 3D, geometry, surface, contour, iso, polygon, poly, generative, skeleton, wrap, hull, boundary, Proxy

72 |

Reference. Have a look at the javadoc reference here. A copy of the reference is included in the .zip as well.

73 |

Source. The source code of Computational Geometry is available at GitHub, and its repository can be browsed here.

74 |
75 | 76 | 77 |
78 |

Examples

79 |

Find a list of examples in the current distribution of Computational Geometry, or have a look at them by following the links below.

80 | 83 |
84 | 85 | 86 |
87 |

Tested

88 |

89 | 90 | Platform osx,windows 91 | 92 | 93 |
Processing 3.0 94 | 95 | 96 |
Dependencies ? 97 |

98 |
99 | 100 | 101 | 102 | 114 | 115 | 116 | 121 | 122 | 123 | 127 | 128 | 129 |
130 |
131 | 132 | 135 |
136 | 137 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/ComputationalGeometry/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ComputationalGeometry (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 |

ComputationalGeometry

13 |
14 |

Classes

15 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/ComputationalGeometry/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ComputationalGeometry (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Package ComputationalGeometry

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 |
    Class Summary 
    ClassDescription
    IsoContour 
    IsoSkeleton 
    IsoSurface 
    IsoWrap 
    102 |
  • 103 |
104 |
105 | 106 |
107 | 108 | 109 | 110 | 111 | 112 | 113 | 122 |
123 | 150 | 151 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

152 | 153 | 154 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/ComputationalGeometry/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ComputationalGeometry Class Hierarchy (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Hierarchy For Package ComputationalGeometry

73 | Package Hierarchies: 74 | 77 |
78 |
79 |

Class Hierarchy

80 |
    81 |
  • java.lang.Object 82 |
      83 |
    • ComputationalGeometry.IsoContour (implements processing.core.PConstants)
    • 84 |
    • ComputationalGeometry.IsoSkeleton (implements processing.core.PConstants)
    • 85 |
    • ComputationalGeometry.IsoSurface (implements processing.core.PConstants)
    • 86 |
    • ComputationalGeometry.IsoWrap (implements processing.core.PConstants)
    • 87 |
    88 |
  • 89 |
90 |
91 | 92 |
93 | 94 | 95 | 96 | 97 | 98 | 99 | 108 |
109 | 136 | 137 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

138 | 139 | 140 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Deprecated List (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Deprecated API

73 |

Contents

74 |
75 | 76 |
77 | 78 | 79 | 80 | 81 | 82 | 83 | 92 |
93 | 120 | 121 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

122 | 123 | 124 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Javadocs: ComputationalGeometry 7 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | <noscript> 68 | <div>JavaScript is disabled on your browser.</div> 69 | </noscript> 70 | <h2>Frame Alert</h2> 71 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Overview List (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

Packages

15 | 20 |
21 |

 

22 | 23 | 24 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/overview-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Overview (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Javadocs: ComputationalGeometry

73 |
74 |
75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
Packages 
PackageDescription
ComputationalGeometry 
quickhull3d 
template.library 
96 |
97 | 98 |
99 | 100 | 101 | 102 | 103 | 104 | 105 | 114 |
115 | 142 | 143 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

144 | 145 | 146 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/package-list: -------------------------------------------------------------------------------- 1 | ComputationalGeometry 2 | quickhull3d 3 | template.library 4 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/quickhull3d/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | quickhull3d (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 |

quickhull3d

13 |
14 |

Classes

15 | 22 |

Exceptions

23 | 26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/serialized-form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Serialized Form (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Serialized Form

73 |
74 |
75 | 87 |
88 | 89 |
90 | 91 | 92 | 93 | 94 | 95 | 96 | 105 |
106 | 133 | 134 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

135 | 136 | 137 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* Javadoc style sheet */ 2 | /* Define colors, fonts and other style attributes here to override the defaults */ 3 | /* processingLibs style by andreas schlegel, sojamo */ 4 | 5 | 6 | body { 7 | margin : 0; 8 | padding : 0; 9 | padding-left : 10px; 10 | padding-right : 8px; 11 | background-color : #FFFFFF; 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.7em; 15 | font-weight : normal; 16 | line-height : normal; 17 | margin-bottom:30px; 18 | } 19 | 20 | 21 | 22 | 23 | /* Headings */ 24 | h1, h2, h3, h4, h5, th { 25 | font-family :Arial, Helvetica, sans-serif; 26 | font-size:1.2em; 27 | } 28 | 29 | 30 | p { 31 | font-size : 1em; 32 | width:80%; 33 | } 34 | 35 | pre, code { 36 | font-family : "Courier New", Courier, monospace; 37 | font-size : 12px; 38 | line-height : normal; 39 | } 40 | 41 | 42 | 43 | table { 44 | border:0; 45 | margin-bottom:10px; 46 | margin-top:10px; 47 | } 48 | 49 | 50 | tr, td { 51 | border-top: 0px solid; 52 | border-left: 0px solid; 53 | padding-top:8px; 54 | padding-bottom:8px; 55 | } 56 | 57 | 58 | 59 | hr { 60 | border:0; 61 | height:1px; 62 | padding:0; 63 | margin:0; 64 | margin-bottom:4px; 65 | 66 | } 67 | 68 | 69 | 70 | dd, th, td, font { 71 | font-size:1.0em; 72 | line-height:1.0em; 73 | } 74 | 75 | 76 | 77 | dt { 78 | margin-bottom:0px; 79 | } 80 | 81 | 82 | 83 | dd { 84 | margin-top:2px; 85 | margin-bottom:4px; 86 | } 87 | 88 | 89 | 90 | a { 91 | text-decoration: underline; 92 | font-weight: normal; 93 | } 94 | 95 | a:hover, 96 | a:active { 97 | text-decoration: underline; 98 | font-weight: normal; 99 | } 100 | 101 | a:visited, 102 | a:link:visited { 103 | text-decoration: underline; 104 | font-weight: normal; 105 | } 106 | 107 | 108 | img { 109 | border: 0px solid #000000; 110 | } 111 | 112 | 113 | 114 | /* Navigation bar fonts */ 115 | .NavBarCell1 { 116 | border:0; 117 | } 118 | 119 | .NavBarCell1Rev { 120 | border:0; 121 | } 122 | 123 | .NavBarFont1 { 124 | font-family: Arial, Helvetica, sans-serif; 125 | font-size:1.1em; 126 | } 127 | 128 | 129 | .NavBarFont1 b { 130 | font-weight:normal; 131 | } 132 | 133 | 134 | 135 | .NavBarFont1:after, .NavBarFont1Rev:after { 136 | font-weight:normal; 137 | content: " \\"; 138 | } 139 | 140 | 141 | .NavBarFont1Rev { 142 | font-family: Arial, Helvetica, sans-serif; 143 | font-size:1.1em; 144 | } 145 | 146 | .NavBarFont1Rev b { 147 | font-family: Arial, Helvetica, sans-serif; 148 | font-size:1.1em; 149 | font-weight:normal; 150 | } 151 | 152 | .NavBarCell2 { 153 | font-family: Arial, Helvetica, sans-serif; 154 | } 155 | 156 | .NavBarCell3 { 157 | font-family: Arial, Helvetica, sans-serif; 158 | } 159 | 160 | 161 | 162 | font.FrameItemFont { 163 | font-family: Helvetica, Arial, sans-serif; 164 | font-size:1.1em; 165 | line-height:1.1em; 166 | } 167 | 168 | font.FrameHeadingFont { 169 | font-family: Helvetica, Arial, sans-serif; 170 | line-height:32px; 171 | } 172 | 173 | /* Font used in left-hand frame lists */ 174 | .FrameTitleFont { 175 | font-family: Helvetica, Arial, sans-serif 176 | } 177 | 178 | 179 | .toggleList { 180 | padding:0; 181 | margin:0; 182 | margin-top:12px; 183 | } 184 | 185 | .toggleList dt { 186 | font-weight:bold; 187 | font-size:12px; 188 | font-family:arial,sans-serif; 189 | padding:0px; 190 | margin:10px 0px 10px 0px; 191 | } 192 | 193 | .toggleList dt span { 194 | font-family: monospace; 195 | padding:0; 196 | margin:0; 197 | } 198 | 199 | 200 | .toggleList dd { 201 | margin:0; 202 | padding:0; 203 | } 204 | 205 | html.isjs .toggleList dd { 206 | display: none; 207 | } 208 | 209 | .toggleList pre { 210 | padding: 4px 4px 4px 4px; 211 | } 212 | 213 | 214 | 215 | 216 | 217 | /* COLORS */ 218 | 219 | pre, code { 220 | color: #000000; 221 | } 222 | 223 | 224 | body { 225 | color : #333333; 226 | background-color :#FFFFFF; 227 | } 228 | 229 | 230 | h1, h2, h3, h4, h5, h6 { 231 | color:#555; 232 | } 233 | 234 | a, 235 | .toggleList dt { 236 | color: #1a7eb0; 237 | } 238 | 239 | a:hover, 240 | a:active { 241 | color: #1a7eb0; 242 | } 243 | 244 | a:visited, 245 | a:link:visited { 246 | color: #1a7eb0; 247 | } 248 | 249 | td,tr { 250 | border-color: #999999; 251 | } 252 | 253 | hr { 254 | color:#999999; 255 | background:#999999; 256 | } 257 | 258 | 259 | .TableHeadingColor { 260 | background: #dcdcdc; 261 | color: #555; 262 | } 263 | 264 | 265 | .TableSubHeadingColor { 266 | background: #EEEEFF 267 | } 268 | 269 | .TableRowColor { 270 | background: #FFFFFF 271 | } 272 | 273 | 274 | .NavBarCell1 { 275 | background-color:#dcdcdc; 276 | color:#000; 277 | } 278 | 279 | .NavBarCell1 a { 280 | color:#333; 281 | } 282 | 283 | 284 | .NavBarCell1Rev { 285 | background-color:transparent; 286 | } 287 | 288 | .NavBarFont1 { 289 | color:#333; 290 | } 291 | 292 | 293 | .NavBarFont1Rev { 294 | color:#fff; 295 | } 296 | 297 | .NavBarCell2 { 298 | background-color:#999; 299 | } 300 | 301 | .NavBarCell2 a { 302 | color:#fff; 303 | } 304 | 305 | 306 | 307 | .NavBarCell3 { 308 | background-color:#dcdcdc; 309 | } 310 | 311 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/template/library/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | template.library (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 |

template.library

13 |
14 |

Classes

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/template/library/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | template.library (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Package template.library

73 |
74 |
75 |
    76 |
  • 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 89 | 90 | 91 |
    Class Summary 
    ClassDescription
    HelloLibrary 87 |
    This is a template class and can be used to start a new processing Library.
    88 |
    92 |
  • 93 |
94 |
95 | 96 |
97 | 98 | 99 | 100 | 101 | 102 | 103 | 112 |
113 | 140 | 141 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

142 | 143 | 144 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/reference/template/library/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | template.library Class Hierarchy (Javadocs: ComputationalGeometry) 7 | 8 | 9 | 10 | 11 | 12 | 22 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 42 |
43 | 70 | 71 |
72 |

Hierarchy For Package template.library

73 | Package Hierarchies: 74 | 77 |
78 |
79 |

Class Hierarchy

80 | 87 |
88 | 89 |
90 | 91 | 92 | 93 | 94 | 95 | 96 | 105 |
106 | 133 | 134 |

Processing Library ComputationalGeometry by Mark Collins & Toru Hasegawa. (c) 2015

135 | 136 | 137 | -------------------------------------------------------------------------------- /distribution/ComputationalGeometry-3/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* processingLibs style by andreas schlegel, sojamo. */ 2 | 3 | 4 | * { 5 | margin:0; 6 | padding:0; 7 | border:0; 8 | } 9 | 10 | 11 | body { 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.70em; 15 | font-weight : normal; 16 | line-height : normal; 17 | } 18 | 19 | 20 | 21 | #container { 22 | margin-left:64px; 23 | background-color:#fff; 24 | } 25 | 26 | #header { 27 | float:left; 28 | padding-top:24px; 29 | padding-bottom:48px; 30 | } 31 | 32 | #menu { 33 | margin-top:16px; 34 | float:left; 35 | margin-bottom:64px; 36 | } 37 | 38 | 39 | #about, 40 | #download, 41 | #examples, 42 | #demos, 43 | #misc { 44 | width:480px; 45 | float:left; 46 | margin-right:24px; 47 | } 48 | 49 | 50 | #resources, #info { 51 | width:320px; 52 | float:left; 53 | } 54 | 55 | 56 | .clear { 57 | clear:both; 58 | } 59 | 60 | #footer { 61 | margin-top:300px; 62 | height:20px; 63 | margin-bottom:32px; 64 | } 65 | 66 | 67 | ul { 68 | list-style:none; 69 | padding:0; 70 | margin:0; 71 | } 72 | 73 | 74 | #menu ul li, #subMenu ul li { 75 | float:left; 76 | padding-right:6px; 77 | } 78 | 79 | 80 | 81 | 82 | 83 | 84 | /* Headings */ 85 | 86 | h1 { 87 | font-size:2em; 88 | font-weight:normal; 89 | } 90 | 91 | 92 | h2, h3, h4, h5, th { 93 | font-size:1.3em; 94 | font-weight:normal; 95 | margin-bottom:4px; 96 | } 97 | 98 | 99 | 100 | p { 101 | font-size:1em; 102 | width:90%; 103 | margin-bottom:32px; 104 | } 105 | 106 | 107 | pre, code { 108 | font-family:"Courier New", Courier, monospace; 109 | font-size:1em; 110 | line-height:normal; 111 | } 112 | 113 | 114 | 115 | 116 | hr { 117 | border:0; 118 | height:1px; 119 | margin-bottom:24px; 120 | } 121 | 122 | 123 | a { 124 | text-decoration: underline; 125 | font-weight: normal; 126 | } 127 | 128 | 129 | a:hover, 130 | a:active { 131 | text-decoration: underline; 132 | font-weight: normal; 133 | } 134 | 135 | 136 | a:visited, 137 | a:link:visited { 138 | text-decoration: underline; 139 | font-weight: normal; 140 | } 141 | 142 | 143 | 144 | img { 145 | border: 0px solid #000000; 146 | } 147 | 148 | 149 | 150 | 151 | 152 | /* COLORS */ 153 | 154 | 155 | body { 156 | color : #333; 157 | background-color :#fff; 158 | } 159 | 160 | 161 | #header { 162 | background-color:#fff; 163 | color:#333; 164 | } 165 | 166 | 167 | 168 | h1, h2, h3, h4, h5, h6 { 169 | color:#666; 170 | } 171 | 172 | 173 | pre, code { 174 | color: #000000; 175 | } 176 | 177 | 178 | a,strong { 179 | color: #333; 180 | } 181 | 182 | 183 | a:hover, 184 | a:active { 185 | color: #333; 186 | } 187 | 188 | 189 | a:visited, 190 | a:link:visited { 191 | color: #333; 192 | } 193 | 194 | 195 | #footer, #menu { 196 | background-color:#fff; 197 | color:#333; 198 | } 199 | 200 | 201 | #footer a, #menu a { 202 | color:#333; 203 | } 204 | -------------------------------------------------------------------------------- /examples/IsoContourExample/IsoContourExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Library: ComputationalGeometry 3 | By: Mark Collins & Toru Hasegawa 4 | Example: IsoContour 5 | 6 | Creates a 2D isometric contour, 7 | based on a series of random points. 8 | ------------------------------------*/ 9 | 10 | import ComputationalGeometry.*; 11 | IsoContour iso; 12 | 13 | void setup(){ 14 | 15 | size(250,250,P3D); 16 | 17 | // Creating the Isocontour 18 | iso = new IsoContour(this, new PVector(0,0), new PVector(width,height), 10,10); 19 | 20 | // Adding Meta-blobs to the Isocontour 21 | randomSeed(1); 22 | for(int i=0; i<20; i++){ 23 | PVector pt = new PVector( random(width), random(height), 0 ); 24 | iso.addPoint(pt); 25 | } 26 | } 27 | void draw(){ 28 | 29 | background(220); 30 | 31 | // Plot Voxel Space 32 | noFill(); 33 | stroke(0,50); 34 | iso.plotGrid(); 35 | 36 | // Plot Contour at a Threshold 37 | fill(255,200); 38 | noStroke(); 39 | float threshold = abs(sin(frameCount/100.0f)) * .01; 40 | iso.plot( threshold); // you must provide a threshold to render the iso contour 41 | } 42 | 43 | -------------------------------------------------------------------------------- /examples/IsoSkeletonExample/IsoSkeletonExample.pde: -------------------------------------------------------------------------------- 1 | /*----------------------------------- 2 | Library: ComputationalGeometry 3 | By: Mark Collins & Toru Hasegawa 4 | Example: IsoSkeleton 5 | 6 | Creates a 3D skeleton with adjustable 7 | thickness and node size, based on an 8 | edge pairing of points. 9 | ------------------------------------*/ 10 | 11 | import ComputationalGeometry.*; 12 | IsoSkeleton skeleton; 13 | 14 | 15 | void setup() { 16 | size(250, 250, P3D); 17 | 18 | // Create iso-skeleton 19 | skeleton = new IsoSkeleton(this); 20 | 21 | // Create points to make the network 22 | PVector[] pts = new PVector[100]; 23 | for (int i=0; iv and 52 | * left-hand triangular face f. 53 | * 54 | * @param v head vertex 55 | * @param f left-hand triangular face 56 | */ 57 | public HalfEdge (Vertex v, Face f) 58 | { 59 | vertex = v; 60 | face = f; 61 | } 62 | 63 | public HalfEdge () 64 | { 65 | } 66 | 67 | /** 68 | * Sets the value of the next edge adjacent 69 | * (counter-clockwise) to this one within the triangle. 70 | * 71 | * @param edge next adjacent edge */ 72 | public void setNext (HalfEdge edge) 73 | { 74 | next = edge; 75 | } 76 | 77 | /** 78 | * Gets the value of the next edge adjacent 79 | * (counter-clockwise) to this one within the triangle. 80 | * 81 | * @return next adjacent edge */ 82 | public HalfEdge getNext() 83 | { 84 | return next; 85 | } 86 | 87 | /** 88 | * Sets the value of the previous edge adjacent (clockwise) to 89 | * this one within the triangle. 90 | * 91 | * @param edge previous adjacent edge */ 92 | public void setPrev (HalfEdge edge) 93 | { 94 | prev = edge; 95 | } 96 | 97 | /** 98 | * Gets the value of the previous edge adjacent (clockwise) to 99 | * this one within the triangle. 100 | * 101 | * @return previous adjacent edge 102 | */ 103 | public HalfEdge getPrev() 104 | { 105 | return prev; 106 | } 107 | 108 | /** 109 | * Returns the triangular face located to the left of this 110 | * half-edge. 111 | * 112 | * @return left-hand triangular face 113 | */ 114 | public Face getFace() 115 | { 116 | return face; 117 | } 118 | 119 | /** 120 | * Returns the half-edge opposite to this half-edge. 121 | * 122 | * @return opposite half-edge 123 | */ 124 | public HalfEdge getOpposite() 125 | { 126 | return opposite; 127 | } 128 | 129 | /** 130 | * Sets the half-edge opposite to this half-edge. 131 | * 132 | * @param edge opposite half-edge 133 | */ 134 | public void setOpposite (HalfEdge edge) 135 | { 136 | opposite = edge; 137 | edge.opposite = this; 138 | } 139 | 140 | /** 141 | * Returns the head vertex associated with this half-edge. 142 | * 143 | * @return head vertex 144 | */ 145 | public Vertex head() 146 | { 147 | return vertex; 148 | } 149 | 150 | /** 151 | * Returns the tail vertex associated with this half-edge. 152 | * 153 | * @return tail vertex 154 | */ 155 | public Vertex tail() 156 | { 157 | return prev != null ? prev.vertex : null; 158 | } 159 | 160 | /** 161 | * Returns the opposite triangular face associated with this 162 | * half-edge. 163 | * 164 | * @return opposite triangular face 165 | */ 166 | public Face oppositeFace() 167 | { 168 | return opposite != null ? opposite.face : null; 169 | } 170 | 171 | /** 172 | * Produces a string identifying this half-edge by the point 173 | * index values of its tail and head vertices. 174 | * 175 | * @return identifying string 176 | */ 177 | public String getVertexString() 178 | { 179 | if (tail() != null) 180 | { return "" + 181 | tail().index + "-" + 182 | head().index; 183 | } 184 | else 185 | { return "?-" + head().index; 186 | } 187 | } 188 | 189 | /** 190 | * Returns the length of this half-edge. 191 | * 192 | * @return half-edge length 193 | */ 194 | public double length() 195 | { 196 | if (tail() != null) 197 | { return head().pnt.distance(tail().pnt); 198 | } 199 | else 200 | { return -1; 201 | } 202 | } 203 | 204 | /** 205 | * Returns the length squared of this half-edge. 206 | * 207 | * @return half-edge length squared 208 | */ 209 | public double lengthSquared() 210 | { 211 | if (tail() != null) 212 | { return head().pnt.distanceSquared(tail().pnt); 213 | } 214 | else 215 | { return -1; 216 | } 217 | } 218 | 219 | 220 | // /** 221 | // * Computes nrml . (del0 X del1), where del0 and del1 222 | // * are the direction vectors along this halfEdge, and the 223 | // * halfEdge he1. 224 | // * 225 | // * A product > 0 indicates a left turn WRT the normal 226 | // */ 227 | // public double turnProduct (HalfEdge he1, Vector3d nrml) 228 | // { 229 | // Point3d pnt0 = tail().pnt; 230 | // Point3d pnt1 = head().pnt; 231 | // Point3d pnt2 = he1.head().pnt; 232 | 233 | // double del0x = pnt1.x - pnt0.x; 234 | // double del0y = pnt1.y - pnt0.y; 235 | // double del0z = pnt1.z - pnt0.z; 236 | 237 | // double del1x = pnt2.x - pnt1.x; 238 | // double del1y = pnt2.y - pnt1.y; 239 | // double del1z = pnt2.z - pnt1.z; 240 | 241 | // return (nrml.x*(del0y*del1z - del0z*del1y) + 242 | // nrml.y*(del0z*del1x - del0x*del1z) + 243 | // nrml.z*(del0x*del1y - del0y*del1x)); 244 | // } 245 | } 246 | 247 | 248 | -------------------------------------------------------------------------------- /src/quickhull3d/InternalErrorException.java: -------------------------------------------------------------------------------- 1 | package quickhull3d; 2 | 3 | /** 4 | * Exception thrown when QuickHull3D encounters an internal error. 5 | */ 6 | public class InternalErrorException extends RuntimeException 7 | { 8 | public InternalErrorException (String msg) 9 | { super (msg); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/quickhull3d/Point3d.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright John E. Lloyd, 2004. All rights reserved. Permission to use, 3 | * copy, modify and redistribute is granted, provided that this copyright 4 | * notice is retained and the author is given credit whenever appropriate. 5 | * 6 | * This software is distributed "as is", without any warranty, including 7 | * any implied warranty of merchantability or fitness for a particular 8 | * use. The author assumes no responsibility for, and shall not be liable 9 | * for, any special, indirect, or consequential damages, or any damages 10 | * whatsoever, arising out of or in connection with the use of this 11 | * software. 12 | */ 13 | 14 | package quickhull3d; 15 | 16 | /** 17 | * A three-element spatial point. 18 | * 19 | * The only difference between a point and a vector is in the 20 | * the way it is transformed by an affine transformation. Since 21 | * the transform method is not included in this reduced 22 | * implementation for QuickHull3D, the difference is 23 | * purely academic. 24 | * 25 | * @author John E. Lloyd, Fall 2004 26 | */ 27 | public class Point3d extends Vector3d 28 | { 29 | /** 30 | * Creates a Point3d and initializes it to zero. 31 | */ 32 | public Point3d () 33 | { 34 | } 35 | 36 | /** 37 | * Creates a Point3d by copying a vector 38 | * 39 | * @param v vector to be copied 40 | */ 41 | public Point3d (Vector3d v) 42 | { 43 | set (v); 44 | } 45 | 46 | /** 47 | * Creates a Point3d with the supplied element values. 48 | * 49 | * @param x first element 50 | * @param y second element 51 | * @param z third element 52 | */ 53 | public Point3d (double x, double y, double z) 54 | { 55 | set (x, y, z); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/quickhull3d/QhullTest.java: -------------------------------------------------------------------------------- 1 | package quickhull3d; 2 | 3 | class QhullTest 4 | { 5 | static double[] coords = new double[] 6 | { 7 | }; 8 | 9 | static int[][] faces = new int[][] 10 | { 11 | }; 12 | 13 | public static void main (String[] args) 14 | { 15 | QuickHull3D hull = new QuickHull3D (); 16 | QuickHull3DTest tester = new QuickHull3DTest(); 17 | 18 | hull = new QuickHull3D(); 19 | 20 | for (int i=0; i<100; i++) 21 | { 22 | double[] pnts = tester.randomCubedPoints (100, 1.0, 0.5); 23 | 24 | hull.setFromQhull (pnts, pnts.length/3, /*triangulated=*/false); 25 | 26 | pnts = tester.addDegeneracy ( 27 | QuickHull3DTest.VERTEX_DEGENERACY, pnts, hull); 28 | 29 | // hull = new QuickHull3D (); 30 | hull.setFromQhull (pnts, pnts.length/3, /*triangulated=*/true); 31 | 32 | if (!hull.check(System.out)) 33 | { System.out.println ("failed for qhull triangulated"); 34 | } 35 | 36 | // hull = new QuickHull3D (); 37 | hull.setFromQhull (pnts, pnts.length/3, /*triangulated=*/false); 38 | 39 | if (!hull.check(System.out)) 40 | { System.out.println ("failed for qhull regular"); 41 | } 42 | 43 | // hull = new QuickHull3D (); 44 | hull.build (pnts, pnts.length/3); 45 | hull.triangulate(); 46 | 47 | if (!hull.check(System.out)) 48 | { System.out.println ("failed for QuickHull3D triangulated"); 49 | } 50 | 51 | // hull = new QuickHull3D (); 52 | hull.build (pnts, pnts.length/3); 53 | 54 | if (!hull.check(System.out)) 55 | { System.out.println ("failed for QuickHull3D regular"); 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/quickhull3d/SimpleExample.java: -------------------------------------------------------------------------------- 1 | package quickhull3d; 2 | 3 | /** 4 | * Simple example usage of QuickHull3D. Run as the command 5 | *
 6 |  *   java quickhull3d.SimpleExample
 7 |  * 
8 | */ 9 | public class SimpleExample 10 | { 11 | /** 12 | * Run for a simple demonstration of QuickHull3D. 13 | */ 14 | public static void main (String[] args) 15 | { 16 | // x y z coordinates of 6 points 17 | Point3d[] points = new Point3d[] 18 | { new Point3d (0.0, 0.0, 0.0), 19 | new Point3d (1.0, 0.5, 0.0), 20 | new Point3d (2.0, 0.0, 0.0), 21 | new Point3d (0.5, 0.5, 0.5), 22 | new Point3d (0.0, 0.0, 2.0), 23 | new Point3d (0.1, 0.2, 0.3), 24 | new Point3d (0.0, 2.0, 0.0), 25 | }; 26 | 27 | QuickHull3D hull = new QuickHull3D(); 28 | hull.build (points); 29 | 30 | System.out.println ("Vertices:"); 31 | Point3d[] vertices = hull.getVertices(); 32 | for (int i=0; i 3 | 4 | 5 | ##library.name## 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 25 | 26 | 38 | 39 |
40 | 41 |
42 |

##library.name##

43 |

44 | A Library by ##author.name## for the Processing programming environment.
45 | Last update, ##date##. 46 |

47 |

48 | ##library.sentence##
49 | ##library.paragraph##
50 | Feel free to replace this paragraph with a description of the Library.
51 | Contributed Libraries are developed, documented, and maintained by members of the Processing community. Further directions are included with each Library. For feedback and support, please post to the Discourse. We strongly encourage all Libraries to be open source, but not all of them are. 52 |

53 |
54 | 55 | 56 | 57 |
58 |

Download

59 |

60 | Download ##library.name## version ##library.prettyVersion## (##library.version##) in 61 | .zip format. 62 |

63 |

Installation

64 |

65 | Unzip and put the extracted ##project.name## folder into the libraries folder of your Processing sketches. Reference and examples are included in the ##project.name## folder. 66 |

67 |
68 | 69 | 70 |
71 |

Keywords. ##library.keywords##

72 |

Reference. Have a look at the javadoc reference here. A copy of the reference is included in the .zip as well.

73 |

Source. The source code of ##library.name## is available at ##source.host##, and its repository can be browsed here.

74 |
75 | 76 | 77 |
78 |

Examples

79 |

Find a list of examples in the current distribution of ##library.name##, or have a look at them by following the links below.

80 |
    81 | ##examples## 82 |
83 |
84 | 85 | 86 |
87 |

Tested

88 |

89 | 90 | Platform ##tested.platform## 91 | 92 | 93 |
Processing ##tested.processingVersion## 94 | 95 | 96 |
Dependencies ##library.dependencies## 97 |

98 |
99 | 100 | 101 | 102 | 114 | 115 | 116 | 121 | 122 | 123 | 127 | 128 | 129 |
130 |
131 | 132 | 135 |
136 | 137 | -------------------------------------------------------------------------------- /web/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* processingLibs style by andreas schlegel, sojamo. */ 2 | 3 | 4 | * { 5 | margin:0; 6 | padding:0; 7 | border:0; 8 | } 9 | 10 | 11 | body { 12 | font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; 13 | font-size : 100%; 14 | font-size : 0.70em; 15 | font-weight : normal; 16 | line-height : normal; 17 | } 18 | 19 | 20 | 21 | #container { 22 | margin-left:64px; 23 | background-color:#fff; 24 | } 25 | 26 | #header { 27 | float:left; 28 | padding-top:24px; 29 | padding-bottom:48px; 30 | } 31 | 32 | #menu { 33 | margin-top:16px; 34 | float:left; 35 | margin-bottom:64px; 36 | } 37 | 38 | 39 | #about, 40 | #download, 41 | #examples, 42 | #demos, 43 | #misc { 44 | width:480px; 45 | float:left; 46 | margin-right:24px; 47 | } 48 | 49 | 50 | #resources, #info { 51 | width:320px; 52 | float:left; 53 | } 54 | 55 | 56 | .clear { 57 | clear:both; 58 | } 59 | 60 | #footer { 61 | margin-top:300px; 62 | height:20px; 63 | margin-bottom:32px; 64 | } 65 | 66 | 67 | ul { 68 | list-style:none; 69 | padding:0; 70 | margin:0; 71 | } 72 | 73 | 74 | #menu ul li, #subMenu ul li { 75 | float:left; 76 | padding-right:6px; 77 | } 78 | 79 | 80 | 81 | 82 | 83 | 84 | /* Headings */ 85 | 86 | h1 { 87 | font-size:2em; 88 | font-weight:normal; 89 | } 90 | 91 | 92 | h2, h3, h4, h5, th { 93 | font-size:1.3em; 94 | font-weight:normal; 95 | margin-bottom:4px; 96 | } 97 | 98 | 99 | 100 | p { 101 | font-size:1em; 102 | width:90%; 103 | margin-bottom:32px; 104 | } 105 | 106 | 107 | pre, code { 108 | font-family:"Courier New", Courier, monospace; 109 | font-size:1em; 110 | line-height:normal; 111 | } 112 | 113 | 114 | 115 | 116 | hr { 117 | border:0; 118 | height:1px; 119 | margin-bottom:24px; 120 | } 121 | 122 | 123 | a { 124 | text-decoration: underline; 125 | font-weight: normal; 126 | } 127 | 128 | 129 | a:hover, 130 | a:active { 131 | text-decoration: underline; 132 | font-weight: normal; 133 | } 134 | 135 | 136 | a:visited, 137 | a:link:visited { 138 | text-decoration: underline; 139 | font-weight: normal; 140 | } 141 | 142 | 143 | 144 | img { 145 | border: 0px solid #000000; 146 | } 147 | 148 | 149 | 150 | 151 | 152 | /* COLORS */ 153 | 154 | 155 | body { 156 | color : #333; 157 | background-color :#fff; 158 | } 159 | 160 | 161 | #header { 162 | background-color:#fff; 163 | color:#333; 164 | } 165 | 166 | 167 | 168 | h1, h2, h3, h4, h5, h6 { 169 | color:#666; 170 | } 171 | 172 | 173 | pre, code { 174 | color: #000000; 175 | } 176 | 177 | 178 | a,strong { 179 | color: #333; 180 | } 181 | 182 | 183 | a:hover, 184 | a:active { 185 | color: #333; 186 | } 187 | 188 | 189 | a:visited, 190 | a:link:visited { 191 | color: #333; 192 | } 193 | 194 | 195 | #footer, #menu { 196 | background-color:#fff; 197 | color:#333; 198 | } 199 | 200 | 201 | #footer a, #menu a { 202 | color:#333; 203 | } 204 | --------------------------------------------------------------------------------