docs / stdlib / math

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

codec

  1. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. FiberLocal
  5. Lock
  6. Mutex
  7. RwLock
  8. Semaphore
  9. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. RecoverableException
  4. Throwable
  5. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. Blake3
  2. DefaultHasher
  3. Hash
  4. MD5
  5. Sha1
  6. Sha256
  7. SipHash
  8. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. IpAddress
  2. Server
  3. ServerBuilder
  4. SocketAddress
  5. TcpListener
  6. TcpStream
  7. UdpSocket

io / net / dns

  1. Dns

io / net / tls

  1. TlsConnection
  2. TlsListener

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. Decompressor
  3. Encoder
  4. Schema
  5. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream

xpu / mesh

  1. MeshSimplifier

Camera

cajeta.math.Camera — the projection and view matrix builders a renderer’s camera produces. A pure static-utility class (no instance state); each method returns a Matrix<float32,4,4>. Conventions are locked: right-handed view space (camera looks down −z, +x right, +y up), clip-space depth range [0, 1] (Vulkan / D3D, not OpenGL’s [-1, 1]), and column-vector transforms (m * v) with row-major storage.

package snip.camera;

import cajeta.math.Camera;

public final class Demo {
    public static void run() {
        Matrix<float32,4,4> proj = Camera.perspective(1.0472f, 1.7778f, 0.1f, 1000.0f);
        Vector<float32,3> eye = stack Vector<float32,3>(0.0f, 2.0f, 5.0f);
        Vector<float32,3> at = stack Vector<float32,3>(0.0f, 0.0f, 0.0f);
        Vector<float32,3> up = stack Vector<float32,3>(0.0f, 1.0f, 0.0f);
        Matrix<float32,4,4> viewMat = Camera.lookAt(eye, at, up);
        Matrix<float32,4,4> viewProj = proj * viewMat;   // builtin matrix multiply
        return;
    }
}

Methods

Signature
static Matrix<float32,4,4> perspective(float32 fovyRadians, float32 aspect, float32 near, float32 far)Right-handed perspective projection with clip depth [0,1]; fovyRadians is the vertical field of view in radians
static Matrix<float32,4,4> ortho(float32 left, float32 right, float32 bottom, float32 top, float32 near, float32 far)Right-handed orthographic projection with clip depth [0,1]
static Matrix<float32,4,4> lookAt(Vector<float32,3> eye, Vector<float32,3> center, Vector<float32,3> up)Right-handed view matrix placing the camera at eye looking toward center with the given up reference

⚑ = @EntryPoint

See also

Source: docs/stdlib/math/Camera.md · 1 min read · 169 words