New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added `mat4` #556

Merged
merged 15 commits into from Dec 11, 2018

Conversation

Projects
None yet
1 participant
@bvssvni
Copy link
Member

bvssvni commented Dec 7, 2018

Adds 4D matrix to Dyon.

For design, see #557

Uses column major as internal format, but syntactically row major is
used for easier working with basis vectors.

Uses ; to separate between basis vectors.

Parentheses around vectors can be omitted inside the mat4 brackets.

  • Added mat4 type syntax
  • Added mat4 block
  • Added Mat4 to AST
  • Added rx intrinsic
  • Added ry intrinsic
  • Added rz intrinsic
  • Added rw intrinsic
  • Added rv intrinsic
  • Added cx intrinsic
  • Added cy intrinsic
  • Added cz intrinsic
  • Added cw intrinsic
  • Added cv intrinsic
  • Added Runtime::mat4
  • Added writing mat4 variable
  • Added writing write_mat4 for writing out closure code
  • Added Type::Mat4
  • Added mat4 and mat4 multiplication
  • Added mat4 and mat4 addition
  • Added mat4 and vec4 transformation
  • Added det intrinsic
  • Added inv intrinsic
  • Added Mat4 for easier embedding
  • Added mov intrinsic
  • Added *= assignment
  • Added += assignment
  • Added rot__axis_angle intrinsic
  • Added tau intrinsic
  • Added ortho__pos_right_up_forward intrinsic
  • Added proj__fov_near_far_ar intrinsic
  • Added mvp__model_view_projection intrinsic
  • Added scale intrinsic

bvssvni added some commits Dec 7, 2018

Added `mat4`
Adds 4D matrix to Dyon.

Uses column major as internal format, but syntactically row major is
used for easier working with basis vectors.

Uses `;` to separate between basis vectors.

Parentheses around vectors  can be omitted inside the `mat4` brackets.

Supports vector swizzling with matrices. To distinguish between vector
and scalar swizzling when omitting parentheses, one must add a trailing
`,`, e.g. `mat4 {xy (1, 2),;}`.

- Added `mat4` type syntax
- Added `mat4` block
- Added `Mat4` to AST
- Added swizzling vectors for matrices
- Added `rx` intrinsic
- Added `ry` intrinsic
- Added `rz` intrinsic
- Added `rw` intrinsic
- Added `rv` intrinsic
- Added `cx` intrinsic
- Added `cy` intrinsic
- Added `cz` intrinsic
- Added `cw` intrinsic
- Added `cv` intrinsic
- Added `Runtime::mat4`
- Added writing `mat4` variable
- Added writing `write_mat4` for writing out closure code
- Added `Type::Mat4`

@bvssvni bvssvni merged commit c8f9df1 into PistonDevelopers:master Dec 11, 2018

@bvssvni bvssvni deleted the bvssvni:mat4 branch Dec 11, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment