1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
#![cfg_attr(feature = "docs", warn(missing_docs))]
//! 2D Mathematics library designed for use with 2D drawing applications.
//! 
//! Primarily designed for the needs of Direct2D, but this library should
//! be perfectly capable of filling in the needs of other libraries such
//! as Cairo. If you would like interoperability defitions added please feel
//! free to open a pull request on the [repository][1].
//! 
//! Currently compatible with:
//! - Direct2D (winapi types)
//! - [Mint][2]
//! 
//! [1]: https://github.com/connicpu/math2d
//! [2]: https://docs.rs/mint

#[cfg(all(feature = "serde", feature = "serde_derive"))]
#[macro_use]
extern crate serde_derive;
#[cfg(all(feature = "serde", feature = "serde_derive"))]
extern crate serde;
#[cfg(feature = "kurbo")]
extern crate kurbo;

#[cfg(all(windows, feature = "winapi"))]
extern crate winapi;

#[cfg(feature = "mint")]
extern crate mint;

#[doc(inline)]
pub use crate::arc_segment::{ArcSegment, ArcSize, SweepDirection};
#[doc(inline)]
pub use crate::bezier_segment::BezierSegment;
pub use crate::color::Color;
#[doc(inline)]
pub use crate::ellipse::Ellipse;
#[doc(inline)]
pub use crate::matrix3x2f::Matrix3x2f;
#[doc(inline)]
pub use crate::point2f::Point2f;
#[doc(inline)]
pub use crate::point2i::Point2i;
#[doc(inline)]
pub use crate::point2u::Point2u;
#[doc(inline)]
pub use crate::quad_bezier_segment::QuadBezierSegment;
#[doc(inline)]
pub use crate::rectf::{RectCorner, Rectf};
#[doc(inline)]
pub use crate::recti::Recti;
#[doc(inline)]
pub use crate::rectu::Rectu;
#[doc(inline)]
pub use crate::rounded_rect::RoundedRect;
#[doc(inline)]
pub use crate::sizef::Sizef;
#[doc(inline)]
pub use crate::sizeu::Sizeu;
#[doc(inline)]
pub use crate::thicknessf::Thicknessf;
#[doc(inline)]
pub use crate::triangle::Triangle;
#[doc(inline)]
pub use crate::vector2f::Vector2f;
#[doc(inline)]
pub use crate::vector2i::Vector2i;

#[doc(hidden)]
pub mod arc_segment;
#[doc(hidden)]
pub mod bezier_segment;
pub mod color;
#[doc(hidden)]
pub mod ellipse;
#[doc(hidden)]
pub mod matrix3x2f;
#[doc(hidden)]
pub mod point2f;
#[doc(hidden)]
pub mod point2i;
#[doc(hidden)]
pub mod point2u;
#[doc(hidden)]
pub mod quad_bezier_segment;
#[doc(hidden)]
pub mod rectf;
#[doc(hidden)]
pub mod recti;
#[doc(hidden)]
pub mod rectu;
#[doc(hidden)]
pub mod rounded_rect;
#[doc(hidden)]
pub mod sizef;
#[doc(hidden)]
pub mod sizeu;
#[doc(hidden)]
pub mod thicknessf;
#[doc(hidden)]
pub mod triangle;
#[doc(hidden)]
pub mod vector2f;
#[doc(hidden)]
pub mod vector2i;