diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index f7a5dcd..2a1b4b9 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-07T13:21:11","documenter_version":"1.5.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-07T13:31:07","documenter_version":"1.5.0"}} \ No newline at end of file diff --git a/dev/api/index.html b/dev/api/index.html index 4d30ffd..007d51e 100644 --- a/dev/api/index.html +++ b/dev/api/index.html @@ -8,4 +8,4 @@ A = rand(50,50,50) # 3D Matrix points,faces = isosurface(A, MarchingCubes(iso=1))

Isosurface

isosurface is the common and generic API for isosurface extraction with any type of abstract vector/vertex/face type.

Meshing.isosurfaceFunction
isosurface(V)
-isosurface(V, method::AbstractMeshingAlgorithm, X, Y, Z)

isosurface is the general interface to all isosurface extraction algorithms.

Returns: (Vector{NTuple{3, T}, }, Vector{NTuple{3, Int}})

Defaults: method must be an instance of an AbstractMeshingAlgorithm, e.g.:

  • MarchingCubes()
  • MarchingTetrahedra()

If isosurface is called without a specified algorithm, it will default to MarchingCubes.

If a subtype of AbstractArray is specified, the mesh will by default be centered at the origin between (-1,1) in each axis.

See also:

source

Meshing Algorithms

Three meshing algorithms exist:

Each takes optional iso and eps parameters, e.g. MarchingCubes(iso=0.0,eps=1e-6).

Here iso controls the offset for the boundary detection. By default this is set to 0. eps is the detection tolerance for a voxel edge intersection.

Users must construct an algorithm type and use it as an argument to a GeometryTypes mesh call or isosurface call.

Visual Comparison: From left: Marching Cubes, Naive Surface Nets, Marching Tetrahedra

comparison

Meshing.MarchingCubesType
MarchingCubes(;iso=0.0)

Specifies the use of the Marching Cubes algorithm for isosurface extraction. This algorithm provides a good balance between performance and vertex count. In contrast to the other algorithms, vertices may be repeated, so mesh size may be large and it will be difficult to extract topological/connectivity information.

  • iso (default: 0.0) specifies the iso level to use for surface extraction.
source
Meshing.MarchingTetrahedraType
MarchingTetrahedra(;iso=0.0, eps=1e-3)

Specifies the use of the Marching Tetrahedra algorithm for isosurface extraction. This algorithm generates more faces. However, each vertex is guaranteed to not be repeated, making this algorithm useful for topological analysis.

  • iso specifies the iso level to use for surface extraction.
  • eps is the tolerence around a voxel corner to ensure manifold mesh generation.
source
Meshing.AbstractMeshingAlgorithmType
AbstractMeshingAlgorithm

Abstract type to specify an algorithm for isosurface extraction. See:

source
+isosurface(V, method::AbstractMeshingAlgorithm, X, Y, Z)

isosurface is the general interface to all isosurface extraction algorithms.

Returns: (Vector{NTuple{3, T}, }, Vector{NTuple{3, Int}})

Defaults: method must be an instance of an AbstractMeshingAlgorithm, e.g.:

If isosurface is called without a specified algorithm, it will default to MarchingCubes.

If a subtype of AbstractArray is specified, the mesh will by default be centered at the origin between (-1,1) in each axis.

See also:

source

Meshing Algorithms

Three meshing algorithms exist:

Each takes optional iso and eps parameters, e.g. MarchingCubes(iso=0.0,eps=1e-6).

Here iso controls the offset for the boundary detection. By default this is set to 0. eps is the detection tolerance for a voxel edge intersection.

Users must construct an algorithm type and use it as an argument to a GeometryTypes mesh call or isosurface call.

Visual Comparison: From left: Marching Cubes, Naive Surface Nets, Marching Tetrahedra

comparison

Meshing.MarchingCubesType
MarchingCubes(;iso=0.0)

Specifies the use of the Marching Cubes algorithm for isosurface extraction. This algorithm provides a good balance between performance and vertex count. In contrast to the other algorithms, vertices may be repeated, so mesh size may be large and it will be difficult to extract topological/connectivity information.

  • iso (default: 0.0) specifies the iso level to use for surface extraction.
source
Meshing.MarchingTetrahedraType
MarchingTetrahedra(;iso=0.0, eps=1e-3)

Specifies the use of the Marching Tetrahedra algorithm for isosurface extraction. This algorithm generates more faces. However, each vertex is guaranteed to not be repeated, making this algorithm useful for topological analysis.

  • iso specifies the iso level to use for surface extraction.
  • eps is the tolerence around a voxel corner to ensure manifold mesh generation.
source
Meshing.AbstractMeshingAlgorithmType
AbstractMeshingAlgorithm

Abstract type to specify an algorithm for isosurface extraction. See:

source
diff --git a/dev/examples/index.html b/dev/examples/index.html index a148750..13f54b5 100644 --- a/dev/examples/index.html +++ b/dev/examples/index.html @@ -41,4 +41,4 @@ # view with Makie import WGLMakie using LinearAlgebra -WGLMakie.mesh(vts, map(v -> GeometryBasics.TriangleFace(v...), fcs), color=[norm(v) for v in v]) +WGLMakie.mesh(vts, map(v -> GeometryBasics.TriangleFace(v...), fcs), color=[norm(v) for v in v]) diff --git a/dev/index.html b/dev/index.html index b8f256b..974ca06 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Index · Meshing

Meshing.jl

This package provides a suite of meshing (isosurface extraction) algorithms.

Algorithms included:

What is isosurface extraction?

Isosurface extraction is a common technique to visualize and analyze scalar fields and functions. It takes scalar data that is structured in grids and converts this into a series of points and faces suitable for 3D visualization, GPU computing, 3D Printing, or other analyses.

There are several applications for these techniques such as:

  • Medical Imaging of CT and MRI data
  • Visualization of Functions
  • Solid Modeling
  • Terrain Generation
+Index · Meshing

Meshing.jl

This package provides a suite of meshing (isosurface extraction) algorithms.

Algorithms included:

What is isosurface extraction?

Isosurface extraction is a common technique to visualize and analyze scalar fields and functions. It takes scalar data that is structured in grids and converts this into a series of points and faces suitable for 3D visualization, GPU computing, 3D Printing, or other analyses.

There are several applications for these techniques such as:

  • Medical Imaging of CT and MRI data
  • Visualization of Functions
  • Solid Modeling
  • Terrain Generation
diff --git a/dev/objects.inv b/dev/objects.inv index 4bcbc79..64a308c 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