Giter Club home page Giter Club logo

imath's Introduction

License CII Best Practices Build Status Quality Gate Status

Imath

Imath is a basic, light-weight, and efficient C++ representation of 2D and 3D vectors and matrices and other simple but useful mathematical objects, functions, and data types common in computer graphics applications, including the β€œhalf” 16-bit floating-point type.

Imath also includes optional python bindings for all types and functions, including optimized implementations of vector and matrix arrays.

Project Mission

The goals of the Imath project are simplicity, ease of use, correctness and verifiability, performance, and breadth of adoption. Imath is not intended to be a comprehensive linear algebra or numerical analysis package.

Features

  • half: 16-bit floating-point type
  • Vector: V2s, V2i, V2f, V2d, V3s, V3i, V3f, V3d, V4s, V4i, V4f, V4d
  • Matrix: M22f, M22d, M33f, M33d, M44f, M44d
  • Bounding box: Box2s, Box2i, Box2f, Box2d, Box3s, Box3i, Box3f, Box3d
  • Color: C3h, C3f, C3c, C4f, C4h, C4c
  • Euler angles: Eulerf, Eulerd
  • Quaternion: Quatf, Quatd
  • Viewing frustum: Frustrumf, Frustumd
  • Interval: Intervals, Intervali, Intervalf, Intervald
  • Line: Line3f, Line3d
  • Plane: Plane3f, Plane3d
  • Sphere: Sphere3f, Sphere3d
  • Shear: Shear3f, Shear3d, Shear6f, Shear6
  • Miscellaneous math functions

Supported Platforms

Imath builds on Linux, macOS, Microsoft Windows, and is cross-compilable on other systems.

About Imath

Imath was originally developed at Industrial Light & Magic in the early 2000's and was originally distributed as open source as a part of the OpenEXR project.

Imath continues to be maintained as a sub-project of OpenEXR, which is now a project of the Academy Software Foundation. See the OpenEXR project's GOVERNANCE.md for more information about how the project operates.

The OpenEXR project is dedicated to promoting a harassment-free community. Read our code of conduct.

Developer Quick Start

See INSTALL.md for instructions on downloading and building Imath from source.

A Note about Versioning

Because Imath was originally distributed as a part of OpenEXR, it has already had two major release versions, as a part of OpenEXR v1.* and v2.*. To avoid confusion with these original releases, the first version of Imath released independently of OpenEXR is Version v3.0. To be clear, the versioning and release of Imath is no longer tied to OpenEXR.

Getting Help

There are two primary ways to connect with the project:

Getting Involved

The OpenEXR developer community welcomes contributions to the project. See CONTRIBUTING.md for more information about contributing to Imath and OpenEXR.

License

Imath is released under OpenEXR's BSD-3-Clause license.


aswf

imath's People

Contributors

kdt3rd avatar pstanczyk avatar cary-ilm avatar oxt3479 avatar fkainz avatar meshula avatar ehanway-ilm avatar nickrasmussen avatar lgritz avatar xlietz avatar hjmallon avatar ogretransporter avatar danielkaneider avatar jenusl avatar marksisson avatar peterhillman avatar zxiiro avatar antonio-rojas avatar cahek7 avatar ewimmer avatar lord-kamina avatar huibean avatar liamgfx avatar nyue avatar kwizart avatar jaropaska avatar mvtk avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.