This is the manifolds Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 06:02:15 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
manifolds
Various manifold mesh algorithms
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/shirakumo/manifolds.git)
zlib
1.0.0
3d-math
(system).
3d-spaces
(system).
documentation-utils
(system).
package.lisp
(file).
types.lisp
(file).
manifolds.lisp
(file).
convert.lisp
(file).
documentation.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
manifolds/manifolds.asd
manifolds/package.lisp
manifolds/types.lisp
manifolds/manifolds.lisp
manifolds/convert.lisp
manifolds/documentation.lisp
manifolds/types.lisp
package.lisp
(file).
manifolds
(system).
edge
(function).
edge
(structure).
end
(reader).
(setf end)
(writer).
ensure-f32
(function).
ensure-f64
(function).
ensure-u32
(function).
extended-edge
(function).
extended-edge
(structure).
f32
(function).
f32
(type).
f32*
(function).
f64
(function).
f64
(type).
f64*
(function).
face
(type).
face-array
(type).
opposite
(reader).
(setf opposite)
(writer).
start
(reader).
(setf start)
(writer).
u32
(function).
u32
(type).
u32*
(function).
vertex
(type).
vertex-array
(type).
manifolds/manifolds.lisp
types.lisp
(file).
manifolds
(system).
2-manifold-p
(function).
boundary-length
(function).
boundary-list
(function).
bounding-box
(function).
centroid
(function).
closest-point-on-triangle
(function).
convex-volume
(function).
do-faces
(macro).
edge-list
(function).
face-adjacency-list
(function).
face-area
(function).
face-in-volume-p
(function).
face-normal
(function).
face-normals
(function).
faces-in-volume
(function).
half-edge-list
(function).
normalize
(function).
ray-triangle
(function).
separate-meshes
(function).
surface-area
(function).
v
(function).
(setf v)
(function).
vertex-adjacency-list
(function).
vertex-faces
(function).
%make-vertex-index
(function).
do-directions
(macro).
face-normal*
(function).
face-normals*
(function).
sbitp
(function).
(setf sbitp)
(function).
vertex-index
(structure).
vertex-index-index
(reader).
vertex-index-varr3
(function).
(setf vertex-index-varr3)
(function).
manifolds/convert.lisp
manifolds.lisp
(file).
manifolds
(system).
print-object
(method).
%node
(function).
*dbg-start-time*
(special variable).
build-neighborhood
(function).
build-octtree
(function).
construct-quad-manifold
(function).
construct-triangle-mesh
(function).
copy-node
(function).
dbg
(function).
exterior-p
(function).
manifold
(function).
node
(structure).
node-bsize
(reader).
(setf node-bsize)
(writer).
node-children
(reader).
(setf node-children)
(writer).
node-empty-neighbors
(reader).
(setf node-empty-neighbors)
(writer).
node-exterior-p
(function).
node-faces
(reader).
(setf node-faces)
(writer).
node-level
(reader).
(setf node-level)
(writer).
node-location
(reader).
(setf node-location)
(writer).
node-neighbors
(reader).
(setf node-neighbors)
(writer).
node-number
(reader).
(setf node-number)
(writer).
node-occupied-p
(function).
node-p
(function).
normalize-vertices
(function).
project-manifold
(function).
split-octtree
(function).
transfer-vertices
(function).
manifolds/documentation.lisp
convert.lisp
(file).
manifolds
(system).
Packages are listed by definition order.
org.shirakumo.fraf.manifolds
common-lisp
.
org.shirakumo.fraf.math
.
2-manifold-p
(function).
boundary-length
(function).
boundary-list
(function).
bounding-box
(function).
centroid
(function).
closest-point-on-triangle
(function).
convex-volume
(function).
do-faces
(macro).
edge
(function).
edge
(structure).
edge-list
(function).
end
(reader).
(setf end)
(writer).
ensure-f32
(function).
ensure-f64
(function).
ensure-u32
(function).
extended-edge
(function).
extended-edge
(structure).
f32
(function).
f32
(type).
f32*
(function).
f64
(function).
f64
(type).
f64*
(function).
face
(type).
face-adjacency-list
(function).
face-area
(function).
face-array
(type).
face-in-volume-p
(function).
face-normal
(function).
face-normals
(function).
faces-in-volume
(function).
half-edge-list
(function).
normalize
(function).
opposite
(reader).
(setf opposite)
(writer).
ray-triangle
(function).
separate-meshes
(function).
start
(reader).
(setf start)
(writer).
surface-area
(function).
u32
(function).
u32
(type).
u32*
(function).
v
(function).
(setf v)
(function).
vertex
(type).
vertex-adjacency-list
(function).
vertex-array
(type).
vertex-faces
(function).
%make-vertex-index
(function).
%node
(function).
*dbg-start-time*
(special variable).
build-neighborhood
(function).
build-octtree
(function).
construct-quad-manifold
(function).
construct-triangle-mesh
(function).
copy-node
(function).
dbg
(function).
do-directions
(macro).
exterior-p
(function).
face-normal*
(function).
face-normals*
(function).
manifold
(function).
node
(structure).
node-bsize
(reader).
(setf node-bsize)
(writer).
node-children
(reader).
(setf node-children)
(writer).
node-empty-neighbors
(reader).
(setf node-empty-neighbors)
(writer).
node-exterior-p
(function).
node-faces
(reader).
(setf node-faces)
(writer).
node-level
(reader).
(setf node-level)
(writer).
node-location
(reader).
(setf node-location)
(writer).
node-neighbors
(reader).
(setf node-neighbors)
(writer).
node-number
(reader).
(setf node-number)
(writer).
node-occupied-p
(function).
node-p
(function).
normalize-vertices
(function).
project-manifold
(function).
sbitp
(function).
(setf sbitp)
(function).
split-octtree
(function).
transfer-vertices
(function).
vertex-index
(structure).
vertex-index-index
(reader).
vertex-index-varr3
(function).
(setf vertex-index-varr3)
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Iterate over the faces of a FACE-ARRAY.
A B and C are bound to the vertex indices for each face in the FACE-ARRAY. RESULT is evaluated and returned at the end of iteration.
FACES must be of type FACE-ARRAY.
See FACE-ARRAY (type)
Returns true if the face array describes a 2-manifold.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
Returns the length of the boundary of the mesh.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See BOUNDARY-LIST
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns a vector of edges on the boundary of the faces.
Each entry in the resulting vector is one edge described by an
EXTENDED-EDGE instance with the START and END slots being vertex
indices, and the edge pointing from the START to the END. The OPPOSITE
slot contains the index of the third vertex of the face to which the
edge indicated by START and END belongs.
Note that this requires that the FACES describe one coherent shape
with only one outside edge. It does not consider multiple edge loops
on the faces as separate boundaries.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
Returns the AABB of the point cloud.
The AABB is returned as two VEC3s, the first being the center,, and
the second being the half-size.
VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
Returns the centroid of the mesh.
FACES must be a FACE-ARRAY. VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns the closest point to POINT that lies on the FACE.
FACE must be a FACE.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See FACE (type)
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns the volume of the mesh.
The mesh must be convex. If it is concave, the result will not be
accurate and may fail to compute.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns a vector of bidirectional edges for the described faces.
Unlike the half-edge-list, this edge-list does not contain any
duplicated edges between any two vertices. Each entry in the resulting
vector is one edge described by an EDGE instance with the START and
END slots being vertex indices. Note that the actual direction of the
edge is not indicated.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
See HALF-EDGE-LIST
Ensure the given vector is an F32-vector.
If it is not, returns a fresh vector that is.
See F32 (type)
Ensure the given vector is an F64-vector.
If it is not, returns a fresh vector that is.
See F64 (type)
Ensure the given vector is an U32-vector.
If it is not, returns a fresh vector that is.
See U32 (type)
Coerce a REAL into a F32.
See F32 (type)
Construct a F32-vector from arguments.
The arguments are automatically coerced to F32 elements.
See F32 (type)
Coerce a REAL into a F64.
See F64 (type)
Construct a F64-vector from arguments.
The arguments are automatically coerced to F64 elements.
See F64 (type)
Returns a vector of adjacent faces for each face.
To get the list of adjacent faces for a face, access the element
corresponding to the face’s index.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
Returns the area covered by the face.
FACE must be a FACE.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See FACE (type)
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns true if the FACE is within the AABB described by LOCATION and BSIZE.
LOCATION should be the center of the AABB, and BSIZE the half-size
extent of the AABB.
FACE must be a FACE.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See FACES-IN-VOLUME
See FACE (type)
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns the normal vector of the FACE.
FACE must be a FACE.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See FACE (type)
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns an array of the normals of all faces.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns a vector of all faces that are part of the AABB described by LOCATION and BSIZE.
LOCATION should be the center of the AABB, and BSIZE the half-size
extent of the AABB.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See FACE-IN-VOLUME-P
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns a vector of half edges for the described faces.
A half-edge is a directed edge from one vertex of a face to
another. Each entry in the array represents a half-edge and contains
an EDGE instance with the START and END slots each being vertex
indices, and the edge pointing from the START to the END.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
See EDGE-LIST
Normalizes the mesh by removing faces with no surface area, and merging vertices that are within a threshold from each other.
Returns two values, a fresh VERTICES array and fresh FACES array.
The THRESHOLD is the distance threshold below which two vertices are
considered the same. You may also optionally pass in a CENTER and
SCALE to which the resulting vertices are positioned and scaled prior
to normalisation.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns a list of disjoint meshes.
Each entry in the list is a CONS of a VERTEX-ARRAY and a FACE-ARRAY
that make up the mesh. Each mesh is also disjoint from every other
mesh, meaning they do not share any vertices.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Returns the total surface area of the mesh.
FACES must be a FACE-ARRAY.
VERTICES must be a VERTEX-ARRAY.
See FACE-AREA
See VERTEX-ARRAY (type)
See FACE-ARRAY (type)
Coerce a REAL into a U32.
See U32 (type)
Construct a U32-vector from arguments.
The arguments are automatically coerced to U32 elements.
See U32 (type)
Access a vertex as a vector.
The vector matches the element-type of the vertices array.
VERTICES must be a VERTEX-ARRAY.
See VERTEX-ARRAY (type)
Returns a vector of adjacent vertices for each vertex.
To get the list of adjacent vertices for a vertex, access the
element corresponding to the vertex’ index.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
Returns a vector of faces bordering each vertex.
Each element in the returned array is another vector of face indices
for the element’s corresponding vector.
FACES must be a FACE-ARRAY.
See FACE-ARRAY (type)
Type alias for SINGLE-FLOAT.
See F32
Type alias for DOUBLE-FLOAT.
See F64
Type for a face index.
See FACE-ARRAY (type)
Type for a face vertex indices array.
Faces are always triangular, meaning a pair of three vertex indices
represents a face. The order of the vertices must always be
counter-clockwise whenever the normal of the face matters.
Each vertex index in the face array describes the index of the vertex,
NOT the starting index in the corresponding vertex-array. Meaning in
order to reach the first element of the described vertex, the index
must first be multiplied by 3.
This is an alias for:
(SIMPLE-ARRAY (UNSIGNED-BYTE 32) (*))
Type alias for (UNSIGNED-BYTE 32)
See U32
Type for a vertex index.
See VERTEX-ARRAY (type)
Type for a vertex array.
Vertices are always a triplet of X Y Z coordinates. The vertices by
themselves represent a point cloud. A FACE-ARRAY is required to build
a surface using the vertices.
If an element-type argument is given is an alias for:
(SIMPLE-ARRAY element-type (*))
Otherwise is an alias for:
(OR (SIMPLE-ARRAY SINGLE-FLOAT (*))
(SIMPLE-ARRAY DOUBLE-FLOAT (*)))
structure-object
.
org.shirakumo.fraf.math.vectors:vec3
org.shirakumo.fraf.math.vectors:vec3
(unsigned-byte 32)
0
common-lisp
.
(unsigned-byte 32)
1
(simple-array (unsigned-byte 32) (*))
(or null (simple-array org.shirakumo.fraf.manifolds::node (8)))
(simple-vector 6)
(make-array 6 :initial-element nil)
(simple-vector 6)
(make-array 6 :initial-element nil)
vec3
.
(unsigned-byte 32)
0
This slot is read-only.
Jump to: | %
(
2
B C D E F H M N O P R S T U V |
---|
Jump to: | %
(
2
B C D E F H M N O P R S T U V |
---|
Jump to: | *
B C E F I L N O S |
---|
Jump to: | *
B C E F I L N O S |
---|
Jump to: | C D E F M N O P S T U V |
---|
Jump to: | C D E F M N O P S T U V |
---|