mmcfilters
Public API documentation
Loading...
Searching...
No Matches
Static Public Member Functions | Static Public Attributes | List of all members
mmcfilters::attributes::computers::BitquadAttributeComputer Class Reference

Bitquad scalar computer backed by finite-window computation. More...

#include <BitquadAttributeComputer.hpp>

Static Public Member Functions

template<std::floating_point Real>
static void compute (const AttributeComputeContext< Real > &context)
 Computes requested scalar bitquad attributes for every live node.
 
template<std::floating_point Real, AltitudeValue T>
static void compute (const AltitudeAttributeComputeContext< Real, T > &context)
 Computes requested bitquad attributes using a generic altitude span.
 
template<std::floating_point Real>
static void computeUnitRows (const UnitAttributeComputeContext< Real > &context)
 Materializes bitquad attributes for unit proper-part supports.
 

Static Public Attributes

static constexpr std::string_view familyName = "bitquad"
 Family name used in dependency-plan diagnostics.
 
static constexpr AttributeComputerFamily family = AttributeComputerFamily::Bitquad
 Stable family id used by the scheduler.
 
static constexpr AttributeComputerDomain domain = AttributeComputerDomain::Topology
 Execution domain required by the computer.
 
static constexpr std::array< Attribute, 9 > producedAttributes
 Canonical list of scalar bitquad attributes materialized by this computer.
 

Detailed Description

Bitquad scalar computer backed by finite-window computation.

This class obtains bitquad family increments from its finite-window computation, aggregates them into per-node family counts, and materializes the public BITQUAD_* descriptors. The public attribute pipeline/topology backend invokes this computer for bitquad requests.

The computer exposes the standard scalar bitquad descriptors. For component trees, connectivity comes from the tree's adjacency relation. For a tree of shapes whose lower- and upper-shape connectivity differ, scalar projection derives each non-root shape's polarity from its exact node altitude and its parent's altitude. The root has no shape polarity and is handled explicitly by the projection policy.

Definition at line 68 of file BitquadAttributeComputer.hpp.

Member Function Documentation

◆ compute() [1/2]

template<std::floating_point Real, AltitudeValue T>
static void mmcfilters::attributes::computers::BitquadAttributeComputer::compute ( const AltitudeAttributeComputeContext< Real, T > &  context)
inlinestatic

Computes requested bitquad attributes using a generic altitude span.

This overload exists for valued-tree callers with a generic exact altitude type. Component-tree inputs still derive scalar connectivity from the tree adjacency relation.

Parameters
contextOperation context or diagnostic label.

Definition at line 120 of file BitquadAttributeComputer.hpp.

◆ compute() [2/2]

template<std::floating_point Real>
static void mmcfilters::attributes::computers::BitquadAttributeComputer::compute ( const AttributeComputeContext< Real > &  context)
inlinestatic

Computes requested scalar bitquad attributes for every live node.

This entry point first computes family increments, aggregates them into final per-node family counts, and then projects only the requested scalar descriptors into the caller-provided flat buffer. Rows are dense internal node ids interpreted by context.attrNames. This topology-only overload is valid for component trees with a regular adjacency relation.

Parameters
contextOperation context or diagnostic label.

Definition at line 98 of file BitquadAttributeComputer.hpp.

◆ computeUnitRows()

template<std::floating_point Real>
static void mmcfilters::attributes::computers::BitquadAttributeComputer::computeUnitRows ( const UnitAttributeComputeContext< Real > &  context)
inlinestatic

Materializes bitquad attributes for unit proper-part supports.

The unit path defines the scalar bitquad constants for one-pixel supports. It is used by the attribute pipeline when values must be supplied for unit leaves outside the internal tree-node accumulation path.

Unit constants depend on the tree adjacency relation. The method rejects trees without regular adjacency metadata.

Parameters
contextOperation context or diagnostic label.

Definition at line 146 of file BitquadAttributeComputer.hpp.

Member Data Documentation

◆ domain

constexpr AttributeComputerDomain mmcfilters::attributes::computers::BitquadAttributeComputer::domain = AttributeComputerDomain::Topology
staticconstexpr

Execution domain required by the computer.

Definition at line 77 of file BitquadAttributeComputer.hpp.

◆ family

constexpr AttributeComputerFamily mmcfilters::attributes::computers::BitquadAttributeComputer::family = AttributeComputerFamily::Bitquad
staticconstexpr

Stable family id used by the scheduler.

Definition at line 74 of file BitquadAttributeComputer.hpp.

◆ familyName

constexpr std::string_view mmcfilters::attributes::computers::BitquadAttributeComputer::familyName = "bitquad"
staticconstexpr

Family name used in dependency-plan diagnostics.

Definition at line 71 of file BitquadAttributeComputer.hpp.

◆ producedAttributes

constexpr std::array<Attribute, 9> mmcfilters::attributes::computers::BitquadAttributeComputer::producedAttributes
inlinestaticconstexpr
Initial value:
{
BitquadArea, BitquadNumberEuler, BitquadNumberHoles, BitquadPerimeter, BitquadPerimeterContinuous,
BitquadCircularity, BitquadPerimeterAverage, BitquadLengthAverage, BitquadWidthAverage}

Canonical list of scalar bitquad attributes materialized by this computer.

Definition at line 82 of file BitquadAttributeComputer.hpp.


The documentation for this class was generated from the following file: