Thea
Namespaces | Classes | Typedefs | Functions
Thea::Algorithms Namespace Reference

Miscellaneous algorithms. More...

Namespaces

 ImageFeatures
 Namespace for classes that compute features on an image.
 
 SurfaceFeatures
 Namespace for classes that compute features of a surface.
 

Classes

class  AlwaysBlockFilter
 A filter that allows nothing to pass through. More...
 
class  AlwaysPassFilter
 A filter that allows everything to pass through. More...
 
class  ApproximateConvexPointDecomposition
 Approximate convex decomposition of point clouds. More...
 
class  ArpackEigenSolver
 ARPACK-based eigensystem solver. More...
 
class  ArpackEigenSolverFactory
 Factory for creating ARPACK eigensolvers. More...
 
class  ArpackPlugin
 An ARPACK-based eigensolver plugin. More...
 
class  BagOfWords
 A bag-of-words model for classifying objects described as a set of points, each point having a feature vector. More...
 
class  BestFitBox3
 Approximate best-fit oriented bounding box. More...
 
class  BestFitEllipsoid3
 Approximate best-fit ellipsoid. More...
 
class  BestFitSphereN
 Approximate best-fit sphere. More...
 
class  BoundedTraitsN
 Traits class for a bounded object in N-space. More...
 
class  BvhN
 A bounding volume hierarchy (BVH) for a set of bounded objects in N-space. More...
 
class  CentroidN
 Finding the centroid of N-dimensional data. More...
 
class  ConnectedComponents
 Compute connected components of graphs and meshes. More...
 
class  ConvexHull3
 Convex hull of a set of points in 3-space. More...
 
class  CsparseLinearSolver
 CSPARSE-based solver for sparse systems of linear equations. More...
 
class  CsparseLinearSolverFactory
 Factory for creating CSPARSE linear solvers. More...
 
class  CsparsePlugin
 A CSPARSE-based plugin for solving sparse systems of linear equations. More...
 
class  DiscreteExponentialMap
 Compute the discrete exponential map of a surface around a point. More...
 
class  EigenSolverManager
 Manages available eigensolver factories. More...
 
class  Filter
 Interface for all single-object filters. More...
 
class  FixedPointIterator
 Iterates repeatedly over a single object. More...
 
class  FurthestPointSampling
 Subsample a set of 3D points to pick a subset of points distributed evenly, that is, neighboring points are (roughly) equally spaced. More...
 
class  GeodesicExtrema
 Compute vertices that represent extrema of a graph, in the sense that they are, on average, further away from other vertices in the graph than their neighbors. More...
 
class  GeodesicSphere3
 Generates a unit geodesic sphere, obtained by recursive subdivision of the faces of an icosahedron. More...
 
class  HasNormalN
 Has boolean member value = true if T has an N-D normal vector, else value = false. More...
 
class  Histogram
 A 1D histogram of real values. More...
 
class  HoughForest
 An implementation of Hough forests. More...
 
class  IAnalyticD1ScalarFunction
 Interface for a function that maps each point in R^n to a real number and has an analytic first derivative (gradient). More...
 
class  IAnalyticD2ScalarFunction
 Interface for a function that maps each point in R^n to a real number and has analytic first (gradient) and second (Hessian) derivatives. More...
 
class  Icp3
 Align two sets of points in 3D using the Iterative Closest Point (ICP) algorithm. More...
 
class  IEigenSolver
 Eigenvalue solver interface. More...
 
class  IEigenSolverFactory
 Interface for a eigensolver factory. More...
 
class  ILinearSolver
 Interface for solvers of systems of linear equations. More...
 
class  ILinearSolverFactory
 Interface for a linear solver factory. More...
 
class  ImlsSurface
 Use the Implicit Moving Least Squares (IMLS) method to compute a smooth approximation to an input mesh. More...
 
class  ImplicitSurfaceMesher
 Mesh an implicit surface defined as the zero level set of a 3D function. More...
 
