The cl-geometry Reference Manual

This is the cl-geometry Reference Manual, version 0.0.3, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:16:28 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cl-geometry

Library for two dimensional geometry.

Author

Jakub Higersberger <>

License

BSD-style

Version

0.0.3

Dependencies
  • iterate (system).
  • trees (system).
Source

cl-geometry.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 cl-geometry/cl-geometry.asd

Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

ASDF Systems

cl-geometry.


3.1.2 cl-geometry/package.lisp

Dependency

heap.lisp (file).

Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Packages

2d-geometry.


3.1.3 cl-geometry/trivial-geometry.lisp

Dependency

package.lisp (file).

Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface

3.1.4 cl-geometry/basic-point.lisp

Dependency

package.lisp (file).

Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

3.1.5 cl-geometry/bounding-box.lisp

Dependency

package.lisp (file).

Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface

print-object (method).

Internals

3.1.6 cl-geometry/basic-line.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

3.1.7 cl-geometry/representations.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

3.1.8 cl-geometry/polygon-class.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

point-ring (reader method).


3.1.9 cl-geometry/basic-polygon.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

3.1.10 cl-geometry/triangulation.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface

triangulate (function).

Internals

3.1.11 cl-geometry/decomposition.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface

decompose-complex-polygon-nondisjoint (function).

Internals

find-intersection (function).


3.1.12 cl-geometry/heap.lisp

Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Packages

ramarren-utils.

Public Interface
Internals

3.1.13 cl-geometry/bentley-ottmann.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

3.1.14 cl-geometry/trapezoidation.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Internals

3.1.15 cl-geometry/polygon.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

3.1.16 cl-geometry/polygon-binary.lisp

Dependencies
Source

cl-geometry.asd.

Parent Component

