forked from 1b-agent/fieldcraft-upstream
Boundary condition, load and interaction symbols are wireframes (thin lines, no shaded cones), so they never hide the mesh or a contour plot: - a crossed wire triangle per constrained translation, tip on the node, coming from outside the part where the set's faces say which side that is; a held rotation adds a smaller triangle behind it (the double mark); fixed shows all three axes, a symmetry plane only its normal; - forces as open-headed arrows ending on the node, as long as four support units at one place and 2.5 over a set, so loads and supports stay in proportion (#78); moments as an axis line and a right-handed curved arrow (#79); contact and tie surfaces as small squares on their faces; - a constant size on screen at any zoom (#80): the symbol unit is the size setting (View > Symbol size, `ui.set {symbol_size}`, 14 pt by default) times the model length a pixel spans, rounded to a quarter of a doubling; - spread evenly on a grid a few symbol units across, so their density follows the screen, never more than 400 per definition; - a layer of their own on the desktop (GPU and CPU): zooming rebuilds and uploads the symbols only, never the mesh's scene; framing leaves them out; - colour per kind from the theme's tokens (a new contact colour), and the definition selected in the browser drawn in the selection colour, wider; - depth-tested against the model with the line bias that keeps them on their own surface; a load at a reference point or a single node and a reference point's cross are drawn over the part (#78). Headless pictures (MCP screenshot, `ui.render`) frame the camera first and draw the symbols at the default size for it. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
32 lines
987 B
TOML
32 lines
987 B
TOML
[package]
|
|
name = "fieldcraft-engine"
|
|
description = "FieldCraft's command engine: every user-visible action as a command with a JSON form"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
fieldcraft-model = { workspace = true }
|
|
# Samples build their geometry from SolidCraft scripts (sample.rs).
|
|
fieldcraft-geometry = { workspace = true, features = ["scripts"] }
|
|
fieldcraft-mesh = { workspace = true }
|
|
fieldcraft-io = { workspace = true }
|
|
fieldcraft-decks = { workspace = true }
|
|
fieldcraft-solver = { workspace = true }
|
|
fieldcraft-explicit = { workspace = true }
|
|
fieldcraft-fem = { workspace = true }
|
|
fieldcraft-lbm = { workspace = true }
|
|
fieldcraft-parallel = { workspace = true }
|
|
fieldcraft-render = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
png = { workspace = true }
|
|
zip = { workspace = true }
|