Correct shared center settings behavior
This commit is contained in:
parent
eba4fb87a8
commit
0ae6355c2c
6 changed files with 15 additions and 12 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -72,7 +72,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
|
|||
[[package]]
|
||||
name = "acadrust"
|
||||
version = "0.4.1"
|
||||
source = "git+https://github.com/ramox81/cadcodec.git?rev=4f929bd#4f929bda328b2024eb408b69e70d5fc80a8b22ef"
|
||||
source = "git+https://github.com/ramox81/cadcodec.git?rev=1eeab52#1eeab52a4e743816e5974e1e6441422b5042001d"
|
||||
dependencies = [
|
||||
"ahash 0.8.12",
|
||||
"anyhow",
|
||||
|
|
@ -878,7 +878,7 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
|
|||
[[package]]
|
||||
name = "cadkernel"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/ramox81/cadkernel.git?rev=33fd678#33fd678578de7d47c913121f147382c9d73d7830"
|
||||
source = "git+https://github.com/ramox81/cadkernel.git?rev=50c2551#50c2551d6bd46d19cfa664384bdc312b424269c4"
|
||||
dependencies = [
|
||||
"acadrust",
|
||||
"cavalier_contours",
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@ glam = { version = "0.33", features = ["bytemuck"] }
|
|||
rfd = "0.17"
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
env_logger = "0.11"
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "4f929bd", features = ["serde"] }
|
||||
cadkernel = { git = "https://github.com/ramox81/cadkernel.git", rev = "33fd678", features = ["acis", "offset"] }
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "1eeab52", features = ["serde"] }
|
||||
cadkernel = { git = "https://github.com/ramox81/cadkernel.git", rev = "50c2551", features = ["acis", "offset"] }
|
||||
dwg-thumbnailer = { path = "crates/dwg-thumbnailer" }
|
||||
flate2 = "1"
|
||||
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp", "tiff"] }
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ serde = { version = "1", features = ["derive"] }
|
|||
# Pulled in only by the `host` feature, which adds the `acadrust`-typed
|
||||
# `HostApi` runtime surface. The default crate stays dependency-free so engine
|
||||
# crates and external tooling can depend on the manifest/ribbon contract cheaply.
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "4f929bd", optional = true, features = ["serde"] }
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "1eeab52", optional = true, features = ["serde"] }
|
||||
|
||||
# Runtime IPC and serialization (host feature only).
|
||||
interprocess = { version = "2", optional = true }
|
||||
|
|
@ -37,7 +37,7 @@ serde_json = "1"
|
|||
serde = { version = "1", features = ["derive"] }
|
||||
cargo-lock = "11"
|
||||
# acadrust is scanned at build time to generate the embedded type registry.
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "4f929bd", features = ["serde"] }
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "1eeab52", features = ["serde"] }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = "1"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ publish = false
|
|||
crate-type = ["cdylib"]
|
||||
|
||||
[dependencies]
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "4f929bd", features = ["serde"] }
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "1eeab52", features = ["serde"] }
|
||||
bincode = "1.3"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
console_error_panic_hook = "0.1"
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ crate-type = ["cdylib"]
|
|||
|
||||
[dependencies]
|
||||
ocs_plugin_api = { path = "../ocs_plugin_api", features = ["host"] }
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "4f929bd", features = ["serde"] }
|
||||
acadrust = { git = "https://github.com/ramox81/cadcodec.git", rev = "1eeab52", features = ["serde"] }
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ impl Default for CenterLineSettings {
|
|||
Self {
|
||||
extension: 0.12,
|
||||
layer: "Current".to_owned(),
|
||||
linetype: "CENTER".to_owned(),
|
||||
linetype: "CENTER2".to_owned(),
|
||||
linetype_scale: 1.0,
|
||||
linetype_file: String::new(),
|
||||
}
|
||||
|
|
@ -206,7 +206,10 @@ pub(crate) fn construct_line(
|
|||
|
||||
impl Scene {
|
||||
pub(crate) fn centerline_settings(&self) -> CenterLineSettings {
|
||||
let defaults = CenterLineSettings::default();
|
||||
let mut defaults = CenterLineSettings::default();
|
||||
if matches!(self.document.header.insertion_units, 4..=7 | 11..=17) {
|
||||
defaults.extension = 3.5;
|
||||
}
|
||||
let Some(layout) = self.current_layout_object_handle() else { return defaults; };
|
||||
let Some(record) = self.document.xrecord(layout, SETTINGS_RECORD) else { return defaults; };
|
||||
let value = |code| record.entries.iter().find(|entry| entry.code == code).map(|entry| &entry.value);
|
||||
|
|
@ -251,8 +254,8 @@ impl Scene {
|
|||
"CENTERLAYER" => (1, XRecordValue::String(value.to_owned()), value.to_owned()),
|
||||
"CENTERLTYPE" => (2, XRecordValue::String(value.to_owned()), value.to_owned()),
|
||||
"CENTERLTSCALE" => {
|
||||
let number = value.parse::<f64>().map_err(|_| "CENTERLTSCALE requires a positive number.".to_owned())?;
|
||||
if !number.is_finite() || number <= 0.0 { return Err("CENTERLTSCALE requires a positive number.".to_owned()); }
|
||||
let number = value.parse::<f64>().map_err(|_| "CENTERLTSCALE requires a non-zero number.".to_owned())?;
|
||||
if !number.is_finite() || number == 0.0 { return Err("CENTERLTSCALE requires a non-zero number.".to_owned()); }
|
||||
(41, XRecordValue::Double(number), number.to_string())
|
||||
}
|
||||
"CENTERLTYPEFILE" => (3, XRecordValue::String(value.to_owned()), value.to_owned()),
|
||||
|
|
|
|||
Loading…
Reference in a new issue