MorphologicalAttributeFilters
Public API documentation
Loading...
Searching...
No Matches
Concepts | Typedefs | Functions | Variables
AttributeComputerRegistry.hpp File Reference

Concepts and canonical family lists for concrete attribute computers. More...

#include "AttributeComputerDomain.hpp"
#include "AttributeComputerFamily.hpp"
#include "AreaComputer.hpp"
#include "BitquadAttributeComputer.hpp"
#include "BoundingBoxComputer.hpp"
#include "ContourSideAttributeComputer.hpp"
#include "GrayLevelStatsComputer.hpp"
#include "MaxDistComputer.hpp"
#include "MomentBasedAttributeComputer.hpp"
#include "TreeTopologyComputer.hpp"
#include "VolumeComputer.hpp"
#include <algorithm>
#include <array>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <string_view>
#include <type_traits>
#include <tuple>
#include <vector>
Include dependency graph for AttributeComputerRegistry.hpp:

Go to the source code of this file.

Concepts

concept  mmcfilters::attributes::computers::AttributeComputerProducesAttributes
 Verifies that a computer declares its canonical output list.
 
concept  mmcfilters::attributes::computers::AttributeComputer
 Verifies the complete static protocol of one attribute computer.
 
concept  mmcfilters::attributes::computers::TopologyAttributeComputer
 Computer concept for families that do not read node altitudes.
 
concept  mmcfilters::attributes::computers::AltitudeAttributeComputer
 Computer concept for families that require a typed altitude span.
 

Typedefs

using mmcfilters::attributes::computers::TopologyAttributeComputers = std::tuple< AreaComputer, BoundingBoxComputer, TreeTopologyComputer, CentralMomentsComputer, HuMomentsComputer, MomentBasedAttributeComputer, BitquadAttributeComputer, ContourSideAttributeComputer >
 Canonical list of topology/support families known to the backend.
 
using mmcfilters::attributes::computers::AltitudeAttributeComputers = std::tuple< VolumeComputer, GrayLevelStatsComputer, MaxDistComputer >
 Canonical list of altitude-aware families known to the pipeline.
 
using mmcfilters::attributes::computers::RegisteredAttributeComputers = std::tuple< AreaComputer, BoundingBoxComputer, TreeTopologyComputer, CentralMomentsComputer, HuMomentsComputer, MomentBasedAttributeComputer, BitquadAttributeComputer, ContourSideAttributeComputer, VolumeComputer, GrayLevelStatsComputer, MaxDistComputer >
 Canonical list used by contract tests to cover every public family.
 

Functions

template<AttributeComputer Computer>
constexpr bool mmcfilters::attributes::computers::producesAttribute (Attribute attribute) noexcept
 Tests whether Computer is the declared producer of attribute.
 
template<AttributeComputer Computer>
constexpr std::size_t mmcfilters::attributes::computers::numProducedAttributes () noexcept
 Number of scalar descriptors declared by the family.
 
template<AttributeComputer Computer>
std::vector< Attribute > mmcfilters::attributes::computers::runtimeProducedAttributes ()
 Materializes a computer's canonical output list as a runtime vector.
 

Variables

template<class T >
constexpr bool mmcfilters::attributes::computers::detail::IsAttributeArrayV = IsAttributeArray<std::remove_cvref_t<T>>::value
 Convenience value for checking whether a type is a canonical attribute array.
 

Detailed Description

Concepts and canonical family lists for concrete attribute computers.

Definition in file AttributeComputerRegistry.hpp.

Typedef Documentation

◆ AltitudeAttributeComputers

using mmcfilters::attributes::computers::AltitudeAttributeComputers = typedef std::tuple< VolumeComputer, GrayLevelStatsComputer, MaxDistComputer>

Canonical list of altitude-aware families known to the pipeline.

Definition at line 152 of file AttributeComputerRegistry.hpp.

◆ RegisteredAttributeComputers

using mmcfilters::attributes::computers::RegisteredAttributeComputers = typedef std::tuple< AreaComputer, BoundingBoxComputer, TreeTopologyComputer, CentralMomentsComputer, HuMomentsComputer, MomentBasedAttributeComputer, BitquadAttributeComputer, ContourSideAttributeComputer, VolumeComputer, GrayLevelStatsComputer, MaxDistComputer>

Canonical list used by contract tests to cover every public family.

Definition at line 160 of file AttributeComputerRegistry.hpp.

◆ TopologyAttributeComputers

using mmcfilters::attributes::computers::TopologyAttributeComputers = typedef std::tuple< AreaComputer, BoundingBoxComputer, TreeTopologyComputer, CentralMomentsComputer, HuMomentsComputer, MomentBasedAttributeComputer, BitquadAttributeComputer, ContourSideAttributeComputer>

Canonical list of topology/support families known to the backend.

Definition at line 139 of file AttributeComputerRegistry.hpp.

Function Documentation

◆ numProducedAttributes()

template<AttributeComputer Computer>
constexpr std::size_t mmcfilters::attributes::computers::numProducedAttributes ( )
constexprnoexcept

Number of scalar descriptors declared by the family.

Definition at line 121 of file AttributeComputerRegistry.hpp.

◆ producesAttribute()

template<AttributeComputer Computer>
constexpr bool mmcfilters::attributes::computers::producesAttribute ( Attribute  attribute)
constexprnoexcept

Tests whether Computer is the declared producer of attribute.

Definition at line 111 of file AttributeComputerRegistry.hpp.

◆ runtimeProducedAttributes()

template<AttributeComputer Computer>
std::vector< Attribute > mmcfilters::attributes::computers::runtimeProducedAttributes ( )

Materializes a computer's canonical output list as a runtime vector.

Definition at line 130 of file AttributeComputerRegistry.hpp.

Variable Documentation

◆ IsAttributeArrayV

template<class T >
constexpr bool mmcfilters::attributes::computers::detail::IsAttributeArrayV = IsAttributeArray<std::remove_cvref_t<T>>::value
inlineconstexpr

Convenience value for checking whether a type is a canonical attribute array.

Definition at line 50 of file AttributeComputerRegistry.hpp.