angle.rs |
|
9717 |
approxeq.rs |
|
1448 |
approxord.rs |
Utilities for testing approximate ordering - especially true for
floating point types, where NaN's cannot be ordered. |
1066 |
box2d.rs |
|
27376 |
box3d.rs |
|
27952 |
homogen.rs |
|
5703 |
length.rs |
A one-dimensional length, tagged with its units. |
16112 |
lib.rs |
A collection of strongly typed math tools for computer graphics with an inclination
towards 2d graphics and layout.
All types are generic over the scalar type of their component (`f32`, `i32`, etc.),
and tagged with a generic Unit parameter which is useful to prevent mixing
values from different spaces. For example it should not be legal to translate
a screen-space position by a world-space vector and this can be expressed using
the generic Unit parameter.
This unit system is not mandatory and all structures have an alias
with the default unit: `UnknownUnit`.
for example ```default::Point2D<T>``` is equivalent to ```Point2D<T, UnknownUnit>```.
Client code typically creates a set of aliases for each type and doesn't need
to deal with the specifics of typed units further. For example:
```rust
use euclid::*;
pub struct ScreenSpace;
pub type ScreenPoint = Point2D<f32, ScreenSpace>;
pub type ScreenSize = Size2D<f32, ScreenSpace>;
pub struct WorldSpace;
pub type WorldPoint = Point3D<f32, WorldSpace>;
pub type ProjectionMatrix = Transform3D<f32, WorldSpace, ScreenSpace>;
// etc...
```
All euclid types are marked `#[repr(C)]` in order to facilitate exposing them to
foreign function interfaces (provided the underlying scalar type is also `repr(C)`).
|
4537 |
macros.rs |
|
1081 |
num.rs |
A one-dimensional length, tagged with its units. |
3882 |
point.rs |
|
58282 |
rect.rs |
|
28292 |
rigid.rs |
All matrix multiplication in this module is in row-vector notation,
i.e. a vector `v` is transformed with `v * T`, and if you want to apply `T1`
before `T2` you use `T1 * T2` |
10206 |
rotation.rs |
|
30654 |
scale.rs |
A type-checked scaling factor between units. |
12720 |
side_offsets.rs |
A group of side offsets, which correspond to top/left/bottom/right for borders, padding,
and margins in CSS. |
13492 |
size.rs |
|
52166 |
transform2d.rs |
|
25306 |
transform3d.rs |
|
53148 |
translation.rs |
|
30722 |
trig.rs |
|
2677 |
vector.rs |
|
73511 |