The manifolds Reference Manual

This is the manifolds Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:15:19 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 manifolds

Various manifold mesh algorithms

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://shirakumo.github.io/manifolds/

Source Control

(GIT https://github.com/shirakumo/manifolds.git)

Bug Tracker

https://github.com/shirakumo/manifolds/issues

License

zlib

Version

1.0.0

Dependencies
  • 3d-math (system).
  • 3d-spaces (system).
  • documentation-utils (system).
Source

manifolds.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 manifolds/manifolds.asd

Source

manifolds.asd.

Parent Component

manifolds (system).

ASDF Systems

manifolds.


3.1.2 manifolds/package.lisp

Source

manifolds.asd.

Parent Component

manifolds (system).

Packages

org.shirakumo.fraf.manifolds.


3.1.3 manifolds/types.lisp

Dependency

package.lisp (file).

Source

manifolds.asd.

Parent Component

manifolds (system).

Public Interface

3.1.4 manifolds/manifolds.lisp

Dependency

types.lisp (file).

Source

manifolds.asd.

Parent Component

manifolds (system).

Public Interface
Internals

3.1.5 manifolds/convert.lisp

Dependency

manifolds.lisp (file).

Source

manifolds.asd.

Parent Component

manifolds (system).

Public Interface

print-object (method).

Internals

3.1.6 manifolds/documentation.lisp

Dependency

convert.lisp (file).

Source

manifolds.asd.

Parent Component

manifolds (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.fraf.manifolds

Source

package.lisp.

Use List
  • common-lisp.
  • org.shirakumo.fraf.math.
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: do-faces ((a b c faces &optional result) &body body)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.


5.1.2 Ordinary functions

Function: 2-manifold-p (faces &optional adjacency)

Returns true if the face array describes a 2-manifold.

FACES must be a FACE-ARRAY.

See FACE-ARRAY (type)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: boundary-length (vertices faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: boundary-list (faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: bounding-box (vertices)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: centroid (vertices faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: closest-point-on-triangle (vertices faces face point)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: convex-volume (vertices faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: edge (start end)
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: edge-list (faces)

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

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Reader: end (instance)
Writer: (setf end) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Target Slot

end.

Function: ensure-f32 (a)

Ensure the given vector is an F32-vector.

If it is not, returns a fresh vector that is.

See F32 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: ensure-f64 (a)

Ensure the given vector is an F64-vector.

If it is not, returns a fresh vector that is.

See F64 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: ensure-u32 (a)

Ensure the given vector is an U32-vector.

If it is not, returns a fresh vector that is.

See U32 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: extended-edge (start end opposite)
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: f32 (a)

Coerce a REAL into a F32.

See F32 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: f32* (&rest i)

Construct a F32-vector from arguments.

The arguments are automatically coerced to F32 elements.

See F32 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: f64 (a)

Coerce a REAL into a F64.

See F64 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: f64* (&rest i)

Construct a F64-vector from arguments.

The arguments are automatically coerced to F64 elements.

See F64 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: face-adjacency-list (faces &optional adjacency)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: face-area (vertices faces face)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: face-in-volume-p (vertices faces face location bsize)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: face-normal (vertices faces face)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: face-normals (vertices faces &optional face-normals)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: faces-in-volume (vertices faces location bsize)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: half-edge-list (faces)

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

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: normalize (vertices indices &key threshold center scale)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Reader: opposite (instance)
Writer: (setf opposite) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Target Slot

opposite.

Function: ray-triangle (p dir a b c)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: separate-meshes (vertices faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Reader: start (instance)
Writer: (setf start) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Target Slot

start.

Function: surface-area (vertices faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: u32 (a)

Coerce a REAL into a U32.

See U32 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: u32* (&rest i)

Construct a U32-vector from arguments.

The arguments are automatically coerced to U32 elements.

See U32 (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Function: v (vertices i)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: (setf v) (vertices i)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: vertex-adjacency-list (faces &optional adjacency)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: vertex-faces (faces &optional vertex-faces)

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)

Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.


5.1.3 Standalone methods

Method: print-object ((node node) stream)
Source

convert.lisp.


5.1.4 Structures

Structure: edge
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Direct superclasses

structure-object.

Direct subclasses

extended-edge.

Direct slots
Slot: start
Type

org.shirakumo.fraf.manifolds:vertex

Initform

(error "required")

Readers

start.

Writers

(setf start).

Slot: end
Type

org.shirakumo.fraf.manifolds:vertex

Initform

(error "required")

Readers

end.

Writers

(setf end).

Structure: extended-edge
Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Direct superclasses

edge.

Direct slots
Slot: opposite
Type

org.shirakumo.fraf.manifolds:vertex

Initform

(error "required")

Readers

opposite.

Writers

(setf opposite).


5.1.5 Types

Type: f32 ()

Type alias for SINGLE-FLOAT.

See F32

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Type: f64 ()

Type alias for DOUBLE-FLOAT.

See F64

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Type: face ()

Type for a face index.

See FACE-ARRAY (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Type: face-array ()

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) (*))

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Type: u32 ()

Type alias for (UNSIGNED-BYTE 32)

See U32

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Type: vertex ()

Type for a vertex index.

See VERTEX-ARRAY (type)

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.

Type: vertex-array (&optional element-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 (*)))

Package

org.shirakumo.fraf.manifolds.

Source

types.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *dbg-start-time*
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.


5.2.2 Macros

Macro: do-directions ((x y z &optional min max result) &body body)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.


5.2.3 Ordinary functions

Function: %make-vertex-index (varr3 index)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: %node (location bsize faces &key number level)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: build-neighborhood (node)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: build-octtree (vertices faces &key resolution)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: construct-quad-manifold (tree)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: construct-triangle-mesh (vcolor vertices quad-faces vertex-faces tree)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: copy-node (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: dbg (&rest stuff)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: exterior-p (node point)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: face-normal* (vertices faces face)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: face-normals* (vertices faces &optional face-normals)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: manifold (vertices faces &key resolution project)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Reader: node-bsize (instance)
Writer: (setf node-bsize) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

bsize.

Reader: node-children (instance)
Writer: (setf node-children) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

children.

Reader: node-empty-neighbors (instance)
Writer: (setf node-empty-neighbors) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

empty-neighbors.

Function: node-exterior-p (node)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Reader: node-faces (instance)
Writer: (setf node-faces) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

faces.

Reader: node-level (instance)
Writer: (setf node-level) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

level.

Reader: node-location (instance)
Writer: (setf node-location) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

location.

Reader: node-neighbors (instance)
Writer: (setf node-neighbors) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

neighbors.

Reader: node-number (instance)
Writer: (setf node-number) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Target Slot

number.

Function: node-occupied-p (node)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: node-p (object)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: normalize-vertices (vertices faces)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: project-manifold (vertices faces vertex-faces orig-vertices orig-faces &key iterations)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: sbitp (array i)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: (setf sbitp) (array i)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: split-octtree (node vertices faces)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Function: transfer-vertices (vertices faces)
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Reader: vertex-index-index (instance)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Target Slot

index.

Function: vertex-index-varr3 (instance)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Function: (setf vertex-index-varr3) (instance)
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.


5.2.4 Structures

Structure: node
Package

org.shirakumo.fraf.manifolds.

Source

convert.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: location
Type

org.shirakumo.fraf.math.vectors:vec3

Readers

node-location.

Writers

(setf node-location).

Slot: bsize
Type

org.shirakumo.fraf.math.vectors:vec3

Readers

node-bsize.

Writers

(setf node-bsize).

Slot: level
Type

(unsigned-byte 32)

Initform

0

Readers

node-level.

Writers

(setf node-level).

Slot: number
Package

common-lisp.

Type

(unsigned-byte 32)

Initform

1

Readers

node-number.

Writers

(setf node-number).

Slot: faces
Type

(simple-array (unsigned-byte 32) (*))

Readers

node-faces.

Writers

(setf node-faces).

Slot: children
Type

(or null (simple-array org.shirakumo.fraf.manifolds::node (8)))

Readers

node-children.

Writers

(setf node-children).

Slot: neighbors
Type

(simple-vector 6)

Initform

(make-array 6 :initial-element nil)

Readers

node-neighbors.

Writers

(setf node-neighbors).

Slot: empty-neighbors
Type

(simple-vector 6)

Initform

(make-array 6 :initial-element nil)

Readers

node-empty-neighbors.

Writers

(setf node-empty-neighbors).

Structure: vertex-index
Package

org.shirakumo.fraf.manifolds.

Source

manifolds.lisp.

Direct superclasses

vec3.

Direct slots
Slot: index
Type

(unsigned-byte 32)

Initform

0

Readers

vertex-index-index.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (   2  
B   C   D   E   F   H   M   N   O   P   R   S   T   U   V  
Index Entry  Section

%
%make-vertex-index: Private ordinary functions
%node: Private ordinary functions

(
(setf end): Public ordinary functions
(setf node-bsize): Private ordinary functions
(setf node-children): Private ordinary functions
(setf node-empty-neighbors): Private ordinary functions
(setf node-faces): Private ordinary functions
(setf node-level): Private ordinary functions
(setf node-location): Private ordinary functions
(setf node-neighbors): Private ordinary functions
(setf node-number): Private ordinary functions
(setf opposite): Public ordinary functions
(setf sbitp): Private ordinary functions
(setf start): Public ordinary functions
(setf v): Public ordinary functions
(setf vertex-index-varr3): Private ordinary functions

2
2-manifold-p: Public ordinary functions

B
boundary-length: Public ordinary functions
boundary-list: Public ordinary functions
bounding-box: Public ordinary functions
build-neighborhood: Private ordinary functions
build-octtree: Private ordinary functions

C
centroid: Public ordinary functions
closest-point-on-triangle: Public ordinary functions
construct-quad-manifold: Private ordinary functions
construct-triangle-mesh: Private ordinary functions
convex-volume: Public ordinary functions
copy-node: Private ordinary functions

D
dbg: Private ordinary functions
do-directions: Private macros
do-faces: Public macros

E
edge: Public ordinary functions
edge-list: Public ordinary functions
end: Public ordinary functions
ensure-f32: Public ordinary functions
ensure-f64: Public ordinary functions
ensure-u32: Public ordinary functions
extended-edge: Public ordinary functions
exterior-p: Private ordinary functions

F
f32: Public ordinary functions
f32*: Public ordinary functions
f64: Public ordinary functions
f64*: Public ordinary functions
face-adjacency-list: Public ordinary functions
face-area: Public ordinary functions
face-in-volume-p: Public ordinary functions
face-normal: Public ordinary functions
face-normal*: Private ordinary functions
face-normals: Public ordinary functions
face-normals*: Private ordinary functions
faces-in-volume: Public ordinary functions
Function, %make-vertex-index: Private ordinary functions
Function, %node: Private ordinary functions
Function, (setf end): Public ordinary functions
Function, (setf node-bsize): Private ordinary functions
Function, (setf node-children): Private ordinary functions
Function, (setf node-empty-neighbors): Private ordinary functions
Function, (setf node-faces): Private ordinary functions
Function, (setf node-level): Private ordinary functions
Function, (setf node-location): Private ordinary functions
Function, (setf node-neighbors): Private ordinary functions
Function, (setf node-number): Private ordinary functions
Function, (setf opposite): Public ordinary functions
Function, (setf sbitp): Private ordinary functions
Function, (setf start): Public ordinary functions
Function, (setf v): Public ordinary functions
Function, (setf vertex-index-varr3): Private ordinary functions
Function, 2-manifold-p: Public ordinary functions
Function, boundary-length: Public ordinary functions
Function, boundary-list: Public ordinary functions
Function, bounding-box: Public ordinary functions
Function, build-neighborhood: Private ordinary functions
Function, build-octtree: Private ordinary functions
Function, centroid: Public ordinary functions
Function, closest-point-on-triangle: Public ordinary functions
Function, construct-quad-manifold: Private ordinary functions
Function, construct-triangle-mesh: Private ordinary functions
Function, convex-volume: Public ordinary functions
Function, copy-node: Private ordinary functions
Function, dbg: Private ordinary functions
Function, edge: Public ordinary functions
Function, edge-list: Public ordinary functions
Function, end: Public ordinary functions
Function, ensure-f32: Public ordinary functions
Function, ensure-f64: Public ordinary functions
Function, ensure-u32: Public ordinary functions
Function, extended-edge: Public ordinary functions
Function, exterior-p: Private ordinary functions
Function, f32: Public ordinary functions
Function, f32*: Public ordinary functions
Function, f64: Public ordinary functions
Function, f64*: Public ordinary functions
Function, face-adjacency-list: Public ordinary functions
Function, face-area: Public ordinary functions
Function, face-in-volume-p: Public ordinary functions
Function, face-normal: Public ordinary functions
Function, face-normal*: Private ordinary functions
Function, face-normals: Public ordinary functions
Function, face-normals*: Private ordinary functions
Function, faces-in-volume: Public ordinary functions
Function, half-edge-list: Public ordinary functions
Function, manifold: Private ordinary functions
Function, node-bsize: Private ordinary functions
Function, node-children: Private ordinary functions
Function, node-empty-neighbors: Private ordinary functions
Function, node-exterior-p: Private ordinary functions
Function, node-faces: Private ordinary functions
Function, node-level: Private ordinary functions
Function, node-location: Private ordinary functions
Function, node-neighbors: Private ordinary functions
Function, node-number: Private ordinary functions
Function, node-occupied-p: Private ordinary functions
Function, node-p: Private ordinary functions
Function, normalize: Public ordinary functions
Function, normalize-vertices: Private ordinary functions
Function, opposite: Public ordinary functions
Function, project-manifold: Private ordinary functions
Function, ray-triangle: Public ordinary functions
Function, sbitp: Private ordinary functions
Function, separate-meshes: Public ordinary functions
Function, split-octtree: Private ordinary functions
Function, start: Public ordinary functions
Function, surface-area: Public ordinary functions
Function, transfer-vertices: Private ordinary functions
Function, u32: Public ordinary functions
Function, u32*: Public ordinary functions
Function, v: Public ordinary functions
Function, vertex-adjacency-list: Public ordinary functions
Function, vertex-faces: Public ordinary functions
Function, vertex-index-index: Private ordinary functions
Function, vertex-index-varr3: Private ordinary functions

H
half-edge-list: Public ordinary functions

M
Macro, do-directions: Private macros
Macro, do-faces: Public macros
manifold: Private ordinary functions
Method, print-object: Public standalone methods

N
node-bsize: Private ordinary functions
node-children: Private ordinary functions
node-empty-neighbors: Private ordinary functions
node-exterior-p: Private ordinary functions
node-faces: Private ordinary functions
node-level: Private ordinary functions
node-location: Private ordinary functions
node-neighbors: Private ordinary functions
node-number: Private ordinary functions
node-occupied-p: Private ordinary functions
node-p: Private ordinary functions
normalize: Public ordinary functions
normalize-vertices: Private ordinary functions

O
opposite: Public ordinary functions

P
print-object: Public standalone methods
project-manifold: Private ordinary functions

R
ray-triangle: Public ordinary functions

S
sbitp: Private ordinary functions
separate-meshes: Public ordinary functions
split-octtree: Private ordinary functions
start: Public ordinary functions
surface-area: Public ordinary functions

T
transfer-vertices: Private ordinary functions

U
u32: Public ordinary functions
u32*: Public ordinary functions

V
v: Public ordinary functions
vertex-adjacency-list: Public ordinary functions
vertex-faces: Public ordinary functions
vertex-index-index: Private ordinary functions
vertex-index-varr3: Private ordinary functions


A.4 Data types

Jump to:   C   D   E   F   M   N   O   P   S   T   U   V  
Index Entry  Section

C
convert.lisp: The manifolds/convert․lisp file

D
documentation.lisp: The manifolds/documentation․lisp file

E
edge: Public structures
extended-edge: Public structures

F
f32: Public types
f64: Public types
face: Public types
face-array: Public types
File, convert.lisp: The manifolds/convert․lisp file
File, documentation.lisp: The manifolds/documentation․lisp file
File, manifolds.asd: The manifolds/manifolds․asd file
File, manifolds.lisp: The manifolds/manifolds․lisp file
File, package.lisp: The manifolds/package․lisp file
File, types.lisp: The manifolds/types․lisp file

M
manifolds: The manifolds system
manifolds.asd: The manifolds/manifolds․asd file
manifolds.lisp: The manifolds/manifolds․lisp file

N
node: Private structures

O
org.shirakumo.fraf.manifolds: The org․shirakumo․fraf․manifolds package

P
Package, org.shirakumo.fraf.manifolds: The org․shirakumo․fraf․manifolds package
package.lisp: The manifolds/package․lisp file

S
Structure, edge: Public structures
Structure, extended-edge: Public structures
Structure, node: Private structures
Structure, vertex-index: Private structures
System, manifolds: The manifolds system

T
Type, f32: Public types
Type, f64: Public types
Type, face: Public types
Type, face-array: Public types
Type, u32: Public types
Type, vertex: Public types
Type, vertex-array: Public types
types.lisp: The manifolds/types․lisp file

U
u32: Public types

V
vertex: Public types
vertex-array: Public types
vertex-index: Private structures