Skip to content

Commit 2309a50

Browse files
authored
update readme
1 parent 359238f commit 2309a50

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

README.md

+29-1
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ Several tutorials for using g3Sharp have been posted on the Gradientspace blog:
183183
- vertices can be pinned to fixed positions
184184
- vertices can be constrained to an IProjectionTarget - eg 3D polylines, smooth curves, surfaces, etc
185185
- **MeshConstraintUtil** constructs common constraint situations
186+
- **RemesherPro**: extension of Remesher that can remesh much more quickly
187+
- FastestRemesh() uses active-set queue to converge, instead of fixed full-mesh passes
188+
- SharpEdgeReprojectionRemesh() tries to remesh while aligning triangle face normals to the projection target, in an attempt to preserve sharp edges
189+
- FastSplitIteration() quickly splits edges to increase available vertex resolution
186190
- **RegionRemesher**: applies *Remesher* to sub-region of a *DMesh3*, via *DSubmesh3*
187191
- boundary of sub-region automatically preserved
188192
- *BackPropropagate()* function integrates submesh back into input mesh
@@ -221,8 +225,10 @@ Several tutorials for using g3Sharp have been posted on the Gradientspace blog:
221225
- **TubeGenerator**: polygon swept along polyline
222226
- **Curve3Axis3RevolveGenerator**: 3D polyline revolved around 3D axis
223227
- **Curve3Curve3RevolveGenerator**: 3D polyline revolved around 3D polyline (!)
228+
- **TriangulatedPolygonGenerator**: triangulate 2D polygon-with-holes
224229
- **VoxelSurfaceGenerator**: generates minecraft-y voxel mesh surface
225230
- **MarchingCubes**: multi-threaded triangulation of implicit functions / scalar fields
231+
- **MarchingCubesPro**: continuation-method approach to marching cubes that explores isosurface from seed points (more efficient but may miss things if seed points are insufficient)
226232

227233

228234
## Mesh Selections
@@ -249,14 +255,32 @@ Several tutorials for using g3Sharp have been posted on the Gradientspace blog:
249255
- **MeshExtrudeMesh**: extrude all faces of mesh and stitch boundaries w/ triangle strips
250256
- **MeshICP**: basic iterative-closest-point alignment to target surface
251257
- **MeshInsertUVPolyCurve**: insert a 2D polyline (optionally closed) into a 2D mesh
258+
- **MeshInsertPolygon**: insert a 2D polygon-with-holes into a 2D mesh and return set of triangles "inside" polygon
259+
- **MeshInsertProjectedPolygon**: variant of MeshInsertPolygon that inserts 2D polygon onto 3D mesh surface via projection plane
252260
- **MeshIterativeSmooth**: standard iterative vertex-laplacian smoothing with uniform, cotan, mean-value weights
253261
- **MeshLocalParam**: calculate Discrete Exponential Map uv-coords around a point on mesh
254262
- **MeshLoopClosure**: cap open region of mesh with a plane
255263
- **MeshLoopSmooth**: smooth an embedded *EdgeLoop* of a mesh
256264
- **MeshPlaneCut**: cut a mesh with a plane, return new **EdgeLoop**s and **EdgeSpans**, and optionally fill holes
257265
- **RegionOperator**: support class that makes it easy to extract a submesh and safely re-integrate it back into base mesh. IE like RegionRemesher, but you can do arbitrary changes to the submesh (as long as you preserve boundary).
258-
- **SimpleHoleFiller**: topological filling of an open boundary edge loop. No attempt to preserve shape whatsoever!
266+
- **MeshStitchLoops**: Stitch together two edge loops without any constraint that they have the same vertex count
267+
- **MeshTrimLoop**: trim mesh with 3D polyline curve lying on mesh faces (approximately)
259268
- **MeshIsoCurve**: compute piecewise-linear iso-curves of a function on a mesh, as a **DGraph3**
269+
- **MeshTopology**: Extract mesh sharp-edge-path topology based on crease angle
270+
- **MeshAssembly**: Decompose mesh into submeshes based on connected solids and open patches
271+
- **MeshSpatialSort**: sorts set of mesh components into "solids" (each solid is outer mesh and contained cavity meshes)
272+
- **MeshMeshCut**: Cut one mesh with another, and optionally remove contained regions
273+
- **MeshBoolean**: Apply **MeshMeshCut** to each of a pair of meshes, and then try to resample cut boundaries so they have same vertices. **This is not a robust mesh boolean!**
274+
- **SimpleHoleFiller**: topological filling of an open boundary edge loop. No attempt to preserve shape whatsoever!
275+
- **SmoothedHoleFill**: fill hole in mesh smoothly, ie with (approximate) boundary tangent continuity
276+
- **MinimalHoleFill**: construct "minimal" fill that is often developable (recovers sharp edges well)
277+
- **PlanarHoleFiller**: fill planar holes in mesh by mapping to 2D, handles nested holes (eg from plane cut through torus)
278+
- **PlanarSpansFiller**: try to fill disconnected set of planar spans, by chaining them (WIP)
279+
- **MeshRepairOrientation**: make triangle winding order consistent across mesh connected components (if possible), and then assign global orientation via spatial sorting/nesting
280+
- **MergeCoincidentEdges**: weld coincident open boundary edges of mesh (more robust than weld vertices!)
281+
- **RemoveDuplicateTriangles**: remove duplicate triangles of mesh
282+
- **RemoteOccludedTriangles**: remove triangles that are "occluded" under various definitions
283+
- **MeshAutoRepair**: apply many of the above algorithms in an attempt to automatically "repair" an input mesh, where "repaired" means the mesh is closed and manifold.
260284

261285

262286
## Spatial Data Structures
@@ -277,6 +301,9 @@ Several tutorials for using g3Sharp have been posted on the Gradientspace blog:
277301
- **Bitmap3**: 3D dense bitmap
278302
- **BiGrid3**: two-level DSparseGrid3
279303
- **MeshSignedDistanceGrid**: 3D fast-marching construction of narrow-band level set / voxel-distance-field for mesh
304+
- **MeshScalarSamplingGrid**: Samples scalar function on 3D grid. Can sample full grid or narrow band around specific iso-contour
305+
- **MeshWindingNumberGrid**: MeshScalarSamplingGrid variant specifically for computing narrow-band Mesh Winding Number field on meshes with holes (finds narrow-band in hole regions via flood-fill)
306+
- **CachingMeshSDF**: variant of MeshSignedDistanceGrid that does lazy evaluation of distances (eg for use with continuation-method MarchingCubesPro)
280307
- **IProjectionTarget** implementations for DCurve3, DMesh3, Plane3, Circle3d, Cylinder3d, etc, for use w/ reprojection in Remesher and other algorithms
281308
- **IIntersectionTarget** implementations for DMesh3, transformed DMesh3, Plane3
282309

@@ -323,6 +350,7 @@ Several tutorials for using g3Sharp have been posted on the Gradientspace blog:
323350

324351
- **Cylinder3d**
325352
- **DenseGridTrilinearImplicit**: trilinear interpolant of 3D grid
353+
- **CachingDenseGridTrilinearImplicit**: variant of DenseGridTrilinearImplicit that does lazy evaluation of grid values based on an implicit function
326354

327355

328356
## I/O

0 commit comments

Comments
 (0)