#![forbid(unsafe_code)]
#![cfg_attr(
any(docsrs, docsrs_dep),
expect(
internal_features,
reason = "rustdoc_internals is needed for fake_variadic"
)
)]
#![cfg_attr(any(docsrs, docsrs_dep), feature(rustdoc_internals))]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc(
html_logo_url = "https://bevy.org/assets/icon.png",
html_favicon_url = "https://bevy.org/assets/icon.png"
)]
#![no_std]
#[cfg(feature = "std")]
extern crate std;
#[cfg(feature = "alloc")]
extern crate alloc;
mod dim2;
pub use dim2::*;
mod dim3;
pub use dim3::*;
mod half_space;
pub use half_space::*;
mod view_frustum;
pub use view_frustum::*;
mod inset;
pub use inset::*;
mod ray;
pub use ray::{Ray2d, Ray3d};
mod bounding;
pub use bounding::*;
#[cfg(feature = "rand")]
pub mod sampling;
#[cfg(feature = "rand")]
pub use sampling::ShapeSample;
#[cfg(feature = "alloc")]
mod polygon;
#[cfg(feature = "alloc")]
pub use polygon::*;
pub trait Primitive2d {}
pub trait Primitive3d {}
impl Primitive2d for bevy_math::Dir2 {}
impl Primitive3d for bevy_math::Dir3 {}
impl Primitive3d for bevy_math::Dir3A {}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[doc(alias = "Orientation")]
pub enum WindingOrder {
Clockwise,
#[doc(alias = "AntiClockwise")]
CounterClockwise,
#[doc(alias("Degenerate", "Collinear"))]
Invalid,
}
pub trait Measured2d {
fn perimeter(&self) -> f32;
fn area(&self) -> f32;
}
pub trait Measured3d {
fn area(&self) -> f32;
fn volume(&self) -> f32;
}
pub mod prelude {
#[doc(hidden)]
pub use crate::{Measured2d, Measured3d, Primitive2d, Primitive3d, WindingOrder};
#[doc(hidden)]
pub use crate::bounding::*;
#[doc(hidden)]
pub use crate::dim2::*;
#[doc(hidden)]
pub use crate::dim3::*;
#[doc(hidden)]
pub use crate::half_space::*;
#[doc(hidden)]
pub use crate::inset::*;
#[doc(hidden)]
pub use crate::ray::{Ray2d, Ray3d};
#[doc(hidden)]
pub use crate::view_frustum::*;
#[doc(hidden)]
#[cfg(feature = "rand")]
pub use crate::sampling::ShapeSample;
#[doc(hidden)]
#[cfg(feature = "alloc")]
pub use crate::polygon::*;
}