KCL: Track Z axis of planes
KCL should track which way a plane is facing. If it only tracks a plane's X and Y axes, it could identify two separate planes (overlapping perfectly in space, but one plane's "up" is the other's down). This is helpful for knowing which way to extrude on a given plane, or which way to cut "into" a given solid.
This commit is contained in:
@ -49,38 +49,61 @@ lazy_static::lazy_static! {
|
||||
pub static ref GRID_SCALE_TEXT_OBJECT_ID: uuid::Uuid = uuid::Uuid::parse_str("10782f33-f588-4668-8bcd-040502d26590").unwrap();
|
||||
|
||||
pub static ref DEFAULT_PLANE_INFO: IndexMap<PlaneName, PlaneInfo> = IndexMap::from([
|
||||
(PlaneName::Xy,PlaneInfo{
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
}),
|
||||
(PlaneName::NegXy,
|
||||
PlaneInfo{
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
}),
|
||||
(PlaneName::Xz, PlaneInfo{
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
}),
|
||||
(PlaneName::NegXz, PlaneInfo{
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
}),
|
||||
(PlaneName::Yz, PlaneInfo{
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
}),
|
||||
(PlaneName::NegYz, PlaneInfo{
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(0.0, -1.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
}),
|
||||
]);
|
||||
(
|
||||
PlaneName::Xy,
|
||||
PlaneInfo {
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
z_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
},
|
||||
),
|
||||
(
|
||||
PlaneName::NegXy,
|
||||
PlaneInfo {
|
||||
origin: Point3d::new( 0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new( 0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
z_axis: Point3d::new( 0.0, 0.0, -1.0, UnitLen::Unknown),
|
||||
},
|
||||
),
|
||||
(
|
||||
PlaneName::Xz,
|
||||
PlaneInfo {
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
z_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
},
|
||||
),
|
||||
(
|
||||
PlaneName::NegXz,
|
||||
PlaneInfo {
|
||||
origin: Point3d::new( 0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new( 0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
z_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Unknown),
|
||||
},
|
||||
),
|
||||
(
|
||||
PlaneName::Yz,
|
||||
PlaneInfo {
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
z_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Unknown),
|
||||
},
|
||||
),
|
||||
(
|
||||
PlaneName::NegYz,
|
||||
PlaneInfo {
|
||||
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
|
||||
x_axis: Point3d::new(0.0, -1.0, 0.0, UnitLen::Unknown),
|
||||
y_axis: Point3d::new(0.0, 0.0, 1.0, UnitLen::Unknown),
|
||||
z_axis: Point3d::new(0.0, -1.0, 0.0, UnitLen::Unknown),
|
||||
},
|
||||
),
|
||||
]);
|
||||
}
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
|
Reference in New Issue
Block a user