4#include "ProperPartDomain.hpp"
5#include "../utils/Common.hpp"
int NodeId
Node identifier type used throughout the project.
Immutable scientific metadata attached to a morphological tree.
Owning result for one computed scalar attribute layout and buffer.
Shape metadata optionally attached to the pixel domain.
Immutable scientific interpretation attached to one morphological tree.
Owning, move-only native hierarchy returned by builders and consumed by materialization.
NativeHierarchyOwned & operator=(const NativeHierarchyOwned &)=delete
Disables copy assignment.
NativeHierarchyOwned(std::vector< NodeId > &&parent, std::vector< NodeId > &&smallestNodeMap, std::vector< T > &&nodeAltitudes, NodeId root, std::optional< GridDomain2D > gridDomain2D, MorphologicalTreeSemantics semantics)
Takes ownership of native hierarchy buffers without structural validation.
std::vector< NodeId > smallestNodeMap
Smallest node identifier indexed by pixel.
MorphologicalTreeSemantics semantics
Semantic metadata, including owned construction adjacencies.
std::vector< NodeId > parent
Parent identifier indexed by internal node.
std::optional< GridDomain2D > gridDomain2D
Optional two-dimensional pixel domain.
NativeHierarchyOwned(const NativeHierarchyOwned &)=delete
Disables copy construction.
NativeHierarchyOwned(NativeHierarchyOwned &&) noexcept=default
Transfers ownership of the native hierarchy.
NodeId root
Identifier of the self-parented root.
std::vector< T > nodeAltitudes
Altitude indexed by internal node.