geom

package
v0.0.0-...-4916209 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package geom define los tipos geométricos y de color compartidos por todas las capas de FlowCode. Es la única hoja del árbol de dependencias: no importa nada fuera de la stdlib y todo el mundo puede importarla.

Convención de coordenadas: origen arriba a la izquierda, Y crece hacia abajo, en píxeles lógicos (independientes del DPI). La conversión a píxeles físicos ocurre una sola vez, en la capa gpu.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Color

type Color struct {
	R, G, B, A uint8
}

Color es un color RGBA de 8 bits por canal, sin premultiplicar. El renderer premultiplica al construir los vértices; almacenarlo sin premultiplicar mantiene los temas legibles y editables a mano.

func Hex

func Hex(s string) (Color, bool)

Hex interpreta "#rgb", "#rrggbb" o "#rrggbbaa" (con o sin almohadilla). Devuelve ok=false si la cadena no es un color válido; el llamante decide si eso es un error de configuración o un caso a ignorar.

func MustHex

func MustHex(s string) Color

MustHex es Hex para constantes de tema conocidas en tiempo de compilación. Entra en pánico ante un color inválido, que en ese contexto es un bug.

func RGB

func RGB(r, g, b uint8) Color

RGB construye un color opaco.

func RGBA

func RGBA(r, g, b, a uint8) Color

RGBA construye un color con transparencia.

func (Color) IsTransparent

func (c Color) IsTransparent() bool

IsTransparent indica si el color es completamente invisible, en cuyo caso el renderer puede descartar la primitiva antes de generar vértices.

func (Color) Premultiplied

func (c Color) Premultiplied() (r, g, b, a uint8)

Premultiplied devuelve los cuatro canales con el color multiplicado por alfa, que es el formato que espera el blending del renderer.

type Point

type Point struct {
	X, Y float32
}

Point es una posición en píxeles lógicos.

func Pt

func Pt(x, y float32) Point

Pt construye un Point.

func (Point) Add

func (p Point) Add(q Point) Point

Add devuelve la suma de dos puntos.

func (Point) Mul

func (p Point) Mul(s float32) Point

Mul escala un punto.

func (Point) Sub

func (p Point) Sub(q Point) Point

Sub devuelve la resta de dos puntos.

type Rect

type Rect struct {
	Min, Max Point
}

Rect es un rectángulo definido por su esquina superior izquierda (Min) y su esquina inferior derecha (Max), exclusiva.

func Rct

func Rct(x, y, w, h float32) Rect

Rct construye un Rect a partir de posición y tamaño.

func RectFromSize

func RectFromSize(s Size) Rect

RectFromSize construye un Rect en el origen con el tamaño dado.

func (Rect) Contains

func (r Rect) Contains(p Point) bool

Contains indica si el punto cae dentro del rectángulo.

func (Rect) Height

func (r Rect) Height() float32

Height devuelve el alto del rectángulo.

func (Rect) Inset

func (r Rect) Inset(d float32) Rect

Inset encoge el rectángulo por igual en los cuatro lados. Un valor negativo lo expande. El resultado nunca tiene dimensiones negativas.

func (Rect) Intersect

func (r Rect) Intersect(s Rect) Rect

Intersect devuelve la intersección de dos rectángulos, o un rectángulo vacío si no se solapan. Es la operación que sostiene el clipping del renderer.

func (Rect) IsEmpty

func (r Rect) IsEmpty() bool

IsEmpty indica si el rectángulo no cubre ningún píxel.

func (Rect) Round

func (r Rect) Round() Rect

Round ajusta el rectángulo a límites enteros de píxel, expandiéndolo. Se usa al convertir regiones lógicas en scissors de GPU, donde recortar de menos es correcto y recortar de más deja artefactos.

func (Rect) Size

func (r Rect) Size() Size

Size devuelve las dimensiones del rectángulo.

func (Rect) Translate

func (r Rect) Translate(d Point) Rect

Translate desplaza el rectángulo.

func (Rect) Union

func (r Rect) Union(s Rect) Rect

Union devuelve el menor rectángulo que contiene a ambos. Un rectángulo vacío se ignora, de modo que la unión acumulada de regiones sucias funciona partiendo del cero.

func (Rect) Width

func (r Rect) Width() float32

Width devuelve el ancho del rectángulo.

type Size

type Size struct {
	W, H float32
}

Size es un ancho y un alto en píxeles lógicos.

func Sz

func Sz(w, h float32) Size

Sz construye un Size.

func (Size) IsEmpty

func (s Size) IsEmpty() bool

IsEmpty indica si el tamaño no cubre ningún píxel.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL