The stl Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The stl Reference Manual

This is the stl Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 06:13:48 2022 GMT+0.

Table of Contents


1 Introduction

This is a small library for reading the triangle data in binary STL files.

Here is a small example showing how to read a file and compute the area of the triangles in it.


    CL-USER> (ql:quickload :stl)
    To load "stl":
      Load 1 ASDF system:
        stl
    ; Loading "stl"
    ...
    (:STL)
    CL-USER> (defparameter *cube* (stl:read-stl "~/3d_models/cube.stl"))
    *CUBE*
    CL-USER> (stl:stl-area *cube*)
    24.000002
    CL-USER>

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 stl

Load triangle data from binary stereolithography (STL) files.

Author

Jeremiah LaRocco <jeremiah.larocco@gmail.com>

License

ISC

Dependency

3d-vectors (system).

Source

stl.asd.

Child Components

3 Files

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


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 stl/stl.asd

Source

stl.asd.

Parent Component

stl (system).

ASDF Systems

stl.


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.2 stl/package.lisp

Source

stl.asd.

Parent Component

stl (system).

Packages

stl.


Previous: , Up: Lisp   [Contents][Index]

3.1.3 stl/stl.lisp

Dependency

package.lisp (file).

Source

stl.asd.

Parent Component

stl (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 stl

Source

package.lisp.

Use List
  • 3d-vectors.
  • common-lisp.
Public Interface
Internals

5 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Ordinary functions

Function: bounding-box (triangles)
Package

stl.

Source

stl.lisp.

Function: distance (pt1 pt2)

Compute the distance between two points.

Package

stl.

Source

stl.lisp.

Function: read-stl (fname)

Read an STL file from fname and return the vector of triangles.

Package

stl.

Source

stl.lisp.

Function: to-opengl (triangles &key color)
Package

stl.

Source

stl.lisp.


5.1.2 Generic functions

Generic Function: area (object)
Package

stl.

Methods
Method: area ((triangles simple-vector))

Compute the area of a vector of triangles.

Source

stl.lisp.

Method: area ((tri triangle))

Compute the area of a triangle.

Source

stl.lisp.

Method: area (object)
Source

stl.lisp.


5.1.3 Classes

Class: triangle
Package

stl.

Source

stl.lisp.

Direct methods

area.

Direct slots
Slot: normal
Type

3d-vectors:vec3

Initargs

:normal

Slot: pt1
Type

3d-vectors:vec3

Initargs

:pt1

Slot: pt2
Type

3d-vectors:vec3

Initargs

:pt2

Slot: pt3
Type

3d-vectors:vec3

Initargs

:pt3

Slot: attribute
Type

fixnum

Initform

0

Initargs

:attribute


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Special variables

Special Variable: *float-byte-size*

Size of an STL float in bytes.

Package

stl.

Source

stl.lisp.

Special Variable: *point-byte-size*

Size of an STL point in bytes.

Package

stl.

Source

stl.lisp.

Special Variable: *triangle-byte-size*

Size of an STL triangle in bytes.

Package

stl.

Source

stl.lisp.


Previous: , Up: Internals   [Contents][Index]

5.2.2 Ordinary functions

Function: compute-triangle-normal (tri)

Compute the normal of a triangle.

Package

stl.

Source

stl.lisp.

Function: get-float (arr)

Interpret four bytes in arr as a single-float.

Package

stl.

Source

stl.lisp.

Function: get-point (arr)

Create a point using x, y, and z values read from arr.

Package

stl.

Source

stl.lisp.

Function: get-s4 (arr)

Interpret four bytes in arr as an ’(signed-byte 32)

Package

stl.

Source

stl.lisp.

Function: get-triangle (arr)

Read a triangle from arr.

Package

stl.

Source

stl.lisp.

Function: get-u2 (arr)

Interpret two bytes in arr as an ’(unsigned-byte 32)

Package

stl.

Source

stl.lisp.

Function: get-u4 (arr)

Interpret the four bytes in arr as an ’(unsigned-byte 32)

Package

stl.

Source

stl.lisp.

Function: zero-point (pt)
Package

stl.

Source

stl.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   A   B   C   D   F   G   M   R   T   Z  
Index Entry  Section

A
area: Public generic functions
area: Public generic functions
area: Public generic functions
area: Public generic functions

B
bounding-box: Public ordinary functions

C
compute-triangle-normal: Private ordinary functions

D
distance: Public ordinary functions

F
Function, bounding-box: Public ordinary functions
Function, compute-triangle-normal: Private ordinary functions
Function, distance: Public ordinary functions
Function, get-float: Private ordinary functions
Function, get-point: Private ordinary functions
Function, get-s4: Private ordinary functions
Function, get-triangle: Private ordinary functions
Function, get-u2: Private ordinary functions
Function, get-u4: Private ordinary functions
Function, read-stl: Public ordinary functions
Function, to-opengl: Public ordinary functions
Function, zero-point: Private ordinary functions

G
Generic Function, area: Public generic functions
get-float: Private ordinary functions
get-point: Private ordinary functions
get-s4: Private ordinary functions
get-triangle: Private ordinary functions
get-u2: Private ordinary functions
get-u4: Private ordinary functions

M
Method, area: Public generic functions
Method, area: Public generic functions
Method, area: Public generic functions

R
read-stl: Public ordinary functions

T
to-opengl: Public ordinary functions

Z
zero-point: Private ordinary functions

Jump to:   A   B   C   D   F   G   M   R   T   Z