The cepl.spaces Reference Manual

This is the cepl.spaces Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 14:52:23 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cepl.spaces

Adds abstractions over vector spaces to CEPL

Author

Chris Bagley (Baggers) <>

License

BSD 2 Clause

Dependencies
  • fn (system).
  • rtg-math (system).
  • rtg-math.vari (system).
  • varjo (system).
  • cepl (system).
  • documentation-utils (system).
Source

cepl.spaces.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 cepl.spaces/cepl.spaces.asd

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

ASDF Systems

cepl.spaces.


3.1.2 cepl.spaces/package.lisp

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Packages

3.1.3 cepl.spaces/constants.lisp

Dependency

package.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Internals

3.1.4 cepl.spaces/nht-routes.lisp

Dependency

constants.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface
Internals

3.1.5 cepl.spaces/space.lisp

Dependency

nht-routes.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface
Internals

3.1.6 cepl.spaces/predefined-spaces.lisp

Dependency

space.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface
Internals

*identity-eye-space* (special variable).


3.1.7 cepl.spaces/pos.lisp

Dependency

predefined-spaces.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface

svec4 (structure).

Internals

3.1.8 cepl.spaces/space-errors.lisp

Dependency

pos.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Internals

3.1.9 cepl.spaces/space-walking.lisp

Dependency

space-errors.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Internals

3.1.10 cepl.spaces/space-transforms.lisp

Dependency

space-walking.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface
Internals

3.1.11 cepl.spaces/pos-funcs.lisp

Dependency

space-transforms.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface

sv! (function).

Internals

3.1.12 cepl.spaces/vector-space.lisp

Dependency

pos-funcs.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Internals

3.1.13 cepl.spaces/spatial-vector.lisp

Dependency

vector-space.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface
Internals

3.1.14 cepl.spaces/gpu.lisp

Dependency

spatial-vector.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).

Public Interface

in (macro).

Internals

3.1.15 cepl.spaces/docs.lisp

Dependency

gpu.lisp (file).

Source

cepl.spaces.asd.

Parent Component

cepl.spaces (system).


4 Packages

Packages are listed by definition order.


4.1 cepl.spaces.routes

Source

package.lisp.

Use List
  • cepl-utils.
  • cepl.defn.
  • cepl.errors.
  • common-lisp.
  • editor-hints.named-readtables.
  • fn.
Public Interface
Internals

4.2 cepl.spaces

Source

package.lisp.

Use List
  • cepl-utils.
  • cepl.defn.
  • cepl.errors.
  • cepl.internals.
  • cepl.memory.
  • cepl.pipelines.
  • cepl.types.
  • common-lisp.
  • editor-hints.named-readtables.
  • rtg-math.
  • rtg-math.types.
  • vari.
  • varjo.
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 Special variables

Special Variable: *clip-space*

This is the vec-space that describes clip-space in CEPL.

Package

cepl.spaces.

Source

predefined-spaces.lisp.

Special Variable: *ndc-space*

This is the vec-space that describes ndc-space in CEPL.

Package

cepl.spaces.

Source

predefined-spaces.lisp.

Special Variable: *screen-space*

This is the vec-space that describes screen-space in CEPL.

It could also be thought of as FBO space when you are not rendering into the default framebuffer object.

Package

cepl.spaces.

Source

predefined-spaces.lisp.

Special Variable: *world-space*

This is the vec-space that describes world-space in CEPL.

Whilst it is perfectly possible to use CEPL’s vec-space feature to define your own world-space, we strongly suggest you do not as CEPL has some specific optimizations it can do you you use *world-space* instead of your own.

Package

cepl.spaces.

Source

predefined-spaces.lisp.


5.1.2 Macros

Macro: in (space &body body)

This macro is only valid inside gpu functions.

It defines a scope which is said to be ’in the vec-space’ given as the first argument. This means that any spatial-vectors created in this scope will be declared in this space.

If the value that is returned from the scope of the ’in’ is a spatial-vector then the vector is transformed from the space of the inner scope to the space of the outer scope.

For example:

(in *clip-space*
(let ((z (in *world-space*
(let ((x (sv! 0 1 2 3)))
...
x))))
z))

In the code above the spatial-vector x is defined in *world-space*. However as it is used in the tail position of the innermost let, it will leave the *world-space* scope and enter the *clip-space* scope. At that point the spatial-vector will be multiplied with the mat4 that describes the *world-space* → *clip-space* transform.

All of this information is resolved statically at compile-time by CEPL. The ’in’ forms are removed and the spatial-vectors are replaced with regular ones. CEPL will calculate the mat4 transforms between the used spaces on the CPU and upload them as uniforms.

This means that the final glsl will only contain standard glsl vectors and matrices and will perform as well as any other handwritten glsl code.

Package

cepl.spaces.

Source

gpu.lisp.

Macro: with-space-routing-via (via-space &body body)

This macro ensures that all routes calculated between spaces go via the specifed vec-space.

This behaves as if all the calls to #’get-transform were actually called to #’get-transform-via with the given vec-space used as the via-space.

Package

cepl.spaces.

Source

space-transforms.lisp.


5.1.3 Ordinary functions