class  IntersectionTester
 Intersection queries on objects. More...
 
struct  IntersectionTesterImpl
 Helper class for IntersectionTester. More...
 
class  INumericalOptimizer
 Interface for numerical optimizers, that minimize an objective function f:R^n–>R under given constraints. More...
 
class  INumericalOptimizerFactory
 Interface for a numerical optimizer factory. More...
 
class  IsBoundedN
 Has boolean member value = true if T is a geometrically bounded object in n-D space, else value = false. More...
 
class  IScalarConstraint
 Interface for an optimization constraint of the form f(x) op y, where x is a vector, y is a scalar, f is a function, and op is a comparison operator. More...
 
class  IScalarFunction
 Interface for a function that maps each point in R^n to a real number. More...
 
class  IsNonReferencedBoundedN
 Same as IsBoundedN (no need to specialize it separately), except false for pointer types. More...
 
class  IsNonReferencedPointN
 Same as IsPointN (no need to specialize it separately), except false for pointer types. More...
 
class  IsPointN
 Has boolean member value = true if T can be identified with a single point in N-D space, else value = false. More...
 
class  IsRawBoundedN
 Same as IsBoundedN (no need to specialize it separately), except false for const or pointer types. More...
 
class  IsRawPointN
 Same as IsPointN (no need to specialize it separately), except false for const or pointer types. More...
 
class  JointBoost
 A boosting classifier using shared features. More...
 
class  KMeans
 A k-means model for clustering points described by feature vectors. More...
 
class  LaplaceBeltrami
 Compute the discrete Laplace-Beltrami operator of a mesh. More...
 
class  LinearLeastSquares2
 Fitting linear models to 2D data by minimizing sum-of-squared-errors. More...
 
class  LinearLeastSquares3
 Fitting linear models to 3D data by minimizing sum-of-squared-errors. More...
 
class  LinearSolverManager
 Manages available linear solver factories. More...
 
class  LogisticRegression
 Solve logistic regression problems. More...
 
class  Manifold
 Adjust mesh-based surfaces to have manifold topology. More...
 
class  MeshBvh
 A bounding volume hierarchy on mesh triangles. More...
 
class  MeshSampler
 Sample points from a mesh. More...
 
class  MeshTriangles
 A set of triangles obtained by triangulating mesh faces. More...
 
class  MeshVertexTriple
 A set of three vertices of a single face of a mesh. More...
 
class  MeshVertexTriple< MeshT, typename std::enable_if< Graphics::IsDisplayMesh< MeshT >::value >::type >
 A set of three vertices of a single face of a display mesh. More...
 
class  MetricL2
 Distances and closest pairs of points between various types of objects according to the Euclidean (L2) metric. More...
 
struct  MetricL2Impl
 Helper class for MetricL2. More...
 
class  NormalTraitsN
 Traits for an object which has an N-D normal vector. More...
 
class  NumericalOptimizerManager
 Manages available numerical optimizer factories. More...
 
class  PcaN
 Principal component analysis of N-D data. More...
 
class  PointCollectorN
 Add points from different objects to a collection. More...
 
class  PointPairN
 A pair of points in n-dimensional space. More...
 
class  PointSet3
 A set of 3D points, with a proximity graph and BVH on the samples. More...
 
class  PointTraitsN
 Traits for an object which can be identified with a single point in N-space. More...
 
class  ProximityQueryStructureN
 Interface for a structure that supports proximity queries in N-space. More...
 
class  PtrIterator
 Converts an iterator dereferencing to T, to an iterator dereferencing to T *. More...
 
class  Pyramid1d
 A 1D pyramid. More...
 
class  Pyramid2d
 A 2D pyramid. More...
 
class  Pyramid3d
 A 3D pyramid. More...
 
class  PyramidMatch
 Compare two 1, 2 or 3-dimensional scalar arrays of the same size using a pyramid-matching technique. More...
 
