From 84edf5c103d7f89900523409099edc5856cf4f89 Mon Sep 17 00:00:00 2001 From: Leonardo Araujo dos Santos Date: Wed, 30 Sep 2026 00:17:37 -0300 Subject: [PATCH 1/2] Let an item carry its own mirror axes (#664) An item's mirror participation was a bool and the axes lived on the layer, so turning symmetry off or moving it from X to Y changed every item made under the old axes: a lump made on +x under X lost its -x twin. Node::own_mirror_axes holds the item's own x|y|z, 0 for none, or inherit (the default, and what every older document loads as). Own axes replace the layer's for that item outright; the participation flag keeps deciding what an inheriting item takes and the radial mode. effective_mirror_axes is the one definition the compiler, bounds, cull pad (seam term and a raise-only own-axes union in the symmetry multiplicity), picking, consolidation and the Move brush read. The Move/magnify drag reaches an item with its own axes through its own reflections, built per (axes, radial) set; inheriting items keep reading the layer's set unchanged. The reported reach adds the dragged items' own axes. SetNodeMirrorCmd sets a placed item's participation and axes as one undo step. C ABI 0.120.1 -> 0.121.0 adds CLAY_MIRROR_AXES_INHERIT, clay_item_set_mirror_axes / clay_item_mirror_axes and clay_layer_set_node_mirror / clay_layer_node_mirror; pyclay gains add(mirror_axes=), set_node_mirror and node_mirror. Scene and container minor 19 -> 20 append one byte per node. Writing below 20 is refused for a document holding own axes, as minor 18 refuses a composition, and a document whose items all inherit still writes 19's bytes. The gallery documents are regenerated at minor 20. --- CMakeLists.txt | 2 +- bindings/c/clay.h | 85 +++- bindings/c/clay_c.cpp | 77 +++- bindings/python/pyclay_module.cpp | 64 ++- bindings/python/tests/test_pyclay.py | 31 ++ docs/05-claycore-library.md | 9 + docs/07-brushes-and-features.md | 27 +- examples/output/08_combined.clayspace | Bin 3089 -> 3090 bytes examples/output/08_scene.clayspace | Bin 799 -> 802 bytes examples/output/11_masked.clayspace | Bin 4733 -> 4733 bytes examples/output/18_sampled.clayspace | Bin 314720 -> 305397 bytes examples/output/37_groups.clayspace | Bin 2835 -> 2847 bytes examples/output/52_sculpt_layers.clayspace | Bin 23090 -> 23090 bytes examples/output/53_sdf_alphas.clayspace | Bin 37274 -> 37275 bytes .../output/54_masked_operations.clayspace | Bin 5222378 -> 5222380 bytes examples/output/63_groups.clayspace | Bin 42227 -> 42230 bytes include/clay/brush/move.h | 32 +- include/clay/io/clayspace.h | 9 +- include/clay/scene/bounds.h | 12 +- include/clay/scene/commands.h | 39 +- include/clay/scene/document.h | 15 + include/clay/scene/types.h | 19 + include/clay/session/sdf_sculpt.h | 3 + .../add-per-item-mirror-axes/.openspec.yaml | 2 + .../add-per-item-mirror-axes/README.md | 3 + .../add-per-item-mirror-axes/design.md | 27 ++ .../add-per-item-mirror-axes/proposal.md | 34 ++ .../specs/brush-engine/spec.md | 16 + .../specs/c-abi/spec.md | 25 ++ .../specs/file-io/spec.md | 14 + .../specs/python-bindings/spec.md | 8 + .../specs/scene-model/spec.md | 36 ++ .../changes/add-per-item-mirror-axes/tasks.md | 11 + pyproject.toml | 2 +- src/brush/move.cpp | 133 ++++-- src/pick/pick.cpp | 6 +- src/scene/bounds.cpp | 57 ++- src/scene/commands.cpp | 66 +++ src/scene/consolidate.cpp | 2 +- src/scene/cull_index.cpp | 9 +- src/scene/tape_build.cpp | 15 +- src/session/layer_digest.h | 1 + src/session/sdf_sculpt.cpp | 3 +- tests/CMakeLists.txt | 1 + tests/unit/test_item_mirror_axes.cpp | 401 ++++++++++++++++++ tests/unit/test_layer_composition.cpp | 4 +- 46 files changed, 1226 insertions(+), 74 deletions(-) create mode 100644 openspec/changes/add-per-item-mirror-axes/.openspec.yaml create mode 100644 openspec/changes/add-per-item-mirror-axes/README.md create mode 100644 openspec/changes/add-per-item-mirror-axes/design.md create mode 100644 openspec/changes/add-per-item-mirror-axes/proposal.md create mode 100644 openspec/changes/add-per-item-mirror-axes/specs/brush-engine/spec.md create mode 100644 openspec/changes/add-per-item-mirror-axes/specs/c-abi/spec.md create mode 100644 openspec/changes/add-per-item-mirror-axes/specs/file-io/spec.md create mode 100644 openspec/changes/add-per-item-mirror-axes/specs/python-bindings/spec.md create mode 100644 openspec/changes/add-per-item-mirror-axes/specs/scene-model/spec.md create mode 100644 openspec/changes/add-per-item-mirror-axes/tasks.md create mode 100644 tests/unit/test_item_mirror_axes.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 98e92f2c..8fab8a65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.24) project(claycore - VERSION 0.120.1 + VERSION 0.121.0 DESCRIPTION "Portable C++20 SDF + voxel engine library" LANGUAGES C CXX) # C: ufbx diff --git a/bindings/c/clay.h b/bindings/c/clay.h index e9309f47..0b879a68 100644 --- a/bindings/c/clay.h +++ b/bindings/c/clay.h @@ -24,8 +24,8 @@ extern "C" { #endif #define CLAY_ABI_MAJOR 0 -#define CLAY_ABI_MINOR 120 -#define CLAY_ABI_PATCH 1 +#define CLAY_ABI_MINOR 121 +#define CLAY_ABI_PATCH 0 /* Upper bound on the element count of any batch call: points, rays, cells, * selected node ids, stroke points, polygon vertices. A count above it is @@ -1817,7 +1817,12 @@ clay_result clay_document_layer_composition(const clay_document* doc, clay_layer * line every other minor draws: subdivision is deterministic, so a hierarchy * without detail rebuilds from its cage and losing it is the ordinary "smaller * or plainer" degrade. Detail is something an artist made and cannot be - * rebuilt. */ + * rebuilt. + * + * Minor 20 (ABI 0.121.0) adds a third: an item carrying its OWN mirror axes + * (clay_item_set_mirror_axes) blocks every minor below 20, since an older + * build would hand it the layer's twins instead. Put such items back on the + * layer's mirror (CLAY_MIRROR_AXES_INHERIT) to write for an older build. */ clay_result clay_document_writable_at_minor(const clay_document* doc, uint32_t minor, clay_layer_id* out_blocking_layer); @@ -1848,9 +1853,10 @@ clay_result clay_document_writable_at_minor(const clay_document* doc, uint32_t m * WHAT AN OLDER MINOR ACTUALLY LOSES, said once rather than per call: 14 comes * back unsquashed, 15's instances come back as copies, 17 writes each payload * once per node, and below 19 a hierarchy carrying no detail is absent and - * rebuilds from its cage. Every one of those is smaller or plainer. The two + * rebuilds from its cage. Every one of those is smaller or plainer. The three * that would be a DIFFERENT SCULPTURE — a composition below 18, a hierarchy - * with detail below 19 — are refused instead. */ + * with detail below 19, an item carrying its own mirror axes below 20 (ABI + * 0.121.0) — are refused instead. */ clay_result clay_document_save_at_minor(const clay_document* doc, const char* path, uint32_t minor, clay_layer_id* out_blocking_layer); @@ -2229,6 +2235,12 @@ clay_result clay_layer_zero_to_origin(clay_document* doc, clay_layer_id layer); * mirror = 1 (#60); 1 is still accepted and means what it meant. Layers with * no mirror axes evaluate exactly as before, whatever the items' flags. * + * THE LAYER'S AXES ARE A DEFAULT, since ABI 0.121.0 (#664): an item that + * carries its own (clay_item_set_mirror_axes, clay_layer_set_node_mirror) is + * reflected through those instead, and this call no longer changes it. Items + * that never set any — every item in every document saved before — follow + * this call exactly as they always did. + * * SETTING WHAT THE LAYER ALREADY CARRIES DOES NOTHING, since ABI 0.103.0 * (#536): identical axes and an identical mirror_k return CLAY_OK without * recording an undo step and without invalidating anything. Through 0.102.0 @@ -2469,9 +2481,43 @@ clay_result clay_item_set_rounding(clay_item* item, float rounding); /* >= 0 clay_result clay_item_set_color(clay_item* item, const float rgb[3]); /* Layer-mirror participation, the builder's spelling of clay_item_desc.mirror: * -1 excludes the item from the layer's mirror, 0 and 1 follow it (the - * default). See clay_set_layer_mirror. */ + * default). See clay_set_layer_mirror. Once the item carries its own axes + * (clay_item_set_mirror_axes) this decides only its RADIAL participation. */ clay_result clay_item_set_mirror(clay_item* item, int32_t mirror); +/* "Take the layer's mirror axes": the default own-axes value of every item, + * and what every document saved before ABI 0.121.0 loads with. */ +#define CLAY_MIRROR_AXES_INHERIT 255 + +/* The item's OWN mirror axes, since ABI 0.121.0 (#664): CLAY_MIRROR_X|Y|Z OR'd + * together, 0 for none, or CLAY_MIRROR_AXES_INHERIT to follow the layer again. + * Anything else is CLAY_ERROR_INVALID_ARGUMENT. + * + * Set, the item's axes REPLACE the layer's for this item outright — whatever + * the layer's mirror is now or is changed to later, and whatever the item's + * participation flag says. That is what lets a host keep what was made under + * a symmetry as it was made: give each new item the axes symmetry had when it + * was made, and turning the layer's mirror off or pointing it at Y no longer + * moves any of them. An item set to 0 has no mirror copy on any layer. + * + * WHAT STAYS THE LAYER'S: the seam (mirror_k), the planes (the layer's local + * frame), and the radial mode, which still follows clay_item_set_mirror. A + * feathered volume replace takes no mirror copies whatever it carries, as it + * never has (clay_volume_params.feather). + * + * A Move or magnify drag reaches such an item through ITS reflections: both + * sides of an item that kept X move together, and an item held at 0 moves on + * the side the drag touched only (clay_layer_move_surface). + * + * NOT FREE ON THE WAY DOWN: a document holding an item with its own axes + * cannot be written at a format minor below 20 — clay_document_save_at_minor + * refuses it and names the layer — because dropping them would hand the item + * the layer's twins instead of its own. */ +clay_result clay_item_set_mirror_axes(clay_item* item, uint8_t axes); +/* What clay_item_set_mirror_axes last set: CLAY_MIRROR_AXES_INHERIT for a + * builder that never set any. */ +clay_result clay_item_mirror_axes(const clay_item* item, uint8_t* out_axes); + /* Appends one domain warp (clay_deform) to the item's chain: the local point * is warped by the first one added first. params/param_count are the kind's * own, listed on clay_deform; ease indexes an easing curve and is read by the @@ -3001,6 +3047,33 @@ clay_result clay_layer_node_op_blend(const clay_document* doc, clay_layer_id lay clay_result clay_layer_node_color(const clay_document* doc, clay_layer_id layer, clay_node_id node, float out_rgb[3]); +/* A PLACED item's mirror participation and own axes, set as one undoable edit + * (#664) — the same two values clay_item_set_mirror and + * clay_item_set_mirror_axes give a builder, for an item already in the + * document. `mirror` takes clay_item_set_mirror's rule (negative excludes, 0 + * and 1 follow); `axes` takes clay_item_set_mirror_axes's, so + * CLAY_MIRROR_AXES_INHERIT puts the item back on the layer's mirror. Before + * this a host could correct neither without removing and re-adding the item, + * which changes its id and its place in the chain. + * + * One command, one undo step: undo puts back both values the item had. + * Refused on a protected layer as every node edit is. A GROUP is + * CLAY_ERROR_INVALID_ARGUMENT: evaluation never reads a group's mirror, so a + * value there would be a control that does not act. Setting the values the + * item already holds is still recorded — it is not the layer mirror's no-op + * short-circuit — and invalidates only the item's own influence. */ +clay_result clay_layer_set_node_mirror(clay_document* doc, clay_layer_id layer, + clay_node_id node, int32_t mirror, uint8_t axes); +/* The reader: `*out_mirror` 1 when the item follows the layer's mirror and -1 + * when it opted out; `*out_axes` its own axes or CLAY_MIRROR_AXES_INHERIT; + * `*out_effective_axes` the axes it is ACTUALLY reflected through on this + * layer right now — its own, else the layer's when it participates, else 0, + * and 0 for a feathered volume replace. Any out pointer may be null. A group + * is CLAY_ERROR_INVALID_ARGUMENT, as its setter is. */ +clay_result clay_layer_node_mirror(const clay_document* doc, clay_layer_id layer, + clay_node_id node, int32_t* out_mirror, uint8_t* out_axes, + uint8_t* out_effective_axes); + /* The layer's TOP-LEVEL nodes, count-then-index, in the layer's EVALUATION * order — index 0 is the node evaluated first, and the index is the one * clay_layer_add_group and clay_add_item_in_group place against. An index of diff --git a/bindings/c/clay_c.cpp b/bindings/c/clay_c.cpp index 8624fdc5..6382607a 100644 --- a/bindings/c/clay_c.cpp +++ b/bindings/c/clay_c.cpp @@ -784,6 +784,20 @@ clay_result check_palette_index(std::int32_t index, std::uint8_t* out) { return CLAY_OK; } +// An item's own mirror axes (#664): CLAY_MIRROR_X|Y|Z OR'd, 0, or the inherit +// sentinel. Kept apart from check_mirror_axes because the sentinel is only +// meaningful here, and accepting it for a voxel edit would be a control that +// means nothing there. +clay_result check_own_mirror_axes(std::uint8_t axes) { + static_assert(CLAY_MIRROR_AXES_INHERIT == scene::kMirrorAxesInherit, + "the C sentinel and the engine's must be one value"); + constexpr unsigned kAll = CLAY_MIRROR_X | CLAY_MIRROR_Y | CLAY_MIRROR_Z; + if (axes == scene::kMirrorAxesInherit || (axes & ~kAll) == 0) return CLAY_OK; + return fail(CLAY_ERROR_INVALID_ARGUMENT, + "mirror axes outside CLAY_MIRROR_X|Y|Z and not CLAY_MIRROR_AXES_INHERIT: " + + std::to_string(axes)); +} + clay_result check_mirror_axes(std::int32_t axes, std::uint8_t* out) { constexpr std::int32_t kAll = CLAY_MIRROR_X | CLAY_MIRROR_Y | CLAY_MIRROR_Z; if (axes < 0 || (axes & ~kAll) != 0) @@ -5337,6 +5351,11 @@ eval::DeviceBuffer brick_slot(const eval::DeviceBuffer& whole, std::size_t at, s // SENTENCES: a host reading "a layer carries a composition" about a layer that // carries a hierarchy would go and look at the wrong thing. std::string minor_refusal(const clay_document* doc, std::uint16_t at, clay_layer_id blocking) { + // At 19 the one scene field that blocks is an item's own mirror axes + // (#664), which layer_blocking_minor checks first at every minor below 20. + if (at < 20 && scene::layer_blocking_minor(doc->doc.document, 19) == blocking) + return "an item carries its own mirror axes, which this format minor cannot say: " + "writing it there would hand the item the layer's mirror copies instead"; if (scene::layer_blocking_minor(doc->doc.document, at) == blocking) return "a layer carries a composition that this format minor cannot say: writing it " "there would turn a cutting layer into a unioning one"; @@ -6256,6 +6275,42 @@ clay_result clay_layer_node_color(const clay_document* doc, clay_layer_id layer, return CLAY_OK; } +clay_result clay_layer_set_node_mirror(clay_document* doc, clay_layer_id layer, + clay_node_id node, int32_t mirror, uint8_t axes) { + clay_result r = check_own_mirror_axes(axes); + if (r != CLAY_OK) return r; + // A group's flag is never read by evaluation (emit_item copies items), so + // a value there would be a control that does not act. A miss falls + // through to apply_edit's NOT_FOUND, as the op/blend setter's does. + const scene::Node* target = peek_node(doc, layer, node); + if (target && target->is_group) + return fail(CLAY_ERROR_INVALID_ARGUMENT, + "a group takes no mirror: set it on the items inside"); + return apply_edit(doc, + scene::Command{scene::SetNodeMirrorCmd{layer, node, mirror >= 0, axes}}, + "node not found"); +} + +clay_result clay_layer_node_mirror(const clay_document* doc, clay_layer_id layer, + clay_node_id node, int32_t* out_mirror, uint8_t* out_axes, + uint8_t* out_effective_axes) { + const scene::Node* n = nullptr; + clay_result r = find_node(doc, layer, node, &n); + if (r != CLAY_OK) return r; + if (n->is_group) + return fail(CLAY_ERROR_INVALID_ARGUMENT, "a group takes no mirror: ask the items inside"); + if (out_mirror) *out_mirror = n->mirror ? 1 : -1; + if (out_axes) *out_axes = n->own_mirror_axes; + if (out_effective_axes) { + // find_node resolved the layer, so it is there. + const scene::Layer* l = doc->doc.document.find_layer(layer); + *out_effective_axes = scene::item_is_feathered_replace(*n) + ? std::uint8_t{0} + : scene::effective_mirror_axes(*n, *l); + } + return CLAY_OK; +} + clay_result clay_layer_node_count(const clay_document* doc, clay_layer_id layer, size_t* out_count) { if (!doc || !out_count) return fail(CLAY_ERROR_INVALID_ARGUMENT, "null document or count"); @@ -7149,6 +7204,20 @@ clay_result clay_item_set_mirror(clay_item* item, int32_t mirror) { return CLAY_OK; } +clay_result clay_item_set_mirror_axes(clay_item* item, uint8_t axes) { + if (!item) return fail(CLAY_ERROR_INVALID_ARGUMENT, "null item"); + clay_result r = check_own_mirror_axes(axes); + if (r != CLAY_OK) return r; + item->node.own_mirror_axes = axes; + return CLAY_OK; +} + +clay_result clay_item_mirror_axes(const clay_item* item, uint8_t* out_axes) { + if (!item || !out_axes) return fail(CLAY_ERROR_INVALID_ARGUMENT, "null item or out_axes"); + *out_axes = item->node.own_mirror_axes; + return CLAY_OK; +} + clay_result clay_item_add_deformer(clay_item* item, int32_t deform, const float* params, size_t param_count, int32_t ease) { if (!item) return fail(CLAY_ERROR_INVALID_ARGUMENT, "null item"); @@ -8859,10 +8928,13 @@ clay_result move_surface_impl(clay_document* doc, clay_layer_id layer, const flo const float pull = std::sqrt(displacement[0] * displacement[0] + displacement[1] * displacement[1] + displacement[2] * displacement[2]); + // The dragged items' OWN mirror axes join the layer's (#664): an item that + // kept a twin the layer's mirror no longer names moves it too. std::vector reach; for (const brush::DragImage& image : brush::drag_images(*l, kernel::cf3(centre[0], centre[1], centre[2]), - kernel::cf3(displacement[0], displacement[1], displacement[2]))) + kernel::cf3(displacement[0], displacement[1], displacement[2]), + brush::prepared_own_mirror_axes(prepared))) reach.push_back(math::Aabb{image.centre, image.centre}.dilated(radius + pull)); const kernel::cfloat3 world_pull = @@ -9014,7 +9086,8 @@ clay_result clay_layer_magnify_surface(clay_document* doc, clay_layer_id layer, std::vector reach; for (const brush::DragImage& image : brush::drag_images(*l, kernel::cf3(centre[0], centre[1], centre[2]), - kernel::cf3(0.0f, 0.0f, 0.0f))) + kernel::cf3(0.0f, 0.0f, 0.0f), + brush::prepared_own_mirror_axes(prepared))) reach.push_back(math::Aabb{image.centre, image.centre}.dilated(radius)); GestureResolver resolver; diff --git a/bindings/python/pyclay_module.cpp b/bindings/python/pyclay_module.cpp index d8a4cc9f..ef191a0e 100644 --- a/bindings/python/pyclay_module.cpp +++ b/bindings/python/pyclay_module.cpp @@ -154,6 +154,26 @@ int parse_axis(const std::string& axis) { throw std::invalid_argument("axis must be 'x', 'y' or 'z'"); } +// An item's own mirror axes (#664), spelled as the letters it reflects across: +// "x", "xz", "" for none — or None to take the layer's (the inherit sentinel). +std::uint8_t parse_own_mirror_axes(nb::handle axes) { + if (axes.is_none()) return scene::kMirrorAxesInherit; + std::uint8_t mask = 0; + for (char c : nb::cast(axes)) + mask = static_cast(mask | (1u << parse_axis(std::string(1, c)))); + return mask; +} + +// The inverse: the letters, or None for an item that takes the layer's axes. +nb::object own_mirror_axes_object(std::uint8_t axes) { + if (axes == scene::kMirrorAxesInherit) return nb::none(); + std::string out; + if (axes & scene::kMirrorX) out += 'x'; + if (axes & scene::kMirrorY) out += 'y'; + if (axes & scene::kMirrorZ) out += 'z'; + return nb::str(out.c_str()); +} + voxel::BrushShape parse_brush_shape(const std::string& shape) { if (shape == "cube") return voxel::BrushShape::Cube; if (shape == "sphere") return voxel::BrushShape::Sphere; @@ -6040,7 +6060,7 @@ NB_MODULE(pyclay, m) { .def("add", [](PyLayer& l, const PyPrim& prim, scene::Op op, nb::handle blend, nb::handle color, nb::handle rounding, bool mirror, nb::handle transition, nb::handle parent, - int index) { + int index, nb::handle mirror_axes) { if (op == scene::Op::None) throw std::invalid_argument( "op must be a combine operator, not Op.INLINE — that one is for " @@ -6079,6 +6099,7 @@ NB_MODULE(pyclay, m) { n.rounding = rounding.is_none() ? prim.rounding : nb::cast(rounding); if (n.rounding < 0.0f) throw std::invalid_argument("rounding must be >= 0"); n.mirror = mirror; + n.own_mirror_axes = parse_own_mirror_axes(mirror_axes); if (scene::op_is_transition(op)) { if (transition.is_none()) throw std::invalid_argument( @@ -6099,11 +6120,14 @@ NB_MODULE(pyclay, m) { }, "prim"_a, "op"_a = scene::Op::Add, "blend"_a = nb::none(), "color"_a = nb::none(), "rounding"_a = nb::none(), "mirror"_a = true, "transition"_a = nb::none(), - "parent"_a = nb::none(), "index"_a = -1, + "parent"_a = nb::none(), "index"_a = -1, "mirror_axes"_a = nb::none(), "Append an edit to the layer; returns the node id. parent= " "puts it inside that group instead of at the layer root, and index<0 " "appends. mirror=False keeps the item out of the layer's mirror " - "(items follow it by default).") + "(items follow it by default). mirror_axes='x' (or 'xz', or '' for " + "none) gives the item its OWN mirror axes, which replace the layer's " + "for it whatever the layer's mirror is later set to; None, the " + "default, follows the layer.") .def("add_group", [](PyLayer& l, scene::Op op, nb::handle blend, nb::handle color, float rounding, nb::handle parent, int index) { @@ -6587,6 +6611,40 @@ NB_MODULE(pyclay, m) { "set_color", l.undo.get()); }, "node"_a, "color"_a) + .def("set_node_mirror", + [](PyLayer& l, scene::NodeId node, bool mirror, nb::handle axes) { + const scene::Node* n = l.layer().sdf->find(node); + if (!n) throw std::invalid_argument("no node with that id in this layer"); + if (n->is_group) + throw std::invalid_argument("a group takes no mirror: set it on the items"); + apply_or_throw(l.doc->document, + scene::Command{scene::SetNodeMirrorCmd{ + l.id, node, mirror, parse_own_mirror_axes(axes)}}, + "set_node_mirror", l.undo.get()); + }, + "node"_a, "mirror"_a = true, "axes"_a = nb::none(), + "Set a PLACED item's mirror participation and its own axes as one undoable " + "edit (clay_layer_set_node_mirror). axes='x'/'xz'/'' gives the item its " + "own axes; None puts it back on the layer's mirror.") + .def("node_mirror", + [](const PyLayer& l, scene::NodeId node) { + const scene::Node* n = l.layer().sdf->find(node); + if (!n) throw std::invalid_argument("no node with that id in this layer"); + if (n->is_group) + throw std::invalid_argument("a group takes no mirror: ask the items"); + const std::uint8_t effective = scene::item_is_feathered_replace(*n) + ? std::uint8_t{0} + : scene::effective_mirror_axes(*n, l.layer()); + nb::dict d; + d["mirror"] = n->mirror; + d["axes"] = own_mirror_axes_object(n->own_mirror_axes); + d["effective_axes"] = own_mirror_axes_object(effective); + return d; + }, + "node"_a, + "A placed item's mirror state (clay_layer_node_mirror): 'mirror' its " + "participation flag, 'axes' its own axes or None when it follows the " + "layer, and 'effective_axes' the axes it is actually reflected through.") .def("set_op_blend", [](PyLayer& l, scene::NodeId node, nb::handle op, nb::handle blend, nb::handle rounding) { diff --git a/bindings/python/tests/test_pyclay.py b/bindings/python/tests/test_pyclay.py index 06a037a8..0918caaf 100644 --- a/bindings/python/tests/test_pyclay.py +++ b/bindings/python/tests/test_pyclay.py @@ -8710,3 +8710,34 @@ def test_a_refused_save_leaves_the_file_that_was_there_alone(tmp_path): # A save that cannot represent the document must not first destroy the last # one that could. assert path.read_bytes() == before + + +# --- per-item mirror axes (issue #664) --------------------------------------- + + +def test_an_item_keeps_its_own_mirror_axes_when_the_layer_mirror_changes(): + doc = clay.Document() + doc.enable_undo() + layer = doc.add_sdf_layer("body") + layer.mirror(axis="x") + lump = clay.Sphere(r=0.25).at((0.6, 0.4, 0.0)) + kept = layer.add(lump, mirror_axes="x") + twin_x = np.array([[-0.6, 0.4, 0.0]], np.float32) + twin_y = np.array([[0.6, -0.4, 0.0]], np.float32) + assert doc.eval(twin_x)[0] < 0 + assert layer.node_mirror(kept) == {"mirror": True, "axes": "x", "effective_axes": "x"} + + # A placed item corrected in place, as one undoable step. + layer.set_node_mirror(kept, mirror=True, axes="y") + assert doc.eval(twin_x)[0] > 0 and doc.eval(twin_y)[0] < 0 + assert doc.undo() + assert doc.eval(twin_x)[0] < 0 and doc.eval(twin_y)[0] > 0 + assert layer.node_mirror(kept)["axes"] == "x" + assert doc.redo() + assert layer.node_mirror(kept)["axes"] == "y" + + # None puts it back on the layer's mirror. + layer.set_node_mirror(kept, axes=None) + assert layer.node_mirror(kept) == {"mirror": True, "axes": None, "effective_axes": "x"} + with pytest.raises(ValueError): + layer.set_node_mirror(kept, axes="w") diff --git a/docs/05-claycore-library.md b/docs/05-claycore-library.md index 3d205677..18b175b0 100644 --- a/docs/05-claycore-library.md +++ b/docs/05-claycore-library.md @@ -916,6 +916,15 @@ names the layer that blocks. pyclay has the same question as id rather than only a flag, so a script can say which subtool to change instead of leaving a person to find it. +Scene minor 20 (ABI 0.121.0, #664) is the second field refused this way: an +item's OWN mirror axes (`clay_item_set_mirror_axes`, +`clay_layer_set_node_mirror`; see docs/07, "Symmetry: the layer mirror"). The +node record gains one byte, and an older document loads with every item on its +layer's mirror, which is exactly what it meant. A document where every item +inherits still writes minor 19's bytes. One holding an item with its own axes +is refused below 20 with its layer named, because dropping the byte would give +that item the layer's copies instead of its own. + ### An intersect is bounded by its layer `item_influence_bound` reported `Everything` for any op that is not local, and diff --git a/docs/07-brushes-and-features.md b/docs/07-brushes-and-features.md index e1cc8507..472ffa61 100644 --- a/docs/07-brushes-and-features.md +++ b/docs/07-brushes-and-features.md @@ -152,6 +152,26 @@ the same as an add mirrors the deposit. Until 0.27.3 this flag was an **opt-in that defaulted to excluded**, which read as the layer mirror doing nothing at all (#60). Layers with no mirror axes cost nothing either way. +**An item can carry its own axes** (#664, ABI 0.121.0, format minor 20). The +flag above can only say "follow the layer or don't", so turning symmetry off, or +moving it from X to Y, changed every item made under the old axes: a lump made +on +x under X lost its -x twin (the field at the twin's centre went from -0.25 +to 0.95). `Node::own_mirror_axes` (C: `clay_item_set_mirror_axes` on a builder, +`clay_layer_set_node_mirror` on a placed item; Python: `mirror_axes="x"` on +`add`, `Layer.set_node_mirror`) holds the item's own `x|y|z`, `0` for none, or +inherit, which is the default and what every older document loads as. Own axes +replace the layer's for that item outright, whatever the participation flag +says. A host that stamps each new item with the axes symmetry has at the time +gets both halves: switching the layer's mirror changes only what inherits. +The seam (`mirror_k`), the planes and the radial mode stay the layer's; radial +participation is still the flag's. `scene::effective_mirror_axes` is the one +definition the compiler, the bounds, the cull pad, picking and the Move brush +read. A placed item's pair is one undoable command (`SetNodeMirrorCmd`), and +`clay_layer_node_mirror` reports it together with the axes the item is actually +reflected through. A document holding own axes cannot be written below minor 20: +the write is refused and the layer named, because an older build would give +the item the layer's copies. + **Setting the symmetry to what the layer already carries is not an edit** (#536, ABI 0.103.0). Identical axes and an identical `mirror_k` — or, for the radial mode below, an identical count, axis and `radial_k` — leave the document @@ -324,7 +344,12 @@ its **own** bound against each image. An image that reaches an item gives it a grab at that image's centre with that image's displacement, so the reflected ball grabs the items whose reflections sit under the ball. Items that opted out of the mirror (`mirror=False`, `-1` in C) and feathered volume replaces see the -ball alone, because the compiler emits no copy of them. An item both images +ball alone, because the compiler emits no copy of them. An item carrying its +OWN mirror axes (#664) is tested against ITS reflections instead of the +layer's. That is intended: an item that kept X after the layer's mirror went +off moves on both sides under a drag, because both sides are the item, and one +held at 0 moves on the touched side only. The gesture's reach adds the dragged +items' own axes (`brush::prepared_own_mirror_axes`), so that twin is dirtied too. An item both images reach — one straddling the plane — takes both grabs in one warp, **composing the two pulls as two brushes would** when the two balls are distinct; pulling across the plane from on it, the two cancel to a pinch. diff --git a/examples/output/08_combined.clayspace b/examples/output/08_combined.clayspace index 9c40b9cc30479bcacd364498f30d9e76ae2b732f..9b76b495d7e087c0f28d942561da49123e73371a 100644 GIT binary patch delta 29 lcmbOzF-d~g*~c-GkwJtZ*xAo@(MDchM#le}qZqey0RVA#2t@z@ delta 27 icmbOvF;Rlo*~c-GkwKUt*xAo@;YMCx#?8@;+qnQ>b_YZN diff --git a/examples/output/08_scene.clayspace b/examples/output/08_scene.clayspace index b7fbb85a9acc0d010ee68d3e65d3cf28204b99dc..5fbca34f96deef6b4c1af4bec0ba6bd9e9f6a9b9 100644 GIT binary patch delta 36 pcmbQwwup__*~c-GkwJtZ*xApOZzFFQBjf+c$&B}aq$3lM1OTs#3vK`a delta 30 mcmZ3)HlK~x*~c-GkwKUt*xApOdn0cchl3*~c-GkwIi5dzlabF(w4a delta 16 XcmeyX@>hl3*~c-GkwJJPdzlabF(CxU diff --git a/examples/output/18_sampled.clayspace b/examples/output/18_sampled.clayspace index adb732e141c3d893925bf5c2290d7e2dc2611420..85807bfe20042f4afaa625e3d581bd235e995ff8 100644 GIT binary patch literal 305397 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