Esta es una biblioteca matemática de matrices y vectores de Go especializada en capacidades de gráficos Open GL.
Este paquete está hecho principalmente con generación de código para las operaciones básicas de vectores y matrices, aunque la funcionalidad adicional está escrita a mano.
Los vectores y matrices se almacenan en orden principal de columnas, al igual que OpenGL, lo que significa que el argumento "transponer" debe ser falso al pasar vectores y matrices usando este paquete.
Este paquete se divide en dos subpaquetes. El paquete mgl32
trata con flotantes de 32 bits y mgl64
con los de 64 bits. Generalmente usarás los de 32 bits con OpenGL, pero el de 64 bits está disponible en caso de que uses la extensión doble o simplemente quieras hacer matemáticas 3D de mayor precisión sin OpenGL.
El repositorio antiguo, antes de la división entre los subpaquetes de 32 y 64 bits, se mantiene en github.com/Jragonmiris/mathgl (la ruta del repositorio anterior), pero ya no se mantiene.
Se pueden encontrar ejemplos en github.com/go-gl/example.
Probablemente estés usando una combinación de go get
y una versión antigua de Go. La utilidad go get
está programada para buscar etiquetas que coincidan con la versión actual de Go. En este momento hay una etiqueta para Go1.2.2, por ejemplo, por lo que si no ha actualizado a Go1.3, go get
a obtener una API anterior. Consulte la sección Cambios de API para obtener detalles sobre el etiquetado de versiones.
No dudes en enviar solicitudes de extracción de funciones y correcciones de errores. Tenga en cuenta que, aparte de los errores de documentación, las correcciones de meta (travis.yml, etc.), el código de ejemplo y los cambios extremadamente triviales (accesores de acceso básicos), las solicitudes de extracción no se aceptarán sin las pruebas correspondientes al nuevo código. Si se trata de una corrección de errores, la prueba debería probar el error.
mgl64
se genera directamente desde la versión de 32 bits. Para reflejar sus cambios, ejecute go generate github.com/go-gl/mathgl/mgl32
(o simplemente go generate
en el directorio mgl32
). También tenga en cuenta que, dado que la generación de código se utiliza en matrix.go
y vector.go
, no se deben realizar cambios directamente en esos archivos. Edite matrix.tmpl
o vector.tmpl
y ejecute go generate.
De ahora en adelante, no se realizarán cambios importantes en la API entre los lanzamientos de la versión Go. Eso significa que cada vez que aumenta cualquier "x" en Go1.xx. Por supuesto, se hacen excepciones para la corrección de errores. Si la corrección de un error requiere cambiar la semántica del software de llamada, se cambiará. (Un ejemplo es la reciente actualización de Transpose que utilizaba por error reglas principales de fila). Las funciones obsoletas también pueden eliminarse en el lanzamiento de una versión principal. Antes de cualquier cambio importante de API cerca de las versiones principales, la confirmación más reciente se etiquetará con el número de versión anterior de Go (por ejemplo, Go1.2.2). Si no existe tal etiqueta, se puede asumir que no se ha roto nada.
Eliminación de EulerToQuat; utilice AnglesToQuat con el orden ZYX en su lugar.