Consolidate Vec/Coord into the geom submodule
Also add the missing coord.rs to version control... It should have been checked in earlier
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
use coremem::{consts, Driver, Flt, mat, meas};
|
use coremem::{consts, Driver, Flt, mat, meas};
|
||||||
use coremem::coord::Coord;
|
use coremem::geom::{Coord, CylinderZ, Vec2};
|
||||||
use coremem::geom::{CylinderZ, Vec2};
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
coremem::init_logging();
|
coremem::init_logging();
|
||||||
|
@@ -1,10 +1,9 @@
|
|||||||
use crate::{flt::Flt, mat};
|
use crate::{flt::Flt, mat};
|
||||||
use crate::consts;
|
use crate::consts;
|
||||||
use crate::coord::Coord;
|
use crate::geom::{Coord, Vec3};
|
||||||
use crate::meas::{self, AbstractMeasurement};
|
use crate::meas::{self, AbstractMeasurement};
|
||||||
use crate::render::{self, MultiRenderer, Renderer};
|
use crate::render::{self, MultiRenderer, Renderer};
|
||||||
use crate::sim::{GenericSim as _, SimState};
|
use crate::sim::{GenericSim as _, SimState};
|
||||||
use crate::vec::Vec3;
|
|
||||||
|
|
||||||
use log::{info, trace};
|
use log::{info, trace};
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
42
src/geom/coord.rs
Normal file
42
src/geom/coord.rs
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
use std::fmt::{self, Display};
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Default, Eq, PartialEq)]
|
||||||
|
pub struct Coord {
|
||||||
|
y: u32,
|
||||||
|
x: u32,
|
||||||
|
z: u32,
|
||||||
|
}
|
||||||
|
impl Coord {
|
||||||
|
pub fn new(x: u32, y: u32, z: u32) -> Self {
|
||||||
|
Self {
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
z,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn x(&self) -> u32 {
|
||||||
|
self.x
|
||||||
|
}
|
||||||
|
pub fn y(&self) -> u32 {
|
||||||
|
self.y
|
||||||
|
}
|
||||||
|
pub fn z(&self) -> u32 {
|
||||||
|
self.z
|
||||||
|
}
|
||||||
|
/// Convert for use with ndarray indexing
|
||||||
|
pub(crate) fn row_major_idx(&self) -> [usize; 3] {
|
||||||
|
[self.z as _, self.y as _, self.x as _]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<(u32, u32, u32)> for Coord {
|
||||||
|
fn from((x, y, z): (u32, u32, u32)) -> Self {
|
||||||
|
Self::new(x, y, z)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for Coord {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
write!(f, "({}, {}, {})", self.x, self.y, self.z)
|
||||||
|
}
|
||||||
|
}
|
@@ -1,5 +1,10 @@
|
|||||||
|
mod coord;
|
||||||
|
mod vec;
|
||||||
|
|
||||||
|
pub use coord::Coord;
|
||||||
|
pub use vec::{Vec2, Vec3};
|
||||||
|
|
||||||
use crate::flt::{Flt, Real};
|
use crate::flt::{Flt, Real};
|
||||||
pub use crate::vec::{Vec2, Vec3};
|
|
||||||
use std::fmt::{self, Display};
|
use std::fmt::{self, Display};
|
||||||
use std::ops::Add;
|
use std::ops::Add;
|
||||||
|
|
@@ -1,5 +1,5 @@
|
|||||||
use crate::flt::{Flt, Real};
|
use crate::flt::{Flt, Real};
|
||||||
use crate::coord::Coord;
|
use super::Coord;
|
||||||
use std::convert::From;
|
use std::convert::From;
|
||||||
use std::iter::Sum;
|
use std::iter::Sum;
|
||||||
use std::ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub};
|
use std::ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub};
|
@@ -7,14 +7,12 @@
|
|||||||
|
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
pub mod coord;
|
|
||||||
pub mod driver;
|
pub mod driver;
|
||||||
pub mod geom;
|
pub mod geom;
|
||||||
pub mod mat;
|
pub mod mat;
|
||||||
pub mod meas;
|
pub mod meas;
|
||||||
pub mod render;
|
pub mod render;
|
||||||
pub mod sim;
|
pub mod sim;
|
||||||
pub mod vec;
|
|
||||||
|
|
||||||
pub use driver::*;
|
pub use driver::*;
|
||||||
pub use mat::*;
|
pub use mat::*;
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
use crate::{CellState, consts};
|
use crate::{CellState, consts};
|
||||||
use crate::flt::{Flt, Real};
|
use crate::flt::{Flt, Real};
|
||||||
use crate::geom::{Line2d, Vec2, Polygon2d};
|
use crate::geom::{Line2d, Vec2, Vec3, Polygon2d};
|
||||||
use crate::vec::Vec3;
|
|
||||||
use log::{debug, trace};
|
use log::{debug, trace};
|
||||||
use enum_dispatch::enum_dispatch;
|
use enum_dispatch::enum_dispatch;
|
||||||
use std::cmp::Ordering;
|
use std::cmp::Ordering;
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
use crate::coord::Coord;
|
|
||||||
use crate::flt::Flt;
|
use crate::flt::Flt;
|
||||||
use crate::geom::{Vec3, Region};
|
use crate::geom::{Coord, Vec3, Region};
|
||||||
use crate::mat::Material as _;
|
use crate::mat::Material as _;
|
||||||
use crate::sim::{Cell, GenericSim};
|
use crate::sim::{Cell, GenericSim};
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
use ansi_term::Color::RGB;
|
use ansi_term::Color::RGB;
|
||||||
use crate::geom::Vec2;
|
use crate::geom::{Vec2, Vec3};
|
||||||
use crate::{flt::{Flt, Real}, Material as _};
|
use crate::{flt::{Flt, Real}, Material as _};
|
||||||
use crate::mat;
|
use crate::mat;
|
||||||
use crate::sim::{Cell, GenericSim};
|
use crate::sim::{Cell, GenericSim};
|
||||||
use crate::vec::Vec3;
|
|
||||||
use crate::meas::AbstractMeasurement;
|
use crate::meas::AbstractMeasurement;
|
||||||
use font8x8::{BASIC_FONTS, GREEK_FONTS, UnicodeFonts as _};
|
use font8x8::{BASIC_FONTS, GREEK_FONTS, UnicodeFonts as _};
|
||||||
use log::trace;
|
use log::trace;
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
use crate::{flt::{Flt, Real}, consts};
|
use crate::{flt::{Flt, Real}, consts};
|
||||||
use crate::coord::Coord;
|
use crate::geom::{Coord, Vec3};
|
||||||
use crate::mat::{self, GenericMaterial, Material};
|
use crate::mat::{self, GenericMaterial, Material};
|
||||||
use crate::vec::Vec3;
|
|
||||||
use log::trace;
|
use log::trace;
|
||||||
|
|
||||||
use ndarray::{Array3, Zip};
|
use ndarray::{Array3, Zip};
|
||||||
|
Reference in New Issue
Block a user