PLaSK library
Loading...
Searching...
No Matches
align.hpp File Reference

This file contains aligners. More...

#include "transform.hpp"
#include <boost/lexical_cast.hpp>
#include "../utils/xml.hpp"
#include "../memory.hpp"
#include "../utils/metaprog.hpp"
Include dependency graph for align.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  plask::align::DirectionTo2D< direction >
 Convert Direction to 2D vector direction. More...
 
struct  plask::align::DirectionTo2D< Primitive< 3 >::DIRECTION_TRAN >
 
struct  plask::align::DirectionTo2D< Primitive< 3 >::DIRECTION_VERT >
 
struct  plask::align::AlignerImpl< _direction >
 Helper which allow to implement base class for aligners which work in one direction. More...
 
struct  plask::align::AlignerBase< _direction >
 
struct  plask::align::Aligner< _direction >
 Base class for one direction aligners (in 2D and 3D spaces). More...
 
struct  plask::align::Aligner< Primitive< 3 >::DIRECTION_LONG >
 
struct  plask::align::details::PositionAlignerImpl< direction >
 Alginer which place zero of object in constant, chosen place. More...
 
struct  plask::align::AlignerBase2D< _direction1, _direction2 >
 Base class for two directions aligner in 3D space, compose and use two 2D aligners. More...
 
struct  plask::align::Aligner< _direction1, _direction2 >
 Two directions aligner in 3D space, compose and use two 1D aligners. More...
 
struct  plask::align::Aligner< Primitive< 3 >::DIRECTION_TRAN, Primitive< 3 >::DIRECTION_VERT >
 Two directions aligner in 2D and 3D space, compose and use two 1D aligners. More...
 
struct  plask::align::Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(1), Primitive< 3 >::Direction(2)>
 Three directions aligner in 3D space, compose and use three 1D aligners. More...
 
struct  plask::align::details::LEFT
 
struct  plask::align::details::RIGHT
 
struct  plask::align::details::FRONT
 
struct  plask::align::details::BACK
 
struct  plask::align::details::TOP
 
struct  plask::align::details::BOTTOM
 
struct  plask::align::details::TRAN_CENTER
 
struct  plask::align::details::LON_CENTER
 
struct  plask::align::details::VERT_CENTER
 
struct  plask::align::details::AlignerCustomImpl< direction, strategy, name_tag >
 
struct  plask::align::DictionaryFromXML
 Allow to use XMLReader as dictionary which is required by aligners parsing functions. More...
 

Namespaces

namespace  plask
 Patterson quadrature for complex function along specified line.
 
namespace  plask::align
 
namespace  plask::align::details
 

Typedefs

typedef Primitive< 3 >::Direction plask::align::Direction
 Directions of aligners activity, same as vec<3, T> directions.
 
typedef Aligner< Primitive< 3 >::DIRECTION_TRAN, Primitive< 3 >::DIRECTION_VERT > plask::align::Aligner2D
 
typedef Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(1), Primitive< 3 >::Direction(2)> plask::align::Aligner3D
 
template<int dim>
using plask::align::AlignerD = typename chooseType< dim-2, Aligner2D, Aligner3D >::type
 Aligner2D if dim == 2, Aligner3D if dim == 3.
 
typedef double plask::align::details::alignStrategy(double lo, double hi, double coordinate)
 
template<Primitive< 3 >::Direction dir>
using plask::align::LowerBoundImpl = details::AlignerCustomImpl< dir, details::lowToCoordinate, typename chooseType< dir, details::BACK, details::LEFT, details::BOTTOM >::type >
 
typedef std::function< plask::optional< double >(const std::string &name)> plask::align::Dictionary
 

Functions

Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(1)> plask::align::operator& (const Aligner< Primitive< 3 >::Direction(0)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(1)> &dir2aligner)
 
Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(1)> plask::align::operator& (const Aligner< Primitive< 3 >::Direction(1)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(0)> &dir2aligner)
 
Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(2)> plask::align::operator& (const Aligner< Primitive< 3 >::Direction(0)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(2)> &dir2aligner)
 
Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(2)> plask::align::operator& (const Aligner< Primitive< 3 >::Direction(2)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(0)> &dir2aligner)
 
Aligner< Primitive< 3 >::Direction(1), Primitive< 3 >::Direction(2)> plask::align::operator& (const Aligner< Primitive< 3 >::Direction(1)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(2)> &dir2aligner)
 
Aligner< Primitive< 3 >::Direction(1), Primitive< 3 >::Direction(2)> plask::align::operator& (const Aligner< Primitive< 3 >::Direction(2)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(1)> &dir2aligner)
 
Aligner3D plask::align::operator& (const Aligner< Primitive< 3 >::Direction(1), Primitive< 3 >::Direction(2)> &dir12aligner, const Aligner< Primitive< 3 >::Direction(0)> &dir0aligner)
 
Aligner3D plask::align::operator& (const Aligner< Primitive< 3 >::Direction(0)> &dir0aligner, const Aligner< Primitive< 3 >::Direction(1), Primitive< 3 >::Direction(2)> &dir12aligner)
 
Aligner3D plask::align::operator& (const Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(2)> &dir02aligner, const Aligner< Primitive< 3 >::Direction(1)> &dir1aligner)
 
Aligner3D plask::align::operator& (const Aligner< Primitive< 3 >::Direction(1)> &dir1aligner, const Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(2)> &dir02aligner)
 