cl-geometry (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 2d-geometry

Source

package.lisp.

Nicknames
  • geometry
  • cl-geometry
Use List
Public Interface
Internals

4.2 ramarren-utils

Source

heap.lisp.

Use List

common-lisp.

Used By List

2d-geometry.

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 Ordinary functions

Function: area-circle (r)

Area of a circle.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-ellipse-axes (a b)

Area of an ellipse given semimajor and semiminor axes.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-rectangle (a b)

Area of a rectangle given length of edges.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-simple-polygon (polygon)

Calculate an area of a simple polygon.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: area-square (a)

Area of a square given length of a side.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-triangle-edge-edge-angle (a b alpha)

Area of a triangle given length of two edges and an angle between them.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-triangle-edges (a b c)

Area of a triangle given length of edges using Heron’s formula. Numerically unstable for triangles with very small angles.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-triangle-edges-small-angles (a b c)

Area of a triangle given length of edges using numerically stabilized Heron’s formula.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: area-triangle-vertices (xa ya xb yb xc yc)

Area of a triangle given positions of vertices. Will return negative for clockwise oriented triangle.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: bentley-ottmann (edge-list)

Return a list of intersection points (events).

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: circumference-circle (r)

Circumference of a circle.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: circumference-ellipse-axes (a b)

Circumference of an ellipse given semimajor and semiminro axes using Ramanujan’s approximation.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: colinear-p (a b c)

Is c on the line defined by a->b?

Package

2d-geometry.

Source

basic-point.lisp.

Function: coords-to-points (&rest coord-list)

Coordinate list (x1 y1 x2 y2 ... xn yn) to point list

Package

2d-geometry.

Source

basic-point.lisp.

Function: decompose-complex-polygon-bentley-ottmann (polygon)

Decompose polygon using bentley-ottmann, hopefully in something close to quadratic time.

Package

2d-geometry.

Source

polygon.lisp.

Function: decompose-complex-polygon-nondisjoint (polygon)

Decomposes a complex polygon into a set of simple ones, possibly some entirely contained in others.

Package

2d-geometry.

Source

decomposition.lisp.

Function: decompose-complex-polygon-triangles (polygon &key in-test)

Decomposes a complex polygon into triangles. Returns a list of triangles inside polygon according to :in-test, which is a function taking a point and a polygon.

Package

2d-geometry.

Source

polygon.lisp.

Function: distance (x1 y1 x2 y2)

Distance between two points on a plane.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: frustrated-polygon-p (polygon)

Check if there are any zero length edges or that any two colinear edges intersect.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: heap-empty (where)
Package

ramarren-utils.

Source

heap.lisp.

Function: heap-peek (where)
Package

ramarren-utils.

Source

heap.lisp.

Function: heapify (what compar)

Turns list into a heap

Package

ramarren-utils.

Source

heap.lisp.

Function: line-from-segment (line-segment)

Calculate line from line segment.

Package

2d-geometry.

Source

basic-line.lisp.

Function: line-segment-length (line-segment)

Calculate length of a segment.

Package

2d-geometry.

Source

basic-line.lisp.

Function: line-segments-intersection-point (line-segment1 line-segment2 &key exclude-endpoints)

Find point of intersection of two segments. Returns nil if they do not intersect and point instance otherwise.

Package

2d-geometry.

Source

basic-line.lisp.

Function: line-segments-intersection-segment (line-segment1 line-segment2)

Find an intersection of two colinear line segments.

Package

2d-geometry.

Source

basic-line.lisp.

Function: line-x-at-y (line y)

Return x coordinate of a point with a given y coordinate on a line.

Package

2d-geometry.

Source

basic-line.lisp.

Function: line-y-at-x (line x)

Return y coordinate of a point with a given x coordinate on a line.

Package

2d-geometry.

Source

basic-line.lisp.

Function: lines-equal-p (line1 line2)

Check if two lines are equal.

Package

2d-geometry.

Source

basic-line.lisp.

Function: lines-intersection-point (line1 line2)

Find point of intersection of two lines. Returns nil if lines are parallel and point instance otherwise.

Package

2d-geometry.

Source

basic-line.lisp.

Function: lines-parralel-p (line1 line2)

Check if two lines are parrallel.

Package

2d-geometry.

Source

basic-line.lisp.

Function: make-polygon-from-coords (&rest coord-list)
Package

2d-geometry.

Source

polygon-class.lisp.

Function: make-polygon-from-point-list (point-list)
Package

2d-geometry.

Source

polygon-class.lisp.

Function: make-polygon-from-point-ring (point-ring)
Package

2d-geometry.

Source

polygon-class.lisp.

Function: nheap-extract (where)
Package

ramarren-utils.

Source

heap.lisp.

Function: nheap-insert (what where)
Package

ramarren-utils.

Source

heap.lisp.

Function: perimeter-rectangle (a b)

Perimeter of a rectangle given length of edges.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: perimeter-square (a)

Perimeter of a square given length of a side.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: perimeter-triangle (a b c)

Perimeter of a triangle given length of edges.

Package

2d-geometry.

Source

trivial-geometry.lisp.

Function: point-equal-p (point1 point2)

Checks if two points are geometrically equal.

Package

2d-geometry.

Source

basic-point.lisp.

Function: point-in-polygon-crossing-p (point polygon)

Determine if a point belongs to a polygon using crossing (oddeven) rule.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: point-in-polygon-winding-number (point polygon)

Calculate winding number of a point.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: point-in-polygon-winding-p (point polygon)

Check if point is in polygon using winding number rule.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: polygon-difference (polygon1 polygon2 &key in-test in-test-1 in-test-2)

Return triangles of polygon1 minus polygon2.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: polygon-difference-nary (polygon &rest holes &key in-test)

Return triangles of polygon with some holes.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: polygon-intersection (polygon1 polygon2 &key in-test in-test-1 in-test-2)

Return triangles of an intersection of two polygons.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: polygon-orientation (polygon)

Return 1 if polygon is counterclockwise and -1 if it is oriented clockwise. Assumes simple polygon.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: polygon-union (polygon1 polygon2 &key in-test in-test-1 in-test-2)

Return triangles of an union of two polygons.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: shamos-hoey (edge-list)

Returns t if there is at least one intersection.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: simple-polygon-p (polygon)

Check if polygon is simple, ie. if no two edges intersect, assuming only point intersections are possible. This uses brute force, comparing each edge to every other edge.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: simple-polygon-sh-p (polygon)

Check if polygon is simple using Shamos-Hoey algorithm.

Package

2d-geometry.

Source

polygon.lisp.

Function: triangulate (polygon)

Triangulate polygon. Returns list of triangles.

Package

2d-geometry.

Source

triangulation.lisp.


5.1.2 Generic functions

Generic Reader: a (object)
Package

2d-geometry.

Methods
Reader Method: a ((line line))

automatically generated reader method

Source

basic-line.lisp.

Target Slot

a.

Generic Writer: (setf a) (object)
Package

2d-geometry.

Methods
Writer Method: (setf a) ((line line))

automatically generated writer method

Source

basic-line.lisp.

Target Slot

a.

Generic Reader: b (object)
Package

2d-geometry.

Methods
Reader Method: b ((line line))

automatically generated reader method

Source

basic-line.lisp.

Target Slot

b.

Generic Writer: (setf b) (object)
Package

2d-geometry.

Methods
Writer Method: (setf b) ((line line))

automatically generated writer method

Source

basic-line.lisp.

Target Slot

b.

Generic Reader: c (object)
Package

2d-geometry.

Methods
Reader Method: c ((line line))

automatically generated reader method

Source

basic-line.lisp.

Target Slot

c.

Generic Writer: (setf c) (object)
Package

2d-geometry.

Methods
Writer Method: (setf c) ((line line))

automatically generated writer method

Source

basic-line.lisp.

Target Slot

c.

Generic Reader: edge-list (object)
Package

2d-geometry.

Methods
Reader Method: edge-list ((polygon polygon))

automatically generated reader method

Source

polygon-class.lisp.

Target Slot

edge-list.

Generic Reader: end (object)
Package

2d-geometry.

Methods
Reader Method: end ((line-segment line-segment))

automatically generated reader method

Source

basic-line.lisp.

Target Slot

end.

Generic Writer: (setf end) (object)
Package

2d-geometry.

Methods
Writer Method: (setf end) ((line-segment line-segment))

automatically generated writer method

Source

basic-line.lisp.

Target Slot

end.

Generic Reader: point-list (object)
Package

2d-geometry.

Methods
Reader Method: point-list ((polygon polygon))

automatically generated reader method

Source

polygon-class.lisp.

Target Slot

point-list.

Generic Reader: start (object)
Package

2d-geometry.

Methods
Reader Method: start ((line-segment line-segment))

automatically generated reader method

Source

basic-line.lisp.

Target Slot

start.

Generic Writer: (setf start) (object)
Package

2d-geometry.

Methods
Writer Method: (setf start) ((line-segment line-segment))

automatically generated writer method

Source

basic-line.lisp.

Target Slot

start.

Generic Function: x (object)
Package

2d-geometry.

Methods
Method: x ((object poly-ring-node))
Source

representations.lisp.

Reader Method: x ((point point))

automatically generated reader method

Source

basic-point.lisp.

Target Slot

x.

Generic Function: (setf x) (object)
Package

2d-geometry.

Source

bentley-ottmann.lisp.

Methods
Method: (setf x) ((object sweep-line))
Generic Function: y (object)
Package

2d-geometry.

Methods
Method: y ((object poly-ring-node))
Source

representations.lisp.

Reader Method: y ((point point))

automatically generated reader method

Source

basic-point.lisp.

Target Slot

y.

Generic Function: (setf y) (object)
Package

2d-geometry.

Source

bentley-ottmann.lisp.

Methods
Method: (setf y) ((object sweep-line))

5.1.3 Standalone methods

Method: initialize-instance :after ((instance sweep-line) &rest initargs)

Create a tree, use closure over the sweep line as ordering function.

Source

bentley-ottmann.lisp.

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

basic-point.lisp.

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

polygon-class.lisp.

Method: print-object ((object line-segment) stream)
Source

basic-line.lisp.

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

basic-line.lisp.

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

representations.lisp.

Method: print-object ((object bounding-box) stream)
Source

bounding-box.lisp.


5.1.4 Classes

Class: line

A line with an equation Ax+By+C=0.

Package

2d-geometry.

Source

basic-line.lisp.

Direct methods
Direct slots
Slot: a
Initargs

:a

Readers

a.

Writers

(setf a).

Slot: b
Initargs

:b

Readers

b.

Writers

(setf b).

Slot: c
Initform

0

Initargs

:c

Readers

c.

Writers

(setf c).

Class: line-segment

A directed line segment defined by two points.

Package

2d-geometry.

Source

basic-line.lisp.

Direct subclasses

taint-segment.

Direct methods
Direct slots
Slot: start
Initform

(make-instance (quote 2d-geometry:point))

Initargs

:start

Readers

start.

Writers

(setf start).

Slot: end
Initform

(make-instance (quote 2d-geometry:point))

Initargs

:end

Readers

end.

Writers

(setf end).

Class: point

A point on a plane, with cartesian coordinates.

Package

2d-geometry.

Source

basic-point.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: x
Initform

0

Initargs

:x

Readers

x.

Writers

This slot is read-only.

Slot: y
Initform

0

Initargs

:y

Readers

y.

Writers

This slot is read-only.

Class: polygon
Package

2d-geometry.

Source

polygon-class.lisp.

Direct methods
Direct slots
Slot: point-list
Initargs

:point-list

Readers

point-list.

Writers

This slot is read-only.

Slot: edge-list
Initargs

:edge-list

Readers

edge-list.

Writers

This slot is read-only.

Slot: point-ring
Initargs

:point-ring

Readers

point-ring.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Ordinary functions

Function: add-if-intersection (edge1 edge2 event-queue current-point)

Add intersection to event queue if edge1 intersects edge2.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: between-p (a b c)

Is c colinear with a->b and lies between them?

Package

2d-geometry.

Source

basic-point.lisp.

Function: bounding-boxes-intersect-p (box1 box2)

Check if two bounding boxes intersect.

Package

2d-geometry.

Source

bounding-box.lisp.

Function: check-node-integrity (node sweep-line)

Verify sweep line tree node integrity, recursively descending into children.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: check-tree-integrity (sweep-line)

Verify sweep line tree integrity.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: collapse-trapezoid (trapezoid)

Reduce degenerate trapezoids to triangles.

Package

2d-geometry.

Source

trapezoidation.lisp.

Function: collect-ring-nodes (ring)

Construct a list of all nodes in a ring.

Package

2d-geometry.

Source

representations.lisp.

Function: copy-line-segment (line-segment)
Package

2d-geometry.

Source

basic-line.lisp.

Function: create-initial-event-list (edge-list)

Create initial list of endpoint events.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: delete-edge (edge sweep-line)

Delete an edge from sweep-line, returns a cons of newly neighbouring edges.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: diagonal-p (ring-node-a ring-node-b)

Is a line segment between two nodes a diagonal of polygon the nodes belong to?

Package

2d-geometry.

Source

triangulation.lisp.

Function: double-linked-ring-from-point-list (point-list &optional ring-type)

Change polygon representation from list of points to double linked ring of points.

Package

2d-geometry.

Source

representations.lisp.

Function: ear-init (point-list)

Takes a list of points and creates a ring initialized with ear data.

Package

2d-geometry.

Source

triangulation.lisp.

Function: edge-list-from-point-list (point-list &optional edge-type)

Change polygon represented as a list of points into a list of edges (line segments).

Package

2d-geometry.

Source

representations.lisp.

Function: filter-ray-intersection (point edge)

Return t if edge does not intersect ray from point properly.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: find-intersection (edge-list)
Package

2d-geometry.

Source

decomposition.lisp.

Function: heap-lchild (i)
Package

ramarren-utils.

Source

heap.lisp.

Function: heap-parent (i)
Package

ramarren-utils.

Source

heap.lisp.

Function: heap-rchild (i)
Package

ramarren-utils.

Source

heap.lisp.

Function: in-cone-p (ring-node b)

Is line segment ring-node->b in cone defined by angle with vertex defined by ring-node?

Package

2d-geometry.

Source

triangulation.lisp.

Function: insert-edge (edge sweep-line)

Insert new edge into sweep-line, returns a cons of neighbouring edges.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: intersect-boxes (box1 box2)

Return bounding box common to both boxes.

Package

2d-geometry.

Source

bounding-box.lisp.

Function: intersect-p (a b c d)

Do segments a->b and c->d intersect?

Package

2d-geometry.

Source

basic-point.lisp.

Function: intersect-proper-p (a b c d)

Do segments a->b and c->d intersect?

Package

2d-geometry.

Source

basic-point.lisp.

Function: left-endpoint (edge)

Return left endpoint of an edge.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: left-on-p (a b c)

Is c to the left or on the oriented line defined by a->b?

Package

2d-geometry.

Source

basic-point.lisp.

Function: left-p (a b c)

Is c to the left of the oriented line defined by a->b?

Package

2d-geometry.

Source

basic-point.lisp.

Function: make-line-segment (start end &optional line-segment-type)

Create a new line segment.

Package

2d-geometry.

Source

basic-line.lisp.

Function: make-point (x y &optional point-type)

Create a new point like object.

Package

2d-geometry.

Source

basic-point.lisp.

Function: merge-line-segment-into (ls1 ls2)

If two segments are colinear and intersect, extends the first one to include the second. Reorients the first edge to the left.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: move-sweep-line (sweep-line x y)

Move sweep line to new location.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: notany-symmetric-test (testfun list)

Return t if test is nil for every combination of elements of list, assuming test is symmetric.

Package

2d-geometry.

Source

basic-polygon.lisp.

Function: order-line-segments-at-point (lv rv point)

Return t if lv is above rv at point.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: orient-edge-right (edge)

Returns an edge oriented up. It makes a new object event if argument is already up.

Package

2d-geometry.

Source

trapezoidation.lisp.

Function: point-in-box-exclusive (point box &key include-in-degenerate-dimension)

Check if point is contained inside a bounding box.

Package

2d-geometry.

Source

bounding-box.lisp.

Function: point-in-box-inclusive (point box)

Check if point is contained inside or directly on a bounding box.

Package

2d-geometry.

Source

bounding-box.lisp.

Function: point-line-position (point line)

Returns >0 if point is to left/above the line, 0 if on the line and <0 if to the right/below the line.

Package

2d-geometry.

Source

basic-line.lisp.

Function: point-list-from-ring (ring-node)

Return a list of points in a ring.

Package

2d-geometry.

Source

representations.lisp.

Function: point-sort-fun (point1 point2)

Order points by increasing x then y.

Package

2d-geometry.

Source

basic-point.lisp.

Function: polygon-binary (polygon1 polygon2 triangle-test)

Return all triangles fulfilling triangle-test from triangulation of all edges of two polygons.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: possible-diagonal-p (ring-diag)

Checks if ring-diag does not intersect any edge in a ring.

Package

2d-geometry.

Source

triangulation.lisp.

Function: recurse-bentley-ottmann (event-queue sweep-line acc)

Recurse down event queue.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: recurse-sanitize-edges (edge-list acc)
Package

2d-geometry.

Source

polygon-binary.lisp.

Function: recurse-shamos-hoey (event-queue sweep-line)

Recurse down event list.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: remove-ear (node)

Remove an ear centered on node from ring, returning new node, the removed ear and new edge list.

Package

2d-geometry.

Source

triangulation.lisp.

Function: right-endpoint (edge)

Return right endpoint of an edge.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Function: ring-to-list-of-edges (ring)

Construct a list of edges attached to vertexes.

Package

2d-geometry.

Source

representations.lisp.

Function: sanitize-edges (edge-list)

Drop zero length edges and merge all segment intersecting edges.

Package

2d-geometry.

Source

polygon-binary.lisp.

Function: split-trapezoid (trapezoid)

Split trapezoid into two triangles. Return a cons.

Package

2d-geometry.

Source

trapezoidation.lisp.

Function: trapezoidize-edges (edge-list)

Returns a list of trapezoids build from a set of edges and their bounding box.

Package

2d-geometry.

Source

trapezoidation.lisp.

Function: trapezoids-to-triangles (trapez)

Convert list of trapezoids to list of triangles.

Package

2d-geometry.

Source

polygon.lisp.

Function: triangle-center-point (triangle)

Return a central point of triangle.

Package

2d-geometry.

Source

polygon.lisp.

Function: vertical-edge-p (edge)

Returns t if edge is horizontal.

Package

2d-geometry.

Source

trapezoidation.lisp.

Function: xor (p q)

Exlusive or logical operation.

Package

2d-geometry.

Source

basic-point.lisp.


5.2.2 Generic functions

Generic Function: construct-bounding-box (object)

Construct a bounding box of a given object.

Package

2d-geometry.

Source

bounding-box.lisp.

Methods
Method: construct-bounding-box ((object polygon))
Source

basic-polygon.lisp.

Method: construct-bounding-box ((object line-segment))
Source

basic-line.lisp.

Generic Reader: direction (object)
Package

2d-geometry.

Methods
Reader Method: direction ((event-endpoint event-endpoint))

automatically generated reader method

Source

bentley-ottmann.lisp.

Target Slot

direction.

Generic Writer: (setf direction) (object)
Package

2d-geometry.

Methods
Writer Method: (setf direction) ((event-endpoint event-endpoint))

automatically generated writer method

Source

bentley-ottmann.lisp.

Target Slot

direction.

Generic Reader: ear (object)
Package

2d-geometry.

Methods
Reader Method: ear ((ear-ring-node ear-ring-node))

automatically generated reader method

Source

triangulation.lisp.

Target Slot

ear.

Generic Writer: (setf ear) (object)
Package

2d-geometry.

Methods
Writer Method: (setf ear) ((ear-ring-node ear-ring-node))

automatically generated writer method

Source

triangulation.lisp.

Target Slot

ear.

Generic Reader: edge (object)
Package

2d-geometry.

Methods
Reader Method: edge ((event-endpoint event-endpoint))

automatically generated reader method

Source

bentley-ottmann.lisp.

Target Slot

edge.

Generic Writer: (setf edge) (object)
Package

2d-geometry.

Methods
Writer Method: (setf edge) ((event-endpoint event-endpoint))

automatically generated writer method

Source

bentley-ottmann.lisp.

Target Slot

edge.

Generic Reader: edge-tree (object)
Package

2d-geometry.

Methods
Reader Method: edge-tree ((sweep-line sweep-line))

automatically generated reader method

Source

bentley-ottmann.lisp.

Target Slot

edge-tree.

Generic Writer: (setf edge-tree) (object)
Package

2d-geometry.

Methods
Writer Method: (setf edge-tree) ((sweep-line sweep-line))

automatically generated writer method

Source

bentley-ottmann.lisp.

Target Slot

edge-tree.

Generic Reader: edge1 (object)
Package

2d-geometry.

Methods
Reader Method: edge1 ((event-intersection event-intersection))

automatically generated reader method

Source

bentley-ottmann.lisp.

Target Slot

edge1.

Generic Writer: (setf edge1) (object)
Package

2d-geometry.

Methods
Writer Method: (setf edge1) ((event-intersection event-intersection))

automatically generated writer method

Source

bentley-ottmann.lisp.

Target Slot

edge1.

Generic Reader: edge2 (object)
Package

2d-geometry.

Methods
Reader Method: edge2 ((event-intersection event-intersection))

automatically generated reader method

Source

bentley-ottmann.lisp.

Target Slot

edge2.

Generic Writer: (setf edge2) (object)
Package

2d-geometry.

Methods
Writer Method: (setf edge2) ((event-intersection event-intersection))

automatically generated writer method

Source

bentley-ottmann.lisp.

Target Slot

edge2.

Generic Reader: next-node (object)
Package

2d-geometry.

Methods
Reader Method: next-node ((poly-ring-node poly-ring-node))

automatically generated reader method

Source

representations.lisp.

Target Slot

next.

Generic Writer: (setf next-node) (object)
Package

2d-geometry.

Methods
Writer Method: (setf next-node) ((poly-ring-node poly-ring-node))

automatically generated writer method

Source

representations.lisp.

Target Slot

next.

Generic Reader: point-ring (object)
Package

2d-geometry.

Methods
Reader Method: point-ring ((polygon polygon))

automatically generated reader method

Source

polygon-class.lisp.

Target Slot

point-ring.

Generic Reader: prev-node (object)
Package

2d-geometry.

Methods
Reader Method: prev-node ((poly-ring-node poly-ring-node))

automatically generated reader method

Source

representations.lisp.

Target Slot

prev.

Generic Writer: (setf prev-node) (object)
Package

2d-geometry.

Methods
Writer Method: (setf prev-node) ((poly-ring-node poly-ring-node))

automatically generated writer method

Source

representations.lisp.

Target Slot

prev.

Generic Reader: taint (object)
Package

2d-geometry.

Methods
Reader Method: taint ((taint-segment taint-segment))

automatically generated reader method

Source

bentley-ottmann.lisp.

Target Slot

taint.

Generic Writer: (setf taint) (object)
Package

2d-geometry.

Methods
Writer Method: (setf taint) ((taint-segment taint-segment))

automatically generated writer method

Source

bentley-ottmann.lisp.

Target Slot

taint.

Generic Reader: val (object)
Package

2d-geometry.

Methods
Reader Method: val ((poly-ring-node poly-ring-node))

automatically generated reader method

Source

representations.lisp.

Target Slot

val.

Generic Writer: (setf val) (object)
Package

2d-geometry.

Methods
Writer Method: (setf val) ((poly-ring-node poly-ring-node))

automatically generated writer method

Source

representations.lisp.

Target Slot

val.

Generic Reader: x-max (object)
Package

2d-geometry.

Methods
Reader Method: x-max ((bounding-box bounding-box))

automatically generated reader method

Source

bounding-box.lisp.

Target Slot

x-max.

Generic Writer: (setf x-max) (object)
Package

2d-geometry.

Methods
Writer Method: (setf x-max) ((bounding-box bounding-box))

automatically generated writer method

Source

bounding-box.lisp.

Target Slot

x-max.

Generic Reader: x-min (object)
Package

2d-geometry.

Methods
Reader Method: x-min ((bounding-box bounding-box))

automatically generated reader method

Source

bounding-box.lisp.

Target Slot

x-min.

Generic Writer: (setf x-min) (object)
Package

2d-geometry.

Methods
Writer Method: (setf x-min) ((bounding-box bounding-box))

automatically generated writer method

Source

bounding-box.lisp.

Target Slot

x-min.

Generic Reader: y-max (object)
Package

2d-geometry.

Methods
Reader Method: y-max ((bounding-box bounding-box))

automatically generated reader method

Source

bounding-box.lisp.

Target Slot

y-max.

Generic Writer: (setf y-max) (object)
Package

2d-geometry.

Methods
Writer Method: (setf y-max) ((bounding-box bounding-box))

automatically generated writer method

Source

bounding-box.lisp.

Target Slot

y-max.

Generic Reader: y-min (object)
Package

2d-geometry.

Methods
Reader Method: y-min ((bounding-box bounding-box))

automatically generated reader method

Source

bounding-box.lisp.

Target Slot

y-min.

Generic Writer: (setf y-min) (object)
Package

2d-geometry.

Methods
Writer Method: (setf y-min) ((bounding-box bounding-box))

automatically generated writer method

Source

bounding-box.lisp.

Target Slot

y-min.


5.2.3 Classes

Class: bounding-box

A bounding box.

Package

2d-geometry.

Source

bounding-box.lisp.

Direct methods
Direct slots
Slot: x-min
Initargs

:x-min

Readers

x-min.

Writers

(setf x-min).

Slot: x-max
Initargs

:x-max

Readers

x-max.

Writers

(setf x-max).

Slot: y-min
Initargs

:y-min

Readers

y-min.

Writers

(setf y-min).

Slot: y-max
Initargs

:y-max

Readers

y-max.

Writers

(setf y-max).

Class: ear-ring-node

Ring node with ear information.

Package

2d-geometry.

Source

triangulation.lisp.

Direct superclasses

poly-ring-node.

Direct methods
Direct slots
Slot: ear
Initargs

:ear

Readers

ear.

Writers

(setf ear).

Class: event-endpoint

Endpoint event for Bentley-Ottmann algorithm.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Direct superclasses

point.

Direct methods
Direct slots
Slot: edge
Initargs

:edge

Readers

edge.

Writers

(setf edge).

Slot: direction
Initargs

:direction

Readers

direction.

Writers

(setf direction).

Class: event-intersection

Intersection event for Bentley-Ottmann algorithm.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Direct superclasses

point.

Direct methods
Direct slots
Slot: edge1
Initargs

:edge1

Readers

edge1.

Writers

(setf edge1).

Slot: edge2
Initargs

:edge2

Readers

edge2.

Writers

(setf edge2).

Class: poly-ring-node

Double linked ring node.

Package

2d-geometry.

Source

representations.lisp.

Direct subclasses

ear-ring-node.

Direct methods
Direct slots
Slot: val
Initargs

:val

Readers

val.

Writers

(setf val).

Slot: next
Package

iterate.

Initargs

:next

Readers

next-node.

Writers

(setf next-node).

Slot: prev
Initargs

:prev

Readers

prev-node.

Writers

(setf prev-node).

Class: sweep-line

Sweep line.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Direct superclasses

point.

Direct methods
Direct slots
Slot: edge-tree
Readers

edge-tree.

Writers

(setf edge-tree).

Class: taint-segment

Extend line-segment with taint boolean.

Package

2d-geometry.

Source

bentley-ottmann.lisp.

Direct superclasses

line-segment.

Direct methods
Direct slots
Slot: taint
Readers

taint.

Writers

(setf taint).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   T   V   X   Y  
Index Entry  Section

(
(setf a): Public generic functions
(setf a): Public generic functions
(setf b): Public generic functions
(setf b): Public generic functions
(setf c): Public generic functions
(setf c): Public generic functions
(setf direction): Private generic functions
(setf direction): Private generic functions
(setf ear): Private generic functions
(setf ear): Private generic functions
(setf edge): Private generic functions
(setf edge): Private generic functions
(setf edge-tree): Private generic functions
(setf edge-tree): Private generic functions
(setf edge1): Private generic functions
(setf edge1): Private generic functions
(setf edge2): Private generic functions
(setf edge2): Private generic functions
(setf end): Public generic functions
(setf end): Public generic functions
(setf next-node): Private generic functions
(setf next-node): Private generic functions
(setf prev-node): Private generic functions
(setf prev-node): Private generic functions
(setf start): Public generic functions
(setf start): Public generic functions
(setf taint): Private generic functions
(setf taint): Private generic functions
(setf val): Private generic functions
(setf val): Private generic functions
(setf x): Public generic functions
(setf x): Public generic functions
(setf x-max): Private generic functions
(setf x-max): Private generic functions
(setf x-min): Private generic functions
(setf x-min): Private generic functions
(setf y): Public generic functions
(setf y): Public generic functions
(setf y-max): Private generic functions
(setf y-max): Private generic functions
(setf y-min): Private generic functions
(setf y-min): Private generic functions

A
a: Public generic functions
a: Public generic functions
add-if-intersection: Private ordinary functions
area-circle: Public ordinary functions
area-ellipse-axes: Public ordinary functions
area-rectangle: Public ordinary functions
area-simple-polygon: Public ordinary functions
area-square: Public ordinary functions
area-triangle-edge-edge-angle: Public ordinary functions
area-triangle-edges: Public ordinary functions
area-triangle-edges-small-angles: Public ordinary functions
area-triangle-vertices: Public ordinary functions

B
b: Public generic functions
b: Public generic functions
bentley-ottmann: Public ordinary functions
between-p: Private ordinary functions
bounding-boxes-intersect-p: Private ordinary functions

C
c: Public generic functions
c: Public generic functions
check-node-integrity: Private ordinary functions
check-tree-integrity: Private ordinary functions
circumference-circle: Public ordinary functions
circumference-ellipse-axes: Public ordinary functions
colinear-p: Public ordinary functions
collapse-trapezoid: Private ordinary functions
collect-ring-nodes: Private ordinary functions
construct-bounding-box: Private generic functions
construct-bounding-box: Private generic functions
construct-bounding-box: Private generic functions
coords-to-points: Public ordinary functions
copy-line-segment: Private ordinary functions
create-initial-event-list: Private ordinary functions

D
decompose-complex-polygon-bentley-ottmann: Public ordinary functions
decompose-complex-polygon-nondisjoint: Public ordinary functions
decompose-complex-polygon-triangles: Public ordinary functions
delete-edge: Private ordinary functions
diagonal-p: Private ordinary functions
direction: Private generic functions
direction: Private generic functions
distance: Public ordinary functions
double-linked-ring-from-point-list: Private ordinary functions

E
ear: Private generic functions
ear: Private generic functions
ear-init: Private ordinary functions
edge: Private generic functions
edge: Private generic functions
edge-list: Public generic functions
edge-list: Public generic functions
edge-list-from-point-list: Private ordinary functions
edge-tree: Private generic functions
edge-tree: Private generic functions
edge1: Private generic functions
edge1: Private generic functions
edge2: Private generic functions
edge2: Private generic functions
end: Public generic functions
end: Public generic functions

F
filter-ray-intersection: Private ordinary functions
find-intersection: Private ordinary functions
frustrated-polygon-p: Public ordinary functions
Function, add-if-intersection: Private ordinary functions
Function, area-circle: Public ordinary functions
Function, area-ellipse-axes: Public ordinary functions
Function, area-rectangle: Public ordinary functions
Function, area-simple-polygon: Public ordinary functions
Function, area-square: Public ordinary functions
Function, area-triangle-edge-edge-angle: Public ordinary functions
Function, area-triangle-edges: Public ordinary functions
Function, area-triangle-edges-small-angles: Public ordinary functions
Function, area-triangle-vertices: Public ordinary functions
Function, bentley-ottmann: Public ordinary functions
Function, between-p: Private ordinary functions
Function, bounding-boxes-intersect-p: Private ordinary functions
Function, check-node-integrity: Private ordinary functions
Function, check-tree-integrity: Private ordinary functions
Function, circumference-circle: Public ordinary functions
Function, circumference-ellipse-axes: Public ordinary functions
Function, colinear-p: Public ordinary functions
Function, collapse-trapezoid: Private ordinary functions
Function, collect-ring-nodes: Private ordinary functions
Function, coords-to-points: Public ordinary functions
Function, copy-line-segment: Private ordinary functions
Function, create-initial-event-list: Private ordinary functions
Function, decompose-complex-polygon-bentley-ottmann: Public ordinary functions
Function, decompose-complex-polygon-nondisjoint: Public ordinary functions
Function, decompose-complex-polygon-triangles: Public ordinary functions
Function, delete-edge: Private ordinary functions
Function, diagonal-p: Private ordinary functions
Function, distance: Public ordinary functions
Function, double-linked-ring-from-point-list: Private ordinary functions
Function, ear-init: Private ordinary functions
Function, edge-list-from-point-list: Private ordinary functions
Function, filter-ray-intersection: Private ordinary functions
Function, find-intersection: Private ordinary functions
Function, frustrated-polygon-p: Public ordinary functions
Function, heap-empty: Public ordinary functions
Function, heap-lchild: Private ordinary functions
Function, heap-parent: Private ordinary functions
Function, heap-peek: Public ordinary functions
Function, heap-rchild: Private ordinary functions
Function, heapify: Public ordinary functions
Function, in-cone-p: Private ordinary functions
Function, insert-edge: Private ordinary functions
Function, intersect-boxes: Private ordinary functions
Function, intersect-p: Private ordinary functions
Function, intersect-proper-p: Private ordinary functions
Function, left-endpoint: Private ordinary functions
Function, left-on-p: Private ordinary functions
Function, left-p: Private ordinary functions
Function, line-from-segment: Public ordinary functions
Function, line-segment-length: Public ordinary functions
Function, line-segments-intersection-point: Public ordinary functions
Function, line-segments-intersection-segment: Public ordinary functions
Function, line-x-at-y: Public ordinary functions
Function, line-y-at-x: Public ordinary functions
Function, lines-equal-p: Public ordinary functions
Function, lines-intersection-point: Public ordinary functions
Function, lines-parralel-p: Public ordinary functions
Function, make-line-segment: Private ordinary functions
Function, make-point: Private ordinary functions
Function, make-polygon-from-coords: Public ordinary functions
Function, make-polygon-from-point-list: Public ordinary functions
Function, make-polygon-from-point-ring: Public ordinary functions
Function, merge-line-segment-into: Private ordinary functions
Function, move-sweep-line: Private ordinary functions
Function, nheap-extract: Public ordinary functions
Function, nheap-insert: Public ordinary functions
Function, notany-symmetric-test: Private ordinary functions
Function, order-line-segments-at-point: Private ordinary functions
Function, orient-edge-right: Private ordinary functions
Function, perimeter-rectangle: Public ordinary functions
Function, perimeter-square: Public ordinary functions
Function, perimeter-triangle: Public ordinary functions
Function, point-equal-p: Public ordinary functions
Function, point-in-box-exclusive: Private ordinary functions
Function, point-in-box-inclusive: Private ordinary functions
Function, point-in-polygon-crossing-p: Public ordinary functions
Function, point-in-polygon-winding-number: Public ordinary functions
Function, point-in-polygon-winding-p: Public ordinary functions
Function, point-line-position: Private ordinary functions
Function, point-list-from-ring: Private ordinary functions
Function, point-sort-fun: Private ordinary functions
Function, polygon-binary: Private ordinary functions
Function, polygon-difference: Public ordinary functions
Function, polygon-difference-nary: Public ordinary functions
Function, polygon-intersection: Public ordinary functions
Function, polygon-orientation: Public ordinary functions
Function, polygon-union: Public ordinary functions
Function, possible-diagonal-p: Private ordinary functions
Function, recurse-bentley-ottmann: Private ordinary functions
Function, recurse-sanitize-edges: Private ordinary functions
Function, recurse-shamos-hoey: Private ordinary functions
Function, remove-ear: Private ordinary functions
Function, right-endpoint: Private ordinary functions
Function, ring-to-list-of-edges: Private ordinary functions
Function, sanitize-edges: Private ordinary functions
Function, shamos-hoey: Public ordinary functions
Function, simple-polygon-p: Public ordinary functions
Function, simple-polygon-sh-p: Public ordinary functions
Function, split-trapezoid: Private ordinary functions
Function, trapezoidize-edges: Private ordinary functions
Function, trapezoids-to-triangles: Private ordinary functions
Function, triangle-center-point: Private ordinary functions
Function, triangulate: Public ordinary functions
Function, vertical-edge-p: Private ordinary functions
Function, xor: Private ordinary functions

G
Generic Function, (setf a): Public generic functions
Generic Function, (setf b): Public generic functions
Generic Function, (setf c): Public generic functions
Generic Function, (setf direction): Private generic functions
Generic Function, (setf ear): Private generic functions
Generic Function, (setf edge): Private generic functions
Generic Function, (setf edge-tree): Private generic functions
Generic Function, (setf edge1): Private generic functions
Generic Function, (setf edge2): Private generic functions
Generic Function, (setf end): Public generic functions
Generic Function, (setf next-node): Private generic functions
Generic Function, (setf prev-node): Private generic functions
Generic Function, (setf start): Public generic functions
Generic Function, (setf taint): Private generic functions
Generic Function, (setf val): Private generic functions
Generic Function, (setf x): Public generic functions
Generic Function, (setf x-max): Private generic functions
Generic Function, (setf x-min): Private generic functions
Generic Function, (setf y): Public generic functions
Generic Function, (setf y-max): Private generic functions
Generic Function, (setf y-min): Private generic functions
Generic Function, a: Public generic functions
Generic Function, b: Public generic functions
Generic Function, c: Public generic functions
Generic Function, construct-bounding-box: Private generic functions
Generic Function, direction: Private generic functions
Generic Function, ear: Private generic functions
Generic Function, edge: Private generic functions
Generic Function, edge-list: Public generic functions
Generic Function, edge-tree: Private generic functions
Generic Function, edge1: Private generic functions
Generic Function, edge2: Private generic functions
Generic Function, end: Public generic functions
Generic Function, next-node: Private generic functions
Generic Function, point-list: Public generic functions
Generic Function, point-ring: Private generic functions
Generic Function, prev-node: Private generic functions
Generic Function, start: Public generic functions
Generic Function, taint: Private generic functions
Generic Function, val: Private generic functions
Generic Function, x: Public generic functions
Generic Function, x-max: Private generic functions
Generic Function, x-min: Private generic functions
Generic Function, y: Public generic functions
Generic Function, y-max: Private generic functions
Generic Function, y-min: Private generic functions

H
heap-empty: Public ordinary functions
heap-lchild: Private ordinary functions
heap-parent: Private ordinary functions
heap-peek: Public ordinary functions
heap-rchild: Private ordinary functions
heapify: Public ordinary functions

I
in-cone-p: Private ordinary functions
initialize-instance: Public standalone methods
insert-edge: Private ordinary functions
intersect-boxes: Private ordinary functions
intersect-p: Private ordinary functions
intersect-proper-p: Private ordinary functions

L
left-endpoint: Private ordinary functions
left-on-p: Private ordinary functions
left-p: Private ordinary functions
line-from-segment: Public ordinary functions
line-segment-length: Public ordinary functions
line-segments-intersection-point: Public ordinary functions
line-segments-intersection-segment: Public ordinary functions
line-x-at-y: Public ordinary functions
line-y-at-x: Public ordinary functions
lines-equal-p: Public ordinary functions
lines-intersection-point: Public ordinary functions
lines-parralel-p: Public ordinary functions

M
make-line-segment: Private ordinary functions
make-point: Private ordinary functions
make-polygon-from-coords: Public ordinary functions
make-polygon-from-point-list: Public ordinary functions
make-polygon-from-point-ring: Public ordinary functions
merge-line-segment-into: Private ordinary functions
Method, (setf a): Public generic functions
Method, (setf b): Public generic functions
Method, (setf c): Public generic functions
Method, (setf direction): Private generic functions
Method, (setf ear): Private generic functions
Method, (setf edge): Private generic functions
Method, (setf edge-tree): Private generic functions
Method, (setf edge1): Private generic functions
Method, (setf edge2): Private generic functions
Method, (setf end): Public generic functions
Method, (setf next-node): Private generic functions
Method, (setf prev-node): Private generic functions
Method, (setf start): Public generic functions
Method, (setf taint): Private generic functions
Method, (setf val): Private generic functions
Method, (setf x): Public generic functions
Method, (setf x-max): Private generic functions
Method, (setf x-min): Private generic functions
Method, (setf y): Public generic functions
Method, (setf y-max): Private generic functions
Method, (setf y-min): Private generic functions
Method, a: Public generic functions
Method, b: Public generic functions
Method, c: Public generic functions
Method, construct-bounding-box: Private generic functions
Method, construct-bounding-box: Private generic functions
Method, direction: Private generic functions
Method, ear: Private generic functions
Method, edge: Private generic functions
Method, edge-list: Public generic functions
Method, edge-tree: Private generic functions
Method, edge1: Private generic functions
Method, edge2: Private generic functions
Method, end: Public generic functions
Method, initialize-instance: Public standalone methods
Method, next-node: Private generic functions
Method, point-list: Public generic functions
Method, point-ring: Private generic functions
Method, prev-node: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, start: Public generic functions
Method, taint: Private generic functions
Method, val: Private generic functions
Method, x: Public generic functions
Method, x: Public generic functions
Method, x-max: Private generic functions
Method, x-min: Private generic functions
Method, y: Public generic functions
Method, y: Public generic functions
Method, y-max: Private generic functions
Method, y-min: Private generic functions
move-sweep-line: Private ordinary functions

N
next-node: Private generic functions
next-node: Private generic functions
nheap-extract: Public ordinary functions
nheap-insert: Public ordinary functions
notany-symmetric-test: Private ordinary functions

O
order-line-segments-at-point: Private ordinary functions
orient-edge-right: Private ordinary functions

P
perimeter-rectangle: Public ordinary functions
perimeter-square: Public ordinary functions
perimeter-triangle: Public ordinary functions
point-equal-p: Public ordinary functions
point-in-box-exclusive: Private ordinary functions
point-in-box-inclusive: Private ordinary functions
point-in-polygon-crossing-p: Public ordinary functions
point-in-polygon-winding-number: Public ordinary functions
point-in-polygon-winding-p: Public ordinary functions
point-line-position: Private ordinary functions
point-list: Public generic functions
point-list: Public generic functions
point-list-from-ring: Private ordinary functions
point-ring: Private generic functions
point-ring: Private generic functions
point-sort-fun: Private ordinary functions
polygon-binary: Private ordinary functions
polygon-difference: Public ordinary functions
polygon-difference-nary: Public ordinary functions
polygon-intersection: Public ordinary functions
polygon-orientation: Public ordinary functions
polygon-union: Public ordinary functions
possible-diagonal-p: Private ordinary functions
prev-node: Private generic functions
prev-node: Private generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods

R
recurse-bentley-ottmann: Private ordinary functions
recurse-sanitize-edges: Private ordinary functions
recurse-shamos-hoey: Private ordinary functions
remove-ear: Private ordinary functions
right-endpoint: Private ordinary functions
ring-to-list-of-edges: Private ordinary functions

S
sanitize-edges: Private ordinary functions
shamos-hoey: Public ordinary functions
simple-polygon-p: Public ordinary functions
simple-polygon-sh-p: Public ordinary functions
split-trapezoid: Private ordinary functions
start: Public generic functions
start: Public generic functions

T
taint: Private generic functions
taint: Private generic functions
trapezoidize-edges: Private ordinary functions
trapezoids-to-triangles: Private ordinary functions
triangle-center-point: Private ordinary functions
triangulate: Public ordinary functions

V
val: Private generic functions
val: Private generic functions
vertical-edge-p: Private ordinary functions

X
x: Public generic functions
x: Public generic functions
x: Public generic functions
x-max: Private generic functions
x-max: Private generic functions
x-min: Private generic functions
x-min: Private generic functions
xor: Private ordinary functions

Y
y: Public generic functions
y: Public generic functions
y: Public generic functions
y-max: Private generic functions
y-max: Private generic functions
y-min: Private generic functions
y-min: Private generic functions


A.3 Variables


A.4 Data types

Jump to:   2  
B   C   D   E   F   H   L   P   R   S   T  
Index Entry  Section

2
2d-geometry: The 2d-geometry package

B
basic-line.lisp: The cl-geometry/basic-line․lisp file
basic-point.lisp: The cl-geometry/basic-point․lisp file
basic-polygon.lisp: The cl-geometry/basic-polygon․lisp file
bentley-ottmann.lisp: The cl-geometry/bentley-ottmann․lisp file
bounding-box: Private classes
bounding-box.lisp: The cl-geometry/bounding-box․lisp file

C
cl-geometry: The cl-geometry system
cl-geometry.asd: The cl-geometry/cl-geometry․asd file
Class, bounding-box: Private classes
Class, ear-ring-node: Private classes
Class, event-endpoint: Private classes
Class, event-intersection: Private classes
Class, line: Public classes
Class, line-segment: Public classes
Class, point: Public classes
Class, poly-ring-node: Private classes
Class, polygon: Public classes
Class, sweep-line: Private classes
Class, taint-segment: Private classes

D
decomposition.lisp: The cl-geometry/decomposition․lisp file

E
ear-ring-node: Private classes
event-endpoint: Private classes
event-intersection: Private classes

F
File, basic-line.lisp: The cl-geometry/basic-line․lisp file
File, basic-point.lisp: The cl-geometry/basic-point․lisp file
File, basic-polygon.lisp: The cl-geometry/basic-polygon․lisp file
File, bentley-ottmann.lisp: The cl-geometry/bentley-ottmann․lisp file
File, bounding-box.lisp: The cl-geometry/bounding-box․lisp file
File, cl-geometry.asd: The cl-geometry/cl-geometry․asd file
File, decomposition.lisp: The cl-geometry/decomposition․lisp file
File, heap.lisp: The cl-geometry/heap․lisp file
File, package.lisp: The cl-geometry/package․lisp file
File, polygon-binary.lisp: The cl-geometry/polygon-binary․lisp file
File, polygon-class.lisp: The cl-geometry/polygon-class․lisp file
File, polygon.lisp: The cl-geometry/polygon․lisp file
File, representations.lisp: The cl-geometry/representations․lisp file
File, trapezoidation.lisp: The cl-geometry/trapezoidation․lisp file
File, triangulation.lisp: The cl-geometry/triangulation․lisp file
File, trivial-geometry.lisp: The cl-geometry/trivial-geometry․lisp file

H
heap.lisp: The cl-geometry/heap․lisp file

L
line: Public classes
line-segment: Public classes

P
Package, 2d-geometry: The 2d-geometry package
Package, ramarren-utils: The ramarren-utils package
package.lisp: The cl-geometry/package․lisp file
point: Public classes
poly-ring-node: Private classes
polygon: Public classes
polygon-binary.lisp: The cl-geometry/polygon-binary․lisp file
polygon-class.lisp: The cl-geometry/polygon-class․lisp file
polygon.lisp: The cl-geometry/polygon․lisp file

R
ramarren-utils: The ramarren-utils package
representations.lisp: The cl-geometry/representations․lisp file

S
sweep-line: Private classes
System, cl-geometry: The cl-geometry system

T
taint-segment: Private classes
trapezoidation.lisp: The cl-geometry/trapezoidation․lisp file
triangulation.lisp: The cl-geometry/triangulation․lisp file
trivial-geometry.lisp: The cl-geometry/trivial-geometry․lisp file