ngm/vector

Search:
Group by:
Source   Edit  

Types

Vec2 = array[2, Real]
Source   Edit  
Vec3 = array[3, Real]
Source   Edit  
Vec4 = array[4, Real]
Source   Edit  

Consts

Vec2Zero = [0.0'f32, 0.0]
Source   Edit  
Vec3Zero = [0.0'f32, 0.0, 0.0]
Source   Edit  
Vec4Zero = [0.0'f32, 0.0, 0.0, 0.0]
Source   Edit  

Procs

func `$`(v: Vec2): string {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `$`(v: Vec3): string {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `$`(v: Vec4): string {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `*`(s: SomeNumber; v: Vec2): Vec2 {.inline.}
Source   Edit  
func `*`(s: SomeNumber; v: Vec3): Vec3 {.inline.}
Source   Edit  
func `*`(s: SomeNumber; v: Vec4): Vec4 {.inline.}
Source   Edit  
func `*`(v: Vec2; s: SomeNumber): Vec2 {.inline.}
Source   Edit  
func `*`(v: Vec3; s: SomeNumber): Vec3 {.inline.}
Source   Edit  
func `*`(v: Vec4; s: SomeNumber): Vec4 {.inline.}
Source   Edit  
func `*=`[T: AnyVec](v: var T; s: SomeNumber) {.inline.}
Source   Edit  
func `+`(v, u: Vec2): Vec2 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `+`(v, u: Vec3): Vec3 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `+`(v, u: Vec4): Vec4 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `+=`[T: AnyVec](v: var T; u: T) {.inline.}
Source   Edit  
func `-`(v, u: Vec2): Vec2 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `-`(v, u: Vec3): Vec3 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `-`(v, u: Vec4): Vec4 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `-`(v: Vec2): Vec2 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `-`(v: Vec3): Vec3 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `-`(v: Vec4): Vec4 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `-=`[T: AnyVec](v: var T; u: T) {.inline.}
Source   Edit  
func `/`(v: Vec2; s: SomeNumber): Vec2 {.inline.}
Source   Edit  
func `/`(v: Vec3; s: SomeNumber): Vec3 {.inline.}
Source   Edit  
func `/`(v: Vec4; s: SomeNumber): Vec4 {.inline.}
Source   Edit  
func `/=`[T: AnyVec](v: var T; s: SomeNumber) {.inline.}
Source   Edit  
func `<->`(v, u: Vec2 | Vec3): Real {.inline.}
Source   Edit  
func `<=>`(v, u: Vec2 | Vec3): Real {.inline.}
Source   Edit  
func `==`(v, u: Vec2): bool {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `==`(v, u: Vec3): bool {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `==`(v, u: Vec4): bool {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `=~`(v, u: Vec2): bool {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `=~`(v, u: Vec3): bool {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func `=~`(v, u: Vec4): bool {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func angle(v, u: Vec2 | Vec3): Radians {.inline.}
Source   Edit  
func clamp[T: AnyVec](v: var T; min, max: Real) {.inline.}
Source   Edit  
func clamp[T: AnyVec](v: var T; min, max: T) {.inline.}
Source   Edit  
func clamped(v: Vec2; min, max: SomeNumber): Vec2 {.inline.}
Source   Edit  
func clamped(v: Vec2; min, max: Vec2): Vec2 {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
func clamped(v: Vec3; min, max: SomeNumber): Vec3 {.inline.}
Source   Edit  
func clamped(v: Vec3; min, max: Vec3): Vec3 {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
func clamped(v: Vec4; min, max: SomeNumber): Vec4 {.inline.}
Source   Edit  
func clamped(v: Vec4; min, max: Vec4): Vec4 {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
func cross(v, u: Vec3): Vec3 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func distance(v, u: Vec2 | Vec3): Real {.inline.}
Source   Edit  
func distance2(v, u: Vec2): Real {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func distance2(v, u: Vec3): Real {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func dot(v, u: Vec2): Real {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func dot(v, u: Vec3): Real {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func dot(v, u: Vec4): Real {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func mag(v: AnyVec): Real {.inline.}
Source   Edit  
func norm[T: AnyVec](v: T): Real {.inline.}
Source   Edit  
func norm2[T: AnyVec](v: T): Real {.inline.}
Source   Edit  
func normalize(v: var AnyVec) {.inline.}
Source   Edit  
func normalized[T: AnyVec](v: T): T {.inline.}
Source   Edit  
func reflect[T: Vec2 | Vec3](v: var T; n: T) {.inline.}
Source   Edit  
func reflected[T: Vec2 | Vec3](v, n: T): T {.inline.}
Source   Edit  
func refract[T: Vec2 | Vec3](v: var T; n: T; μ: Real): bool {.inline.}
Source   Edit  
func refracted[T: Vec2 | Vec3](v, n: T; μ: Real): Option[T] {.inline.}
Normal should already be normlized Source   Edit  
func repr(v: Vec2): string {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func repr(v: Vec3): string {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func repr(v: Vec4): string {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func rotate(v: var Vec2; α: Radians): Vec2 {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
func rotate(v: var Vec3; α: Radians; axis: Vec3): Vec3 {.inline, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
func rotated(v: Vec2; α: Radians): Vec2 {.inline, ...raises: [], tags: [],
    forbids: [].}
Rotates CCW Source   Edit  
func rotated(v: Vec3; α: Radians; axis: Vec3): Vec3 {.inline, ...raises: [],
    tags: [], forbids: [].}
Rodrigues' rotation formula v = v*cos(α) + (k×v)sin(α) + k*(k∙v)(1 - cos(α)) where k is the axis of rotation Axis should already be normalized Source   Edit  
func vec(x: SomeNumber; y: SomeNumber): Vec2 {.inline.}
Source   Edit  
func vec(x: SomeNumber; y: SomeNumber; z: SomeNumber): Vec3 {.inline.}
Source   Edit  
func vec(x: SomeNumber; y: SomeNumber; z: SomeNumber; w: SomeNumber): Vec4 {.
    inline.}
Source   Edit  
func vec2(x: SomeNumber = 0; y: SomeNumber = 0): Vec2 {.inline.}
Source   Edit  
func vec3(x: SomeNumber = 0; y: SomeNumber = 0; z: SomeNumber = 0): Vec3 {.
    inline.}
Source   Edit  
func vec4(x: SomeNumber = 0; y: SomeNumber = 0; z: SomeNumber = 0;
          w: SomeNumber = 0): Vec4 {.inline.}
Source   Edit  
func ×(v, u: Vec3): Vec3 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
func ∙(v, u: AnyVec): Real {.inline.}
Source   Edit  

Macros

macro `.`(v: AnyVec; fields: untyped): untyped {.inline.}
Source   Edit  
macro `.=`(v: AnyVec; fields, rhs: untyped): untyped {.inline.}
Source   Edit