Aligner3D plask::align::operator& (const Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(1)> &dir01aligner, const Aligner< Primitive< 3 >::Direction(2)> &dir2aligner)
 
Aligner3D plask::align::operator& (const Aligner< Primitive< 3 >::Direction(2)> &dir2aligner, const Aligner< Primitive< 3 >::Direction(0), Primitive< 3 >::Direction(1)> &dir01aligner)
 
double plask::align::details::lowToCoordinate (double lo, double, double coordinate)
 
double plask::align::details::hiToCoordinate (double, double hi, double coordinate)
 
double plask::align::details::centerToCoordinate (double lo, double hi, double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_TRAN > plask::align::left (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_TRAN > plask::align::right (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_TRAN > plask::align::tranCenter (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_TRAN > plask::align::center (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_TRAN > plask::align::tran (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_LONG > plask::align::front (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_LONG > plask::align::back (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_LONG > plask::align::lonCenter (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_LONG > plask::align::lon (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_VERT > plask::align::bottom (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_VERT > plask::align::top (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_VERT > plask::align::vertCenter (double coordinate)
 
Aligner< Primitive< 3 >::DIRECTION_VERT > plask::align::vert (double coordinate)
 
Aligner2D plask::align::fromVector (const Vec< 2, double > &v)
 
Aligner3D plask::align::fromVector (const Vec< 3, double > &v)
 
template<Primitive< 3 >::Direction dir>
Aligner< dirplask::align::lowerBoundZero ()
 Get aligner with align in one direction to lower bound.
 
template<Primitive< 3 >::Direction dir1, Primitive< 3 >::Direction dir2>
Aligner< dir1, dir2plask::align::lowerBoundZero ()
 
Aligner< Primitive< 3 >::DIRECTION_TRAN > plask::align::details::transAlignerFromDictionary (Dictionary dic, const std::string &axis_name)
 
Aligner< Primitive< 3 >::DIRECTION_LONG > plask::align::details::lonAlignerFromDictionary (Dictionary dic, const std::string &axis_name)
 
Aligner< Primitive< 3 >::DIRECTION_VERT > plask::align::details::vertAlignerFromDictionary (Dictionary dic, const std::string &axis_name)
 
template<Direction direction>
Aligner< direction > plask::align::fromDictionary (Dictionary dictionary, const std::string &axis_name)
 Construct aligner in given direction from dictionary.
 
template<Direction direction>
Aligner< direction > plask::align::fromDictionary (Dictionary dic, const AxisNames &axis_names)
 Construct aligner in given direction from dictionary.
 
template<Direction direction>
Aligner< direction > plask::align::fromDictionary (Dictionary dictionary, const AxisNames &axis_names, Aligner< direction > default_aligner)
 Construct aligner in given direction from dictionary.
 
template<Direction direction>
Aligner< direction > plask::align::fromXML (const XMLReader &reader, const std::string &axis_name)
 
template<Direction direction>
Aligner< direction > plask::align::fromXML (const XMLReader &reader, const AxisNames &axis_names)
 
template<Direction direction>
Aligner< direction > plask::align::fromXML (const XMLReader &reader, const AxisNames &axis_names, Aligner< direction > default_aligner)
 
template<Direction direction1, Direction direction2>
Aligner< direction1, direction2 > plask::align::fromDictionary (Dictionary dic, const AxisNames &axes)
 Construct 2 directions aligner from dictionary.
 
template<Direction direction1, Direction direction2>
Aligner< direction1, direction2 > plask::align::fromXML (const XMLReader &reader, const AxisNames &axes)
 Construct 2 directions aligner from XML.
 
template<Direction direction1, Direction direction2>
Aligner< direction1, direction2 > plask::align::fromDictionary (Dictionary dictionary, const AxisNames &axes, Aligner< direction1, direction2 > default2D)
 Construct 2 direction aligner from dictionary.
 
template<Direction direction1, Direction direction2>
Aligner< direction1, direction2 > plask::align::fromXML (const XMLReader &reader, const AxisNames &axes, Aligner< direction1, direction2 > default2D)
 Construct 2 direction aligner from XML.
 
template<Direction direction1, Direction direction2, Direction direction3>
Aligner3D plask::align::fromDictionary (Dictionary dictionary, const AxisNames &axis_names)
 Construct 3 direction aligner from dictionary.
 
template<Direction direction1, Direction direction2, Direction direction3>
Aligner3D plask::align::fromXML (const XMLReader &reader, const AxisNames &axes)
 Construct 3 direction aligner from XML.
 
template<Direction direction1, Direction direction2, Direction direction3>
Aligner3D plask::align::fromDictionary (Dictionary dic, const AxisNames &axes, Aligner< direction1, direction2, direction3 > default3D)
 Construct 3 direction aligner from dictionary.
 
template<Direction direction1, Direction direction2, Direction direction3>
Aligner3D plask::align::fromXML (const XMLReader &reader, const AxisNames &axes, Aligner< direction1, direction2, direction3 > default3D)
 Construct 3 direction aligner from XML.
 
template<typename TranslationT , typename Aligner1T , typename Aligner2T >
void plask::align::align (TranslationT &toAlign, const Aligner1T &aligner1, const Aligner2T &aligner2)
 Align toAlign by aligner1 and aligner2.
 

Detailed Description

This file contains aligners.

Definition in file align.hpp.