class  RangeQueryStructure
 Interface for a structure that supports range queries. More...
 
class  RayIntersectionTester
 Ray intersection queries on objects. More...
 
struct  RayIntersectionTesterImpl
 Helper class for RayIntersectionTester. More...
 
class  RayQueryStructureN
 Interface for a structure that supports ray intersection queries in N-space. More...
 
class  RayStructureIntersectionN
 A description of the intersection point of a ray with a structure. More...
 
class  RefIterator
 Converts an iterator dereferencing to a pointer to T, to an iterator dereferencing to T. More...
 
class  SamplePoint3
 A class used to store 3D sample points with adjacency information. More...
 
class  ShortestPaths
 Compute shortest paths on graphs. More...
 
class  SparsePcaN
 Sparse Principal Component Analysis – biases basis vectors to have more zeros. More...
 
class  StdLinearSolver
 Solve dense and sparse linear systems of the form Ax = b for x. More...
 
class  SurfaceParametrization
 Project 2-manifolds to a 2D (UV) parameter space. More...
 
class  Symmetry3
 Symmetry detection in 3D. More...
 
class  TransformedObject
 Wraps pointers to an object and an associated transformation. More...
 
class  Transformer
 Apply transformations to objects. More...
 
struct  TransformerImpl
 Helper class for Transformer. More...
 
class  UniversalCompatibility
 A compatibility functor that always returns true for any two objects. More...
 
class  Zernike2
 Compute Zernike moments of a 2D distribution, represented as a matrix of density values. More...
 

Typedefs

typedef BestFitSphereN< 3, Real > BestFitSphere3
 Best-fit sphere in 3 dimensions. More...
 
typedef std::pair< double, double > DoublePair
 A pair of points in 1-space (double-precision) More...
 
typedef std::pair< float, float > FloatPair
 A pair of points in 1-space (single-precision) More...
 
typedef std::pair< Vector2, Vector2 > PointPair2
 A pair of points in 2-space. More...
 
typedef std::pair< Vector3, Vector3 > PointPair3
 A pair of points in 3-space. More...
 
typedef std::pair< Vector4, Vector4 > PointPair4
 A pair of points in 4-space. More...
 
typedef ProximityQueryStructureN< 2, Real > ProximityQueryStructure2
 Interface for a structure that supports proximity queries in 2-space. More...
 
typedef ProximityQueryStructureN< 3, Real > ProximityQueryStructure3
 Interface for a structure that supports proximity queries in 3-space. More...
 
typedef RayQueryStructureN< 2, Real > RayQueryStructure2
 Interface for a structure that supports ray intersection queries in 2-space. More...
 
typedef RayQueryStructureN< 3, Real > RayQueryStructure3
 Interface for a structure that supports ray intersection queries in 3-space. More...
 
typedef RayStructureIntersectionN< 2, Real > RayStructureIntersection2
 A description of the intersection point of a ray with a structure in 2-space. More...
 
typedef RayStructureIntersectionN< 3, Real > RayStructureIntersection3
 A description of the intersection point of a ray with a structure in 3-space. More...
 
typedef std::pair< Real, Real > RealPair
 A pair of points in 1-space (default precision) More...
 

Functions

template<typename I1 , typename I2 >
I2 fastCopy (I1 first, I1 last, I2 out)
 A version of std::copy that calls memcpy where appropriate (if the class has a trivial assignment operator and the iterators are raw pointers) for speed. More...
 
template<typename I1 , typename I2 >
I2 fastCopyBackward (I1 first, I1 last, I2 out)
 A version of std::copy_backward that calls memmove where appropriate (if the class has a trivial assignment operator) for speed. More...
 
template<typename IteratorT >
PtrIterator< IteratorT > makePtrIterator (IteratorT const &ii)
 Utility function to create a specialization of PtrIterator of the correct type wrapping a given iterator. More...
 