Function: add-id (new-id connect-to-ids)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: free-id (id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: get-route (from-id to-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: get-transform (from-space to-space &optional initial-m4)

This function will return the mat4 that describes the transform between from-space and to-space.

If you have an existing matrix you wish to use as the base of the transform then you case pass it as the initial-m4 argument

Package

cepl.spaces.

Source

space-transforms.lisp.

Function: (setf get-transform) (from-space &optional to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: get-transform-via (from-space to-space via-space)

This function will return the mat4 that describes the transform between from-space and to-space, via the specified via-space.

This is very useful in cases where there are multiple possible routes to the to-space and you wish to restrict which route is taken.

Package

cepl.spaces.

Source

space-transforms.lisp.

Function: id! ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: make-space (target-space transform-to &optional transform-from)

This function returns a new vec-space when passed:

- The space which this new space will be defined in relation to

- A mat4 which describes the transform from this new space to the target-space

- (optional) A mat4 which describes the transform from the target-space to this new space.

As the new vec-space will have only 1 neighbour it will be a model-space

Package

cepl.spaces.

Source

space.lisp.

Function: make-space* (&rest relationships)

This function returns a new vec-space when passed as in the following format:

(list (neighbour-space1 mat4-to-neighbour-space1 mat4-from-neighbour-space1) (neighbour-space2 mat4-to-neighbour-space2 mat4-from-neighbour-space2) ... etc ...)

Just like in #’make-space, the mat4-from-neighbour-space transform is optional.

As this function produces a vec-space with multiple neighbour spaces, the resulting vec-space is known as a relational-space.

Package

cepl.spaces.

Source

space.lisp.

Function: map-route (from-id to-id function)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: model-space-p (space)

When passed a vec-space this function will return t if the vec-space is a ’model-space’

In CEPL this means that this vec-space on has one non-hierarchical relationship with another space.

Package

cepl.spaces.

Source

space.lisp.

Function: parent-space (space)

When given a hierarchical vec-space, this function will return the space that has this vec-space as a child

Package

cepl.spaces.

Source

space.lisp.

Function: reduce-route (from-id to-id function &optional initial-value)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: relational-space-p (space)

When passed a vec-space this function will return t if the vec-space is a ’relational-space’

In CEPL this means that this vec-space is a child of another vec-space.

Package

cepl.spaces.

Source

space.lisp.

Function: reset ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: sv! (vec &optional space)

This function is only useful inside gpu functions.

It returns a new spatial vector. A spatial vector is much like a regular vector except that the vector-space in which it resides is stored along with the vector’s components.

If a spatial vector leaves the lexical scope of the vec-space it was defined in, then it is automatically transformed into the vec-space of the surrounding scope.

See the docstring for the ’in’ macro for more details.

For more info on the behaviour of CEPL’s space feature as a whole please see the docstring for the vec-space struct.

Package

cepl.spaces.

Source

pos-funcs.lisp.


5.1.4 Standalone methods

Method: combine-metadata ((meta-a spatial-meta) (meta-b spatial-meta))
Package

varjo.internals.

Source

spatial-vector.lisp.

Method: free ((space vec-space))
Package

cepl.memory.

Source

space.lisp.

Method: initialize-instance :after ((md spatial-meta) &rest all-args &key in-space)
Source

spatial-vector.lisp.

Method: print-object ((space vec-space) stream)
Source

space.lisp.

Method: print-object ((obj spatial-meta) stream)
Source

spatial-vector.lisp.

Method: print-object ((r spatial-relationship) stream)
Source

space.lisp.


5.1.5 Structures

Structure: svec4

This is a 4 component spatial vector type. A spatial vector is a vector that also stores which vector-space it is in.

Package

cepl.spaces.

Source

pos.lisp.

Direct superclasses

pos.

Direct slots
Slot: point
Type

(simple-array single-float (4))

Initform

(rtg-math.base-vectors:v! 0 0 0 0)

Readers

svec4-point.

Writers

(setf svec4-point).

Structure: vec-space

This type is an abstraction over the concept of a vector-space.

In graphics programming we are very used to using matrices to describe transforms. The matrix describes the transform for any given point in vector-space to a point in another vector-space.

Some spaces are very commonly mentioned when discuss rendering, spaces like world-space, camera-space, clip-space, etc. However when it comes to our programs we have to work with the transform (matrix) rather the space directly.

In CEPL we have a feature to allow working with vector spaces as a first class object, the vec-space. We uses these vec-spaces in our GPU code and CEPL statically analyses our code to work out what matrices are needed and uploads them as uniforms.

By doing this, our GPU ends up running code that only has the ’normal’
types (matrices and vectors) which means we pay no performace cost for the features

Working with vec-spaces directly means our code more closely reflects how we talk about the problems we are trying to solve. As we will see below it also makes it much harder to perform ’invalid’ spatial calculations.

– Lexical Space –

In many graphics related texts we talk about performing a calculation in a certain space.

In CEPL we express this with the ’in’ macro

(in *world-space*
(some-calculation)
(more-calculations))

Everything that is happening in this scope is happening ’in *world-space*’

the ’in’ macro can be nested:

(in *clip-space*
(let ((z (in *world-space*
(let ((x (sv! 0 1 2 3)))
...
x))))
z))

Here z is in *clip-space* and x is in *world-space*

– Spatial Vectors –

In the above example we also introduce another type: spatial-vectors

sv! behave exactly the same as v! in that it produces a vector, however instead of making a regular vector the code above will make a spatial-vector.

Spatial vectors are vectors which store which space they were created in.

The advantage of this is that CEPL can detect if they leave that space and enter a different space. When that happens CEPL will automatically transform the vector to the new space.

We can see this in the example above. The value in ’x’ is a spatial vector that was created in world space, however as the value moves up the stack to be stored in ’z’ it leaves the scope of *world-space* and enters *clip-space*. At this point CEPL will multiply the vector with a ’world-space-to-clip-space matrix’.

This is awesome as it means that if you are working with spatial vectors in the same scope, you are guarenteed that they are in the same space.

Another advantage is that in most case CEPL can calculate these transform matrices on the CPU and upload them as uniforms, which makes this code very fast.

– Defining Spaces –

Currently vec-spaces can only be defined in cpu code. They must be passed to gpu functions as uniforms.

All spaces are defined relative to another space. A vec-space is either a hierarchical-space, relational-space or a model-space.

A hierarchical-space is a space which is a child of another space. When the parent space is transformed, the child space is also transformed. You can see this relationship as how your hand has a position and orientation but will be transformed by the parent, the lower-arm. The lower arm in turn is a child of the upper arm, and so on. Hierarchical spaces are WIP and not currently exposed in CEPL

A relational-space x is a space whose relationship to another space can be defined with a matrix, but which is not affected by changes to that other space.

A relational-space can have any number of spaces as neighbours, however
in the case where there is only one neighbour space, the space is known as a model-space.

Making a model space is very easy.

(make-space neighbour-space transform-to-neighbour-matrix4 transform-from-neighbour-matrix4)

the transform-from-neighbour-matrix4 transform is optional where the inverse can be calculated.

To make a relational space you use #’make-space* and pass in a list where the sublists are the same as the arguments to make-space

– Spaces & Implicit-Uniforms

If the vec-space is stored in a variable with global scope then CEPL’s implicit-uniforms feature means you can use the space without explicitly adding the uniform argument yourself.

See the docstring for defun-g for more details on implicit-uniforms.

– Immutable Relationships –

Whilst the transforms between neighbouring spaces are mutable.
It is not possible to add new neighbours to an existing vec-space x, except by making a new vec-space as specifying x as its neighbour.

– Predefined Spaces –

CEPL defines a few commonly used spaces for you. Other than *world-space* they are all spaces used in the GLSL pipeline:

*world-space*
*clip-space*
*ndc-space*
*screen-space*

Package

cepl.spaces.

Source

space.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: uid
Type

fixnum

Initform

(incf cepl.spaces::*last-space-id*)

Readers

%space-uid.

Writers

This slot is read-only.

Slot: nht-id
Type

fixnum

Initform

(error "id must be provided")

Readers

%space-nht-id.

Writers

This slot is read-only.

Slot: kind
Package

vari.cl.

Type

(mod 3)

Initform

(error "space kind must be provided")

Readers

%space-kind.

Writers

This slot is read-only.

Slot: parent
Type

(or null cepl.spaces:vec-space)

Readers

%space-parent.

Writers

This slot is read-only.

Slot: children
Type

(or null (array cepl.spaces:vec-space (*)))

Readers

%space-children.

Writers

This slot is read-only.

Slot: root
Type

(or null cepl.spaces:vec-space)

Readers

%space-root.

Writers

This slot is read-only.

Slot: neighbours
Type

(array cepl.spaces::spatial-relationship (*))

Initform

(make-array 0 :element-type (quote cepl.spaces::spatial-relationship) :initial-element (cepl.spaces::%make-sr))

Readers

%space-neighbours.

Writers

This slot is read-only.

Slot: depth
Type

fixnum

Initform

(error "space depth must be provided")

Readers

%space-depth.

Writers

(setf %space-depth).


5.2 Internals


5.2.1 Constants

Constant: +default-subtable-count+
Package

cepl.spaces.routes.

Source

constants.lisp.

Constant: +hierachical-space+
Package

cepl.spaces.

Source

space.lisp.

Constant: +model-space+
Package

cepl.spaces.

Source

space.lisp.

Constant: +relational-space+
Package

cepl.spaces.

Source

space.lisp.

Constant: +subtable-length+
Package

cepl.spaces.routes.

Source

constants.lisp.


5.2.2 Special variables

Special Variable: *default-pos-space*
Package

cepl.spaces.

Source

pos.lisp.

Special Variable: *identity-eye-space*
Package

cepl.spaces.

Source

predefined-spaces.lisp.

Special Variable: *last-space-id*
Package

cepl.spaces.

Source

space.lisp.

Special Variable: *spaces-array-growth-rate*
Package

cepl.spaces.

Source

space.lisp.

Special Variable: spaces
Package

cepl.spaces.

Source

space.lisp.


5.2.3 Macros

Macro: kind-case ((space &key error) &key m r h)
Package

cepl.spaces.

Source

space.lisp.

Macro: kind-case* ((from to &key error) &key m->m m->r m->h r->m r->r r->h h->m h->r h->h)
Package

cepl.spaces.

Source

space.lisp.

Macro: with-sparse-elem ((&key next len create-if-missing) (route-table index) &body body)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.


5.2.4 Compiler macros

Compiler Macro: reduce-ancestors (function of-space &optional until-space initial-value)
Package

cepl.spaces.

Source

space-walking.lisp.


5.2.5 Ordinary functions

Function: %%-svec3! (&key space point)
Package

cepl.spaces.

Source

pos.lisp.

Function: %%-svec4! (&key space point)
Package

cepl.spaces.

Source

pos.lisp.

Function: %add-space-to-array (space)
Package

cepl.spaces.

Source

space.lisp.

Function: %check-not-illegal-space (space-id from?)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %get-hierarchical-transform (from-space to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %has-route (from-id to-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: %hspace-inverse-transform (space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %hspace-to-hspace-transform (from-space to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %hspace-to-mspace-transform (from-space to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %hspace-to-rspace-transform (from-space to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %hspace-transform (hspace)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %make-heirarchical-space (parent &optional transform)
Package

cepl.spaces.

Source

space.lisp.

Function: %make-model-space (target-space transform-to &optional transform-from)
Package

cepl.spaces.

Source

space.lisp.

Function: %make-relational-space (relationships)
Package

cepl.spaces.

Source

space.lisp.

Function: %make-route-table (&key sparse-part)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: %make-routes-array ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: %make-space (&key uid nht-id kind parent children root neighbours depth)
Package

cepl.spaces.

Source

space.lisp.

Function: %make-sr (&key source-id target-id to from)
Package

cepl.spaces.

Source

space.lisp.

Function: %mspace-only-sr (mspace)
Package

cepl.spaces.

Source

space.lisp.

Function: %mspace-to-hspace-transform (from-space to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %mspace-to-mspace-transform (mspace-a mspace-b)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %mspace-to-rspace-transform (mspace rspace)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %mspace-transform (mspace)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %next-step (from-id to-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: %reduce-ancestors (function of-space initial-value)
Package

cepl.spaces.

Source

space-walking.lisp.

Function: %reduce-ancestors-until-space (function of-space until-space initial-value)
Package

cepl.spaces.

Source

space-walking.lisp.

Function: %route-len (from-id to-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: %rspace-to-hspace-transform (from-space to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %rspace-to-mspace-transform (rspace mspace)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %rspace-to-neighbour-relationship (from-space to-space)
Package

cepl.spaces.

Source

space.lisp.

Function: %rspace-to-neighbour-transform (from-id to-id)
Package

cepl.spaces.

Source

space.lisp.

Function: %rspace-to-rspace-ids-transform (space-a-id space-b-id &optional initial-m4)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %rspace-to-rspace-transform (space-a space-b &optional initial-m4)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %set-hspace-transform (hspace transform &optional to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %set-mspace-transform (mspace transform &optional to-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: %set-route (from-id to-id step length)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: %set-rspace-to-neighbour-transform (from-space to-space transform)
Package

cepl.spaces.

Source

space.lisp.

Function: %set-rspace-transform (from-space to-space transform)
Package

cepl.spaces.

Source

space-transforms.lisp.

Reader: %space-children (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

children.

Reader: %space-depth (instance)
Writer: (setf %space-depth) (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

depth.

Reader: %space-kind (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

kind.

Reader: %space-neighbours (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

neighbours.

Reader: %space-nht-id (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

nht-id.

Reader: %space-parent (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

parent.

Function: %space-ref (id)
Package

cepl.spaces.

Source

space.lisp.

Reader: %space-root (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

root.

Reader: %space-uid (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

uid.

Function: %update-mspace-transform (mspace transform)
Package

cepl.spaces.

Source

space.lisp.

Function: %walk-leaving-trail (my-id to-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: collect-inverse-to (start-space ancestor-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: collect-transform-to (start-space ancestor-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: compile-implicit-mat4 (from-name to-name env)
Package

cepl.spaces.

Source

gpu.lisp.

Function: connect-to-0 (id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: connect-to-1 (my-id new-neighbour-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: connect-to-many (my-id new-neighbour-ids)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: convert-between-spaces (form from-name to-name form-type env)
Package

cepl.spaces.

Source

gpu.lisp.

Function: copy-pos (instance)
Package

cepl.spaces.

Source

pos.lisp.

Function: copy-route-table (instance)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: copy-spatial-relationship (instance)
Package

cepl.spaces.

Source

space.lisp.

Function: copy-svec3 (instance)
Package

cepl.spaces.

Source

pos.lisp.

Function: copy-svec4 (instance)
Package

cepl.spaces.

Source

pos.lisp.

Function: copy-vec-space (instance)
Package

cepl.spaces.

Source

space.lisp.

Function: disconnect-space (space)
Package

cepl.spaces.

Source

space.lisp.

Function: extend-routes ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: fart-route (from-id to-id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: find-common-ancestor (space-a space-b)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: free-space (space)
Package

cepl.spaces.

Source

space.lisp.

Function: get-current-id-count ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: get-current-space (env)
Package

cepl.spaces.

Source

spatial-vector.lisp.

Function: get-current-subtable-count ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: get-route-cache ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: get-routes ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: id-neighbours (id)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: inject-clip-or-ndc-reverse-transform (form from-name to-name form-type env)
Package

cepl.spaces.

Source

gpu.lisp.

Function: inject-regular-space-transform (form from-name to-name form-type env)
Package

cepl.spaces.

Source

gpu.lisp.

Function: make-cache (len)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: make-pos (&key space)
Package

cepl.spaces.

Source

pos.lisp.

Function: make-relational-space (relationships)
Package

cepl.spaces.

Source

space.lisp.

Function: make-route-subtable ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: make-route-table ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: make-space-array ()
Package

cepl.spaces.

Source

space.lisp.

Function: make-spatial-relationship (source-id target-id to-m4 from-m4)
Package

cepl.spaces.

Source

space.lisp.

Function: on-route-p (from-id to-id id-that-might-be-on-route)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: parse-relationship (r)
Package

cepl.spaces.

Source

space.lisp.

Function: parse-relationships (relationships)
Package

cepl.spaces.

Source

space.lisp.

Function: pos-p (object)
Package

cepl.spaces.

Source

pos.lisp.

Reader: pos-space (instance)
Package

cepl.spaces.

Source

pos.lisp.

Target Slot

space.

Function: propagate-routes (todo seen)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: re-space (new-space pos)

makes a new point in the same location as the first but relative to the provided new space

Package

cepl.spaces.

Source

pos-funcs.lisp.

Function: reduce-ancestors (function of-space &optional until-space initial-value)
Package

cepl.spaces.

Source

space-walking.lisp.

Function: reset-ids ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: restrict-route (via-space)
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: route-restriction ()
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: route-table-p (object)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Reader: route-table-sparse-part (instance)
Writer: (setf route-table-sparse-part) (instance)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Target Slot

sparse-part.

Function: rt-elem (route-table x)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: rt-elem-len (route-table x)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: rt-elem-step (route-table x)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: set-rt-elem (route-table x step len)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: spatial-relationship-p (object)
Package

cepl.spaces.

Source

space.lisp.

Reader: sr-from (instance)
Writer: (setf sr-from) (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

from.

Reader: sr-source-id (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

source-id.

Reader: sr-target-id (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

target-id.

Reader: sr-to (instance)
Writer: (setf sr-to) (instance)
Package

cepl.spaces.

Source

space.lisp.

Target Slot

to.

Function: svec3-p (object)
Package

cepl.spaces.

Source

pos.lisp.

Reader: svec3-point (instance)
Writer: (setf svec3-point) (instance)
Package

cepl.spaces.

Source

pos.lisp.

Target Slot

point.

Function: svec3-space (instance)
Package

cepl.spaces.

Source

pos.lisp.

Function: svec4-p (object)
Package

cepl.spaces.

Source

pos.lisp.

Reader: svec4-point (instance)
Writer: (setf svec4-point) (instance)
Package

cepl.spaces.

Source

pos.lisp.

Target Slot

point.

Function: svec4-space (instance)
Package

cepl.spaces.

Source

pos.lisp.

Function: to-space (destination-space pos)
Package

cepl.spaces.

Source

pos-funcs.lisp.

Function: un-restrict-routes ()
Package

cepl.spaces.

Source

space-transforms.lisp.

Function: update-all-route-tables (new-subtable-count)
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Function: upgrade-from-model-space (model-space)
Package

cepl.spaces.

Source

space.lisp.

Function: vec-space-p (object)
Package

cepl.spaces.

Source

space.lisp.


5.2.6 Generic functions

Generic Function: in-space (metadata)
Package

cepl.spaces.

Source

spatial-vector.lisp.

Methods
Method: in-space ((metadata spatial-meta))
Method: in-space ((metadata-collection list))

5.2.7 Standalone methods

Method: infer-implicit-uniform-type ((thing vec-space))
Package

cepl.pipelines.

Source

vector-space.lisp.

Method: infer-meta-by-type ((type0 svec3-g) (kind1 (eql cepl.spaces::spatial-meta)) env)
Package

varjo.internals.

Source

spatial-vector.lisp.

Method: infer-meta-by-type ((type0 svec4-g) (kind1 (eql cepl.spaces::spatial-meta)) env)
Package

varjo.internals.

Source

spatial-vector.lisp.

Method: meta-kinds-to-infer ((varjo-type vec-space-g))
Package

varjo.internals.

Source

vector-space.lisp.

Method: meta-kinds-to-infer ((varjo-type svec3-g))
Package

varjo.internals.

Source

spatial-vector.lisp.

Method: meta-kinds-to-infer ((varjo-type svec4-g))
Package

varjo.internals.

Source

spatial-vector.lisp.


5.2.8 Conditions

Condition: not-ancestor
Package

cepl.spaces.

Source

space-errors.lisp.

Direct superclasses

error.

Direct slots
Slot: start-space
Initargs

:start-space

Slot: ancestor-space
Initargs

:ancestor-space

Condition: position->no-space
Package

cepl.spaces.

Source

space-errors.lisp.

Direct superclasses

error.

Direct slots
Slot: start-space
Initargs

:start-space


5.2.9 Structures

Structure: pos
Package

cepl.spaces.

Source

pos.lisp.

Direct superclasses

structure-object.

Direct subclasses
Direct slots
Slot: space
Package

common-lisp.

Type

cepl.spaces:vec-space

Initform

(error "positions can not be made without a space")

Readers

pos-space.

Writers

This slot is read-only.

Structure: route-table
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: sparse-part
Type

(array cepl.spaces.routes::maybe-subtable (*))

Initform

(error "subtable array must be provided")

Readers

route-table-sparse-part.

Writers

(setf route-table-sparse-part).

Structure: spatial-relationship
Package

cepl.spaces.

Source

space.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: source-id
Type

fixnum

Initform

0

Readers

sr-source-id.

Writers

This slot is read-only.

Slot: target-id
Type

fixnum

Initform

0

Readers

sr-target-id.

Writers

This slot is read-only.

Slot: to
Type

(or null glsl-symbols.types:mat4)

Readers

sr-to.

Writers

(setf sr-to).

Slot: from
Type

(or null glsl-symbols.types:mat4)

Readers

sr-from.

Writers

(setf sr-from).

Structure: svec3
Package

cepl.spaces.

Source

pos.lisp.

Direct superclasses

pos.

Direct slots
Slot: point
Type

(simple-array single-float (3))

Initform

(rtg-math.base-vectors:v! 0 0 0)

Readers

svec3-point.

Writers

(setf svec3-point).


5.2.10 Classes

Class: spatial-meta
Package

cepl.spaces.

Source

spatial-vector.lisp.

Direct superclasses

standard-value-metadata.

Direct methods
Direct slots
Slot: in-space
Initargs

:in-space

Class: svec3-g
Package

cepl.spaces.

Source

spatial-vector.lisp.

Direct superclasses

v-shadow-type.

Direct methods
Direct slots
Slot: type-name
Package

varjo.internals.

Initform

(quote cepl.spaces::svec3-g)

Slot: superclass
Package

varjo.internals.

Initform

(quote vari.types:v-shadow-type)

Slot: shadowed-type
Package

varjo.internals.

Initform

#<vari.types:v-vec3 {100b886313}>

Slot: glsl-string
Package

varjo.internals.

Initform

"vec3"

Class: svec4-g
Package

cepl.spaces.

Source

spatial-vector.lisp.

Direct superclasses

v-shadow-type.

Direct methods
Direct slots
Slot: type-name
Package

varjo.internals.

Initform

(quote cepl.spaces::svec4-g)

Slot: superclass
Package

varjo.internals.

Initform

(quote vari.types:v-shadow-type)

Slot: shadowed-type
Package

varjo.internals.

Initform

#<vari.types:v-vec4 {100b886043}>

Slot: glsl-string
Package

varjo.internals.

Initform

"vec4"

Class: vec-space-g
Package

cepl.spaces.

Source

vector-space.lisp.

Direct superclasses

v-ephemeral-type.

Direct methods

meta-kinds-to-infer.

Direct slots
Slot: type-name
Package

varjo.internals.

Initform

(quote cepl.spaces::vec-space-g)

Slot: superclass
Package

varjo.internals.

Initform

(quote vari.types:v-ephemeral-type)


5.2.11 Types

Type: maybe-subtable ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.

Type: subtable ()
Package

cepl.spaces.routes.

Source

nht-routes.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   C   D   E   F   G   I   K   M   O   P   R   S   T   U   V   W  
Index Entry  Section

%
%%-svec3!: Private ordinary functions
%%-svec4!: Private ordinary functions
%add-space-to-array: Private ordinary functions
%check-not-illegal-space: Private ordinary functions
%get-hierarchical-transform: Private ordinary functions
%has-route: Private ordinary functions
%hspace-inverse-transform: Private ordinary functions
%hspace-to-hspace-transform: Private ordinary functions
%hspace-to-mspace-transform: Private ordinary functions
%hspace-to-rspace-transform: Private ordinary functions
%hspace-transform: Private ordinary functions
%make-heirarchical-space: Private ordinary functions
%make-model-space: Private ordinary functions
%make-relational-space: Private ordinary functions
%make-route-table: Private ordinary functions
%make-routes-array: Private ordinary functions
%make-space: Private ordinary functions
%make-sr: Private ordinary functions
%mspace-only-sr: Private ordinary functions
%mspace-to-hspace-transform: Private ordinary functions
%mspace-to-mspace-transform: Private ordinary functions
%mspace-to-rspace-transform: Private ordinary functions
%mspace-transform: Private ordinary functions
%next-step: Private ordinary functions
%reduce-ancestors: Private ordinary functions
%reduce-ancestors-until-space: Private ordinary functions
%route-len: Private ordinary functions
%rspace-to-hspace-transform: Private ordinary functions
%rspace-to-mspace-transform: Private ordinary functions
%rspace-to-neighbour-relationship: Private ordinary functions
%rspace-to-neighbour-transform: Private ordinary functions
%rspace-to-rspace-ids-transform: Private ordinary functions
%rspace-to-rspace-transform: Private ordinary functions
%set-hspace-transform: Private ordinary functions
%set-mspace-transform: Private ordinary functions
%set-route: Private ordinary functions
%set-rspace-to-neighbour-transform: Private ordinary functions
%set-rspace-transform: Private ordinary functions
%space-children: Private ordinary functions
%space-depth: Private ordinary functions
%space-kind: Private ordinary functions
%space-neighbours: Private ordinary functions
%space-nht-id: Private ordinary functions
%space-parent: Private ordinary functions
%space-ref: Private ordinary functions
%space-root: Private ordinary functions
%space-uid: Private ordinary functions
%update-mspace-transform: Private ordinary functions
%walk-leaving-trail: Private ordinary functions

(
(setf %space-depth): Private ordinary functions
(setf get-transform): Public ordinary functions
(setf route-table-sparse-part): Private ordinary functions
(setf sr-from): Private ordinary functions
(setf sr-to): Private ordinary functions
(setf svec3-point): Private ordinary functions
(setf svec4-point): Private ordinary functions

A
add-id: Public ordinary functions

C
collect-inverse-to: Private ordinary functions
collect-transform-to: Private ordinary functions
combine-metadata: Public standalone methods
compile-implicit-mat4: Private ordinary functions
Compiler Macro, reduce-ancestors: Private compiler macros
connect-to-0: Private ordinary functions
connect-to-1: Private ordinary functions
connect-to-many: Private ordinary functions
convert-between-spaces: Private ordinary functions
copy-pos: Private ordinary functions
copy-route-table: Private ordinary functions
copy-spatial-relationship: Private ordinary functions
copy-svec3: Private ordinary functions
copy-svec4: Private ordinary functions
copy-vec-space: Private ordinary functions

D
disconnect-space: Private ordinary functions

E
extend-routes: Private ordinary functions

F
fart-route: Private ordinary functions
find-common-ancestor: Private ordinary functions
free: Public standalone methods
free-id: Public ordinary functions
free-space: Private ordinary functions
Function, %%-svec3!: Private ordinary functions
Function, %%-svec4!: Private ordinary functions
Function, %add-space-to-array: Private ordinary functions
Function, %check-not-illegal-space: Private ordinary functions
Function, %get-hierarchical-transform: Private ordinary functions
Function, %has-route: Private ordinary functions
Function, %hspace-inverse-transform: Private ordinary functions
Function, %hspace-to-hspace-transform: Private ordinary functions
Function, %hspace-to-mspace-transform: Private ordinary functions
Function, %hspace-to-rspace-transform: Private ordinary functions
Function, %hspace-transform: Private ordinary functions
Function, %make-heirarchical-space: Private ordinary functions
Function, %make-model-space: Private ordinary functions
Function, %make-relational-space: Private ordinary functions
Function, %make-route-table: Private ordinary functions
Function, %make-routes-array: Private ordinary functions
Function, %make-space: Private ordinary functions
Function, %make-sr: Private ordinary functions
Function, %mspace-only-sr: Private ordinary functions
Function, %mspace-to-hspace-transform: Private ordinary functions
Function, %mspace-to-mspace-transform: Private ordinary functions
Function, %mspace-to-rspace-transform: Private ordinary functions
Function, %mspace-transform: Private ordinary functions
Function, %next-step: Private ordinary functions
Function, %reduce-ancestors: Private ordinary functions
Function, %reduce-ancestors-until-space: Private ordinary functions
Function, %route-len: Private ordinary functions
Function, %rspace-to-hspace-transform: Private ordinary functions
Function, %rspace-to-mspace-transform: Private ordinary functions
Function, %rspace-to-neighbour-relationship: Private ordinary functions
Function, %rspace-to-neighbour-transform: Private ordinary functions
Function, %rspace-to-rspace-ids-transform: Private ordinary functions
Function, %rspace-to-rspace-transform: Private ordinary functions
Function, %set-hspace-transform: Private ordinary functions
Function, %set-mspace-transform: Private ordinary functions
Function, %set-route: Private ordinary functions
Function, %set-rspace-to-neighbour-transform: Private ordinary functions
Function, %set-rspace-transform: Private ordinary functions
Function, %space-children: Private ordinary functions
Function, %space-depth: Private ordinary functions
Function, %space-kind: Private ordinary functions
Function, %space-neighbours: Private ordinary functions
Function, %space-nht-id: Private ordinary functions
Function, %space-parent: Private ordinary functions
Function, %space-ref: Private ordinary functions
Function, %space-root: Private ordinary functions
Function, %space-uid: Private ordinary functions
Function, %update-mspace-transform: Private ordinary functions
Function, %walk-leaving-trail: Private ordinary functions
Function, (setf %space-depth): Private ordinary functions
Function, (setf get-transform): Public ordinary functions
Function, (setf route-table-sparse-part): Private ordinary functions
Function, (setf sr-from): Private ordinary functions
Function, (setf sr-to): Private ordinary functions
Function, (setf svec3-point): Private ordinary functions
Function, (setf svec4-point): Private ordinary functions
Function, add-id: Public ordinary functions
Function, collect-inverse-to: Private ordinary functions
Function, collect-transform-to: Private ordinary functions
Function, compile-implicit-mat4: Private ordinary functions
Function, connect-to-0: Private ordinary functions
Function, connect-to-1: Private ordinary functions
Function, connect-to-many: Private ordinary functions
Function, convert-between-spaces: Private ordinary functions
Function, copy-pos: Private ordinary functions
Function, copy-route-table: Private ordinary functions
Function, copy-spatial-relationship: Private ordinary functions
Function, copy-svec3: Private ordinary functions
Function, copy-svec4: Private ordinary functions
Function, copy-vec-space: Private ordinary functions
Function, disconnect-space: Private ordinary functions
Function, extend-routes: Private ordinary functions
Function, fart-route: Private ordinary functions
Function, find-common-ancestor: Private ordinary functions
Function, free-id: Public ordinary functions
Function, free-space: Private ordinary functions
Function, get-current-id-count: Private ordinary functions
Function, get-current-space: Private ordinary functions
Function, get-current-subtable-count: Private ordinary functions
Function, get-route: Public ordinary functions
Function, get-route-cache: Private ordinary functions
Function, get-routes: Private ordinary functions
Function, get-transform: Public ordinary functions
Function, get-transform-via: Public ordinary functions
Function, id!: Public ordinary functions
Function, id-neighbours: Private ordinary functions
Function, inject-clip-or-ndc-reverse-transform: Private ordinary functions
Function, inject-regular-space-transform: Private ordinary functions
Function, make-cache: Private ordinary functions
Function, make-pos: Private ordinary functions
Function, make-relational-space: Private ordinary functions
Function, make-route-subtable: Private ordinary functions
Function, make-route-table: Private ordinary functions
Function, make-space: Public ordinary functions
Function, make-space*: Public ordinary functions
Function, make-space-array: Private ordinary functions
Function, make-spatial-relationship: Private ordinary functions
Function, map-route: Public ordinary functions
Function, model-space-p: Public ordinary functions
Function, on-route-p: Private ordinary functions
Function, parent-space: Public ordinary functions
Function, parse-relationship: Private ordinary functions
Function, parse-relationships: Private ordinary functions
Function, pos-p: Private ordinary functions
Function, pos-space: Private ordinary functions
Function, propagate-routes: Private ordinary functions
Function, re-space: Private ordinary functions
Function, reduce-ancestors: Private ordinary functions
Function, reduce-route: Public ordinary functions
Function, relational-space-p: Public ordinary functions
Function, reset: Public ordinary functions
Function, reset-ids: Private ordinary functions
Function, restrict-route: Private ordinary functions
Function, route-restriction: Private ordinary functions
Function, route-table-p: Private ordinary functions
Function, route-table-sparse-part: Private ordinary functions
Function, rt-elem: Private ordinary functions
Function, rt-elem-len: Private ordinary functions
Function, rt-elem-step: Private ordinary functions
Function, set-rt-elem: Private ordinary functions
Function, spatial-relationship-p: Private ordinary functions
Function, sr-from: Private ordinary functions
Function, sr-source-id: Private ordinary functions
Function, sr-target-id: Private ordinary functions
Function, sr-to: Private ordinary functions
Function, sv!: Public ordinary functions
Function, svec3-p: Private ordinary functions
Function, svec3-point: Private ordinary functions
Function, svec3-space: Private ordinary functions
Function, svec4-p: Private ordinary functions
Function, svec4-point: Private ordinary functions
Function, svec4-space: Private ordinary functions
Function, to-space: Private ordinary functions
Function, un-restrict-routes: Private ordinary functions
Function, update-all-route-tables: Private ordinary functions
Function, upgrade-from-model-space: Private ordinary functions
Function, vec-space-p: Private ordinary functions

G
Generic Function, in-space: Private generic functions
get-current-id-count: Private ordinary functions
get-current-space: Private ordinary functions
get-current-subtable-count: Private ordinary functions
get-route: Public ordinary functions
get-route-cache: Private ordinary functions
get-routes: Private ordinary functions
get-transform: Public ordinary functions
get-transform-via: Public ordinary functions

I
id!: Public ordinary functions
id-neighbours: Private ordinary functions
in: Public macros
in-space: Private generic functions
in-space: Private generic functions
in-space: Private generic functions
infer-implicit-uniform-type: Private standalone methods
infer-meta-by-type: Private standalone methods
infer-meta-by-type: Private standalone methods
initialize-instance: Public standalone methods
inject-clip-or-ndc-reverse-transform: Private ordinary functions
inject-regular-space-transform: Private ordinary functions

K
kind-case: Private macros
kind-case*: Private macros

M
Macro, in: Public macros
Macro, kind-case: Private macros
Macro, kind-case*: Private macros
Macro, with-space-routing-via: Public macros
Macro, with-sparse-elem: Private macros
make-cache: Private ordinary functions
make-pos: Private ordinary functions
make-relational-space: Private ordinary functions
make-route-subtable: Private ordinary functions
make-route-table: Private ordinary functions
make-space: Public ordinary functions
make-space*: Public ordinary functions
make-space-array: Private ordinary functions
make-spatial-relationship: Private ordinary functions
map-route: Public ordinary functions
meta-kinds-to-infer: Private standalone methods
meta-kinds-to-infer: Private standalone methods
meta-kinds-to-infer: Private standalone methods
Method, combine-metadata: Public standalone methods
Method, free: Public standalone methods
Method, in-space: Private generic functions
Method, in-space: Private generic functions
Method, infer-implicit-uniform-type: Private standalone methods
Method, infer-meta-by-type: Private standalone methods
Method, infer-meta-by-type: Private standalone methods
Method, initialize-instance: Public standalone methods
Method, meta-kinds-to-infer: Private standalone methods
Method, meta-kinds-to-infer: Private standalone methods
Method, meta-kinds-to-infer: Private standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
model-space-p: Public ordinary functions

O
on-route-p: Private ordinary functions

P
parent-space: Public ordinary functions
parse-relationship: Private ordinary functions
parse-relationships: Private ordinary functions
pos-p: Private ordinary functions
pos-space: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
propagate-routes: Private ordinary functions

R
re-space: Private ordinary functions
reduce-ancestors: Private compiler macros
reduce-ancestors: Private ordinary functions
reduce-route: Public ordinary functions
relational-space-p: Public ordinary functions
reset: Public ordinary functions
reset-ids: Private ordinary functions
restrict-route: Private ordinary functions
route-restriction: Private ordinary functions
route-table-p: Private ordinary functions
route-table-sparse-part: Private ordinary functions
rt-elem: Private ordinary functions
rt-elem-len: Private ordinary functions
rt-elem-step: Private ordinary functions

S
set-rt-elem: Private ordinary functions
spatial-relationship-p: Private ordinary functions
sr-from: Private ordinary functions
sr-source-id: Private ordinary functions
sr-target-id: Private ordinary functions
sr-to: Private ordinary functions
sv!: Public ordinary functions
svec3-p: Private ordinary functions
svec3-point: Private ordinary functions
svec3-space: Private ordinary functions
svec4-p: Private ordinary functions
svec4-point: Private ordinary functions
svec4-space: Private ordinary functions

T
to-space: Private ordinary functions

U
un-restrict-routes: Private ordinary functions
update-all-route-tables: Private ordinary functions
upgrade-from-model-space: Private ordinary functions

V
vec-space-p: Private ordinary functions

W
with-space-routing-via: Public macros
with-sparse-elem: Private macros


A.3 Variables

Jump to:   *   +  
A   C   D   F   G   I   K   N   P   R   S   T   U  
Index Entry  Section

*
*clip-space*: Public special variables
*default-pos-space*: Private special variables
*identity-eye-space*: Private special variables
*last-space-id*: Private special variables
*ndc-space*: Public special variables
*screen-space*: Public special variables
*spaces-array-growth-rate*: Private special variables
*world-space*: Public special variables

+
+default-subtable-count+: Private constants
+hierachical-space+: Private constants
+model-space+: Private constants
+relational-space+: Private constants
+subtable-length+: Private constants

A
ancestor-space: Private conditions

C
children: Public structures
Constant, +default-subtable-count+: Private constants
Constant, +hierachical-space+: Private constants
Constant, +model-space+: Private constants
Constant, +relational-space+: Private constants
Constant, +subtable-length+: Private constants

D
depth: Public structures

F
from: Private structures

G
glsl-string: Private classes
glsl-string: Private classes

I
in-space: Private classes

K
kind: Public structures

N
neighbours: Public structures
nht-id: Public structures

P
parent: Public structures
point: Public structures
point: Private structures

R
root: Public structures

S
shadowed-type: Private classes
shadowed-type: Private classes
Slot, ancestor-space: Private conditions
Slot, children: Public structures
Slot, depth: Public structures
Slot, from: Private structures
Slot, glsl-string: Private classes
Slot, glsl-string: Private classes
Slot, in-space: Private classes
Slot, kind: Public structures
Slot, neighbours: Public structures
Slot, nht-id: Public structures
Slot, parent: Public structures
Slot, point: Public structures
Slot, point: Private structures
Slot, root: Public structures
Slot, shadowed-type: Private classes
Slot, shadowed-type: Private classes
Slot, source-id: Private structures
Slot, space: Private structures
Slot, sparse-part: Private structures
Slot, start-space: Private conditions
Slot, start-space: Private conditions
Slot, superclass: Private classes
Slot, superclass: Private classes
Slot, superclass: Private classes
Slot, target-id: Private structures
Slot, to: Private structures
Slot, type-name: Private classes
Slot, type-name: Private classes
Slot, type-name: Private classes
Slot, uid: Public structures
source-id: Private structures
space: Private structures
spaces: Private special variables
sparse-part: Private structures
Special Variable, *clip-space*: Public special variables
Special Variable, *default-pos-space*: Private special variables
Special Variable, *identity-eye-space*: Private special variables
Special Variable, *last-space-id*: Private special variables
Special Variable, *ndc-space*: Public special variables
Special Variable, *screen-space*: Public special variables
Special Variable, *spaces-array-growth-rate*: Private special variables
Special Variable, *world-space*: Public special variables
Special Variable, spaces: Private special variables
start-space: Private conditions
start-space: Private conditions
superclass: Private classes
superclass: Private classes
superclass: Private classes

T
target-id: Private structures
to: Private structures
type-name: Private classes
type-name: Private classes
type-name: Private classes

U
uid: Public structures


A.4 Data types

Jump to:   C   D   F   G   M   N   P   R   S   T   V  
Index Entry  Section

C
cepl.spaces: The cepl․spaces system
cepl.spaces: The cepl․spaces package
cepl.spaces.asd: The cepl․spaces/cepl․spaces․asd file
cepl.spaces.routes: The cepl․spaces․routes package
Class, spatial-meta: Private classes
Class, svec3-g: Private classes
Class, svec4-g: Private classes
Class, vec-space-g: Private classes
Condition, not-ancestor: Private conditions
Condition, position->no-space: Private conditions
constants.lisp: The cepl․spaces/constants․lisp file

D
docs.lisp: The cepl․spaces/docs․lisp file

F
File, cepl.spaces.asd: The cepl․spaces/cepl․spaces․asd file
File, constants.lisp: The cepl․spaces/constants․lisp file
File, docs.lisp: The cepl․spaces/docs․lisp file
File, gpu.lisp: The cepl․spaces/gpu․lisp file
File, nht-routes.lisp: The cepl․spaces/nht-routes․lisp file
File, package.lisp: The cepl․spaces/package․lisp file
File, pos-funcs.lisp: The cepl․spaces/pos-funcs․lisp file
File, pos.lisp: The cepl․spaces/pos․lisp file
File, predefined-spaces.lisp: The cepl․spaces/predefined-spaces․lisp file
File, space-errors.lisp: The cepl․spaces/space-errors․lisp file
File, space-transforms.lisp: The cepl․spaces/space-transforms․lisp file
File, space-walking.lisp: The cepl․spaces/space-walking․lisp file
File, space.lisp: The cepl․spaces/space․lisp file
File, spatial-vector.lisp: The cepl․spaces/spatial-vector․lisp file
File, vector-space.lisp: The cepl․spaces/vector-space․lisp file

G
gpu.lisp: The cepl․spaces/gpu․lisp file

M
maybe-subtable: Private types

N
nht-routes.lisp: The cepl․spaces/nht-routes․lisp file
not-ancestor: Private conditions

P
Package, cepl.spaces: The cepl․spaces package
Package, cepl.spaces.routes: The cepl․spaces․routes package
package.lisp: The cepl․spaces/package․lisp file
pos: Private structures
pos-funcs.lisp: The cepl․spaces/pos-funcs․lisp file
pos.lisp: The cepl․spaces/pos․lisp file
position->no-space: Private conditions
predefined-spaces.lisp: The cepl․spaces/predefined-spaces․lisp file

R
route-table: Private structures

S
space-errors.lisp: The cepl․spaces/space-errors․lisp file
space-transforms.lisp: The cepl․spaces/space-transforms․lisp file
space-walking.lisp: The cepl․spaces/space-walking․lisp file
space.lisp: The cepl․spaces/space․lisp file
spatial-meta: Private classes
spatial-relationship: Private structures
spatial-vector.lisp: The cepl․spaces/spatial-vector․lisp file
Structure, pos: Private structures
Structure, route-table: Private structures
Structure, spatial-relationship: Private structures
Structure, svec3: Private structures
Structure, svec4: Public structures
Structure, vec-space: Public structures
subtable: Private types
svec3: Private structures
svec3-g: Private classes
svec4: Public structures
svec4-g: Private classes
System, cepl.spaces: The cepl․spaces system

T
Type, maybe-subtable: Private types
Type, subtable: Private types

V
vec-space: Public structures
vec-space-g: Private classes
vector-space.lisp: The cepl․spaces/vector-space․lisp file