|
OpenABF 2.1.0
|
Implementation details. More...
Namespaces | |
| namespace | ABF |
| ABF and ABF++ implementation details | |
| namespace | hlscm |
| Implementation details for HierarchicalLSCM. | |
Classes | |
| class | FilteringIterator |
| Input iterator that skips elements not matching a predicate. More... | |
| struct | Range |
| Lightweight non-owning range adapter holding begin/end iterators. More... | |
Functions | |
| template<typename T > | |
| auto | vec_to_string (const T &v) -> std::string |
| template<class ForwardContainer , class UnaryPred > | |
| auto | remove_if (ForwardContainer v, UnaryPred p) |
| template<class SparseMatrix , class DenseMatrix , class Solver , std::enable_if_t<!is_instance_of_v< Solver, Eigen::LeastSquaresConjugateGradient >, bool > = false> | |
| auto | SolveLeastSquares (SparseMatrix A, SparseMatrix b) -> DenseMatrix |
| template<typename MeshType > | |
| void | MinimizeChartBoundingBox (const typename MeshType::Pointer &chart) |
| Rotate a chart within its UV plane so its axis-aligned bounding box has minimum area, with the larger extent vertical. | |
Variables | |
| template<class T , template< class... > class U> | |
| constexpr bool | is_instance_of_v = std::false_type{} |
| template<template< class... > class U, class... Vs> | |
| constexpr bool | is_instance_of_v< U< Vs... >, U > = std::true_type{} |
Implementation details.
Rotate a chart within its UV plane so its axis-aligned bounding box has minimum area, with the larger extent vertical.
The minimum-area enclosing rectangle of a planar point set always has one edge collinear with an edge of the set's convex hull, so it suffices to test the orientation induced by each hull edge. The chart is then stood on its long axis (larger extent vertical) so it aligns with PackCharts's tallest-first shelf strategy. Vertex positions are rotated in place about the origin; only the first two components are touched. Rotation preserves topology and vertex identity, so any back-maps remain valid.
| MeshType | A HalfEdgeMesh specialization |
| auto OpenABF::detail::remove_if | ( | ForwardContainer | v, |
| UnaryPred | p | ||
| ) |
Returns a copy of v with every element matching p removed. Naming matches std::remove_if (predicate selects elements to drop), NOT the conventional filter semantic where the predicate selects what to keep.
| auto OpenABF::detail::SolveLeastSquares | ( | SparseMatrix | A, |
| SparseMatrix | b | ||
| ) | -> DenseMatrix |
Solve least squares using A'Ab
Solve least squares with LeastSquaresConjugateGradient
Debug: Print a vector of elements to a string
Check if type is an instance of a template type: False