template<typename IteratorT >
RefIterator< IteratorT > makeRefIterator (IteratorT const &ii)
 Utility function to create a specialization of RefIterator of the correct type wrapping a given iterator. More...
 
template<typename ObjectT , typename TransformT >
TransformedObject< ObjectT, TransformT > makeTransformedObject (ObjectT const *obj, TransformT const *trans)
 Utility function to wrap an object-transformation pair. More...
 

Detailed Description

Miscellaneous algorithms.

Typedef Documentation

typedef BestFitSphereN<3, Real> BestFitSphere3

Best-fit sphere in 3 dimensions.

Definition at line 24 of file BestFitSphere3.hpp.

typedef std::pair<double, double> DoublePair

A pair of points in 1-space (double-precision)

Definition at line 29 of file PointPairs.hpp.

typedef std::pair<float, float> FloatPair

A pair of points in 1-space (single-precision)

Definition at line 26 of file PointPairs.hpp.

typedef std::pair<Vector2, Vector2> PointPair2

A pair of points in 2-space.

Definition at line 35 of file PointPairs.hpp.

typedef std::pair<Vector3, Vector3> PointPair3

A pair of points in 3-space.

Definition at line 38 of file PointPairs.hpp.

typedef std::pair<Vector4, Vector4> PointPair4

A pair of points in 4-space.

Definition at line 41 of file PointPairs.hpp.

Interface for a structure that supports proximity queries in 2-space.

Definition at line 237 of file ProximityQueryStructureN.hpp.

Interface for a structure that supports proximity queries in 3-space.

Definition at line 240 of file ProximityQueryStructureN.hpp.

Interface for a structure that supports ray intersection queries in 2-space.

Definition at line 94 of file RayQueryStructureN.hpp.

Interface for a structure that supports ray intersection queries in 3-space.

Definition at line 103 of file RayQueryStructureN.hpp.

A description of the intersection point of a ray with a structure in 2-space.

Specifies the hit time, the normal at the intersection point, and the index of the intersected element.

Definition at line 91 of file RayQueryStructureN.hpp.

A description of the intersection point of a ray with a structure in 3-space.

Specifies the hit time, the normal at the intersection point, and the index of the intersected element.

Definition at line 100 of file RayQueryStructureN.hpp.

typedef std::pair<Real, Real> RealPair

A pair of points in 1-space (default precision)

Definition at line 32 of file PointPairs.hpp.

Function Documentation

I2 Thea::Algorithms::fastCopy ( I1  first,
I1  last,
I2  out 
)

A version of std::copy that calls memcpy where appropriate (if the class has a trivial assignment operator and the iterators are raw pointers) for speed.

To take advantage of fast copying, specialize std::is_trivially_copyable to return true for the value type.

Definition at line 76 of file FastCopy.hpp.

I2 Thea::Algorithms::fastCopyBackward ( I1  first,
I1  last,
I2  out 
)

A version of std::copy_backward that calls memmove where appropriate (if the class has a trivial assignment operator) for speed.

To take advantage of fast copying, specialize std::is_trivially_copyable to return true for the value type.

Definition at line 95 of file FastCopy.hpp.

PtrIterator<IteratorT> Thea::Algorithms::makePtrIterator ( IteratorT const &  ii)

Utility function to create a specialization of PtrIterator of the correct type wrapping a given iterator.

Definition at line 317 of file Iterators.hpp.

RefIterator<IteratorT> Thea::Algorithms::makeRefIterator ( IteratorT const &  ii)

Utility function to create a specialization of RefIterator of the correct type wrapping a given iterator.

Definition at line 309 of file Iterators.hpp.

TransformedObject<ObjectT, TransformT> Thea::Algorithms::makeTransformedObject ( ObjectT const *  obj,
TransformT const *  trans 
)

Utility function to wrap an object-transformation pair.

Allows the compiler to automatically infer template parameters.

Definition at line 62 of file TransformedObject.hpp.