Open yoanlcq opened 7 years ago
How goes progress on this? I'm looking to potentially use vek
in a project I'm working on.
I've been using vek
in several personal projects since its latest release and I've found it to be already quite feature-complete and usable (by projects, I mean a few small libraries and a 3D game using OpenGL).
This issue mostly lists optimizations and enhancements I'd like to see to call vek
"100% finished" but I'm currently spending my time on other projects, not only to battle-test it, but also because it has the features I think most projects need.
Obviously I suggest looking at the docs and the Wiki (and eventually the source) to see if everything you need is there. Otherwise, feel free to let me know which precise features you'd like to see and I might focus on these. :)
I'm happy to act as co-maintainer, if necessary. I've so far been developing my own solution, coord
. vek
seems virtually identical to how I imagined a final version of coord
, so to me it makes sense to focus my efforts here instead.
I've taken a look and it indeed looks like coord
's goals are similar to vek
. I you encounter problem or miss features when moving to vek
, you're always welcome to file issues or submit Pull Requests (in which case you'll be listed in the README, Cargo.toml and stuff as a contributor! :) ).
I don't mind directly adding you as a contributor of this repo, but I prefer Pull Requests since they allow me to check that everything is 100% fine, and stir discussion if it's not.
From what I've seen vek
appears to have the features you're looking for; in fact, this "1.0 roadmap" really is more like gold-plating and doesn't imply vek
is "unfinished", if this was a concern.
I would say, we're at a "practical 1.0" wherease this list aims for "public 1.0".
(Part of me feels kinda bad that another crate could be "abandoned" in favor of mine. But it's always up to you :) )
I you encounter problem or miss features when moving to vek, you're always welcome to file issues or submit Pull Requests
Thanks. That gives me a lot of peace of mind.
I don't mind directly adding you as a contributor of this repo, but I prefer Pull Requests since they allow me to check that everything is 100% fine, and stir discussion if it's not.
That's perfectly reasonable: I'd do the same.
(Part of me feels kinda bad that another crate could be "abandoned" in favor of mine. But it's always up to you :) )
I'd rather avoid code duplication by improving an existing codebase. vek
clearly outlives coord
by quite some time, so I'm more than happy to yield to it. If I'd known that vek
existed, I wouldn't have created coord
.
Pre-requisites for 1.0
vek
;Awaiting triage
AsRef
andAsMut
to all other kinds of vectors;From
conversions from vectors to other kinds of vectors;fix
,fpa
andnum-bigint
optional dependencies. The point is to make their types implement most ofvek::ops
traits;Docs and publicity
Features
impl FromStr
for vectors and matrices!Rgb
andRgba
;from_html_hex(s: &str)
forRgb
andRgba
;look_at()
rotation (See Unity ?);orthonormalized
(for Mat4);decompose()
(steal from GLM) (and make it a conversion intoTransform
!)scale_from_point
androtate_about_point
(I've seen these somewhere, but can't recall exactly)is_diagonal_matrix()
is_symmetric()
FromStr
The only use case I can think of is GUIs, and it's as misguided as using degrees IMO.
Fix the GUI, not the intermediary representation.
dot()
hadd()
cross()
distance()
normalize()
reflect()
refract()
face_forward()
angle_between()
transpose()
invert()
(matrix, not color vector) Note that there are no free functions forLerp
,Slerp
, etc. It's enough to just write Lerp::lerp(..). Less pain for us to maintain, but I might change my mind.ops
module into avek-ops
crate (Likenum
did withnum-traits
)vek-derive
crate for derivingLerp
and stuff;Soft fixes
platform-intrinsics
for operations onrepr(simd)
vectors, including shuffles.transposed_sse()
forMat4<f32>
(based on_MM_TRANSPOSE4_PS()
);transposed_sse2()
forMat4<i32>
dot_sse4_1()
forVec4<f32>
load/store_nontemporal()
forVec4<f32>
andVec4<i32>
(!! needs fencing! So there should be associated fence functions! !!)