Namespaces | Classes | Typedefs | Functions | Variables
drain Namespace Reference

Namespaces

 image
 Namespace for images and image processing tools.
 

Classes

struct  TypeName< rack::DataType< T, TI, D > >
 
class  Castable
 
class  CastableIterator
 
class  Caster
 
class  Convert
 Utility class with static conversions. More...
 
class  Convert2
 Utility class with static conversions. More...
 
class  Kernel
 
class  NodeSLD
 
class  NeuralVector
 
class  Neuron
 
class  Layer
 
class  Bidirectional
 
class  ImageCodeMap
 
class  LegendEntry
 
class  Legend
 
struct  TypeName< image::Window< P, R > >
 
struct  Notification
 
class  Log
 Handler for notifications sent by a Logger. More...
 
class  DrainException
 
class  Logger
 LogSourc e is the means for a function or any program segment to "connect" to a Log. More...
 
class  Command
 Base class for commands: typically actions taking parameters but also plain variable assignments and parameterless actions. More...
 
class  BeanCommand
 Retrieves bean dynamically for each call. More...
 
class  BeanRefCommand
 
class  BasicCommand
 Simple implementation of Command: adds name , description and parameters . More...
 
class  SimpleCommand
 A single-parameter command. More...
 
class  CommandBank
 Container and execution tools for commands derived from Command. More...
 
class  CmdVerbosity
 
class  CmdDebug
 
class  CmdLog
 
class  CmdStatus
 
class  CmdExpandVariables
 
class  CmdScript
 Load script file and executes the commands immediately. More...
 
class  CmdExecScript
 Executes the defined script. More...
 
class  CmdExecFile
 Load script file and execute the commands immediately using current Context. More...
 
class  HelpCmd
 CommandBank-dependent. More...
 
class  CmdFormat
 
class  CmdNotFound
 Special command for handling undefined commands. More...
 
class  CmdFormatFile
 
class  CommandInstaller
 Creates an instance of command class C. More...
 
class  CommandModule
 Combines command installation and sectioning. More...
 
class  CmdOpticalFlowBase
 Utility for creating a Command that runs FastOpticalFlowOp operator. More...
 
class  CommandSection
 
struct  HiddenSection
 
struct  GeneralSection
 
struct  TriggerSection
 
class  Context
 
class  ContextKit
 Utilities. More...
 
class  SmartContext
 
class  Contextual
 
class  SuperContextual
 Adds class-specific convenience functions. More...
 
class  CommandSequence
 A base class for Script and Program. More...
 
class  Script
 
class  Program
 Sequence consisting of Command:s retrieved from a CommandBank. More...
 
class  ProgramVector
 Structure for implementing threads in parallelized OpenMP for loop. More...
 
class  PseudoTuple
 
struct  TypeName< PseudoTuple< C, T, N > >
 
class  ReferenceT
 Intermediate class supporting link() in various forms. More...
 
class  RegExp
 
class  MapTools
 General purpose tools for handling values and keys of std::map<> More...
 
class  SmartMapTools
 A base class for smart maps providing methods for importing and exporting values, among others. More...
 
class  TypeLayoutBase
 Small container for printing style for putting of structured objects (array, maps, pairs). More...
 
struct  TypeLayout
 
struct  SprinterLayout
 
class  Sprinter
 
class  Sprintlet
 
class  StreamBuilder
 
class  StringTools
 
class  StringBuilder
 
class  TextStyle
 Utility for scanning text segments. More...
 
class  TextStyleVT100
 
class  TupleBase
 
struct  TypeName< TupleBase< S, N > >
 
class  Type
 Utilities related to std::type_info. More...
 
struct  TypeName
 
struct  TypeName< std::initializer_list< T > >
 
struct  TypeName< std::vector< T > >
 
class  simpleName
 Returns the basic type (integer, float, bool, string, void) as a string. More...
 
struct  TypeUtils
 
class  typesetter
 Utility for implementing setType(const std::type_info &t) in classes supporting setType<T>(). More...
 
class  sizeGetter
 Returns the sizeof() of a type. Accepts void (and returns size 0), which is not supported by std::numeric_limits. More...
 
class  compactName
 Returns the basic type (integer, float, bool, string, void) as a string. More...
 
class  complexName
 
class  nameGetter
 Returns the compiler specific ie. non-standard name of the type. More...
 
class  typeIsFundamental
 
class  isSigned
 
class  typeIsScalar
 Checks if type is numeric. More...
 
class  typeIsInteger
 
class  typeIsFloat
 
class  typeIsSmallInt
 The maximum value of a type given as type_info, char or std::string. More...
 
struct  typeLimits
 
class  typeMin
 The minimum value of a type given as type_info, char or std::string. More...
 
class  typeMax
 The maximum value of a type given as type_info, char or std::string. More...
 
class  typeNaturalMax
 The maximum value of a. More...
 
class  typeLimiter
 Class for ensuring that variable of type D remains within limits of type S. More...
 
class  UniTuple
 Tuple of N elements of type T. More...
 
struct  TypeName< UniTuple< T, N > >
 
class  Bank
 
class  BankSuper
 A Bank with additional support for brief, single char keys. More...
 
class  UniCloner
 Creates an entry of desired type and destroys it upon exit. More...
 
class  BeanLike
 Something which has a name, a description and possibly some parameters of varying type. More...
 
class  BBox
 Container for geographical extent spanned by lowerLeft(x,y) and upperRight(x,y). Assumes longitude=x and latitude=y . More...
 
struct  ClonerBase
 
struct  Cloner
 Wrapper for derived class S, returning base class T. More...
 
class  Dictionary
 Two-way mapping between strings and objects of template class T. More...
 
class  DictionaryPtr
 Associates type info. More...
 
class  DotLayout
 
class  DotEntity
 
class  DotNode
 
class  DotBullit
 
class  DotRankNode
 
class  DotHeader
 
class  DotComment
 
class  DotLink
 
class  DotRank
 
class  FileInfo
 
class  FileHandler
 
class  FilePath
 Extracts and stores directory path, base filename and extension. More...
 
class  FlagResolver
 Referencing a dictionary of binary values: {"A",1: "B":2, "C": 4, "D": 8, ...} resolves two-way mappings "A,C" <=> 5 . More...
 
class  FlaggerBase
 
class  SingleFlagger
 
class  MultiFlagger
 
struct  EnumDict
 
class  EnumFlagger
 Flagger accepting values of enum type E. More...
 
class  Flagger2
 Flagger with referenced/external dictionary accepting values of (integer) type T. More...
 
class  Flags2
 Flagger with own dictionary, and accepting values of (integer) type T. More...
 
class  Flagger
 A bit vector with external Dictionary mapping from strings to bits and vice versa. More...
 
class  Flags
 Self-contained Flagger – with an own dictionary and value. More...
 
class  Frame2D
 
struct  Box
 Something that has coordinates (x,y) and dimensions (width, height). More...
 
class  Functor
 Base class for sequential computations. Optional scaling utilities. More...
 
struct  UnaryFunctor
 
struct  IdentityFunctor
 
class  BinaryFunctor
 
class  ScalingFunctor
 Rescales intensities linearly: f' = scale*f + offset. More...
 
class  NegateFunctor
 Inverts intensities: f' = f_max - f. More...
 
class  RemappingFunctor
 Maps a single intensity value to another value. More...
 
class  ThresholdFunctor
 Thresholds intensity values. More...
 
class  BinaryThresholdFunctor
 Thresholds intensity values. More...
 
class  AdditionFunctor
 Adds a intensity values . More...
 
class  SubtractionFunctor
 Subtracts image from another image. More...
 
class  MultiplicationFunctor
 Multiplies two images, with optional post scaling and offset. More...
 
class  DivisionFunctor
 Divides image by another image. More...
 
class  MixerFunctor
 Blends an image to another with given proportion. More...
 
class  MaximumFunctor
 
class  MinimumFunctor
 Minimum intensity. Prescaled input. More...
 
class  Fuzzifier
 A base class for fuzzy functions; also an unary functor. More...
 
class  FuzzyStep
 A basic, linear transition from 0 to scale between (start) and (end) . More...
 
class  FuzzyTriangle
 A basic triangular peak function with linear around the peak. More...
 
class  FuzzyBell
 A smooth symmetric peak function that resembles the Gaussian bell curve. More...
 
class  FuzzyBell2
 A smooth symmetric peak function that resembles the Gaussian bell curve. Diminishes quicker than FuzzyPeak. More...
 
class  FuzzySigmoid
 A smooth step function, by default from -1.0 to +1.0. More...
 
class  FuzzyStepsoid
 A smooth step function between 0.0 and 1.0. Increasing (decreasing) with positive (negative) width. Otherwise like FuzzySigmoid. More...
 
class  FuzzyTwinPeaks
 A function taking shape of two peaks, with a zero in the middle . More...
 
class  GlobalFlags
 Flags using a global dictionary. More...
 
class  Histogram
 Class for computing a histogram and some statistics: average, min, max, mean, std.dev, sum. More...
 
class  Input
 Input utility. Opens stdIn with "-". Closes upon destruction. More...
 
class  IosFormat
 Stores precision, fillChar and fieldWidth applied by STD streams. More...
 
class  JSON
 Utility for extracting JSON-compatible strings, numbers or arrays of numbers in text data. More...
 
class  LookUp
 Look-up tables. More...
 
class  LookUp2
 Look-up tables. More...
 
class  FunctorLookUp
 Values are available from [0,2PI]. More...
 
class  MapReader
 General utility for reading text entries of type KEY=VALUE into a map.
More...
 
class  MapWrapper
 
class  MapWriter
 
class  Matrix
 
class  Vector
 
class  Output
 Output utility. Opens stdout with "-". Closes upon destruction. More...
 
struct  PathSeparatorPolicy
 Determines if separators will be stored in the path. More...
 
class  Path
 
struct  Point2D
 
struct  Point3D
 
class  Projector
 
class  Proj6
 
class  Projection
 
class  Range
 
struct  Rectangle
 Rectange defined through lower left and upper right coordinates. More...
 
class  ReferenceMap2
 A map of references to base type scalars, arrays or std::string; changing values in either are equivalent operations. More...
 
class  ReferenceMap
 
class  Registry
 A container for storing global objects like functors, operators or commands. Supports aliases. More...
 
class  SmartMap
 A base class for smart maps providing methods for importing and exporting values, among others. More...
 
class  SmartMapFoo
 A base class for smart maps providing methods for importing and exporting values, among others. More...
 
class  Som
 
class  Static
 
class  BiStatic
 
struct  status_flag_id
 
class  StatusFlags
 
class  Stringlet
 A helper class for StringMapper. More...
 
class  StringMapper
 A tool for expanding variables embedded in a std::string to literals. More...
 
class  StringMatcher
 General-purpose key matcher: tests string equality, or regExp, if defined as such. More...
 
class  StringMatcherList
 Utility for selecting a quantity label Applied by DataSelector. More...
 
class  TextDecorator
 Utility for ... More...
 
class  TextDecoratorVt100
 
class  TextReader
 Utility for scanning text segments. More...
 
class  Time
 Utility for handling time. Internally, uses tm (C time structure). More...
 
class  DRAIN_TREE_NAME
 A templated class for directed rooted trees. More...
 
struct  TypeName< DRAIN_TREE_NAME< T, EXCLUSIVE, P > >
 
struct  BaseHTML
 
class  NodeHTML
 
class  TreeUtilsHTML
 
class  TreeUtils
 Collection of functions for investigating and processing trees. More...
 
class  StyleXML
 
class  ClassListXML
 Container for style classes. Essentially a set of strings, with space-separated output support. More...
 
class  NodeXML
 
struct  TypeName< drain::UnorderedMultiTree< NodeXML< E >, EX, P > >
 
class  ValueScaling
 Linear scaling and physical range for image intensities. More...
 
class  VariableFormatter
 Formats variables to output stream. More...
 
class  VariableMap
 A map of Variables. More...
 
class  FlexVariableMap
 A map of FlexVariable:s. More...
 
class  WeightedVector
 
class  VariableBase
 Base class for variables: Variable, Reference and FlexibleVariable. More...
 
class  VariableInitializer
 
class  VariableT
 VariableT is a final class applied through typedefs Variable, Reference and FlexibleVariable. More...
 

Typedefs

typedef VariableT< VariableInitializer< ReferenceT< VariableBase > > > FlexibleVariable
 Value container supporting dynamic type with own memory and optional linking (referencing) of external variables. More...
 
typedef ClonerBase< ContextContextClonerBase
 
typedef VariableT< ReferenceT< Castable > > Reference
 Variable-like that is linked to a standard variable: double, int, std::string . Supports multi-element arrays through drain::UniTuple. More...
 
typedef drain::Sprintlet< drain::VariableMap, DotLayoutattrSprintlet
 
typedef std::map< std::string, std::string > amap_t
 
typedef drain::Sprintlet< amap_t, DotLayoutAttrSprintlet
 
typedef BankSuper< UnaryFunctorFunctorBank
 
typedef drain::UnorderedMultiTree< drain::Variable, true > JSONtree2
 
typedef std::vector< double > SomVector
 
typedef StringMatcherList< StringMatcherKeySelector
 
typedef NodeHTML::xml_tree_t TreeHTML
 The HTML data structure.
 
typedef drain::UnorderedMultiTree< NodeXML<>, false, NodeXML<>::path_t > TreeXML
 
typedef DRAIN_VARIABLE Variable
 Value container supporting dynamic type. More...
 

Functions

 DRAIN_TYPENAME_DEF (rack::DataSelector)
 
 DRAIN_TYPENAME (rack::DataSelector)
 
 DRAIN_TYPENAME_DEF (rack::PolarODIM)
 
 DRAIN_TYPENAME (rack::PolarODIM)
 
std::ostream & operator<< (std::ostream &ostr, const Castable &c)
 
template<class T >
T & operator+= (T &x, const Castable &c)
 Arithmetics: addition.
 
template<class T >
T & operator-= (T &x, const Castable &c)
 Arithmetics: subtraction.
 
template<class T >
T & operator*= (T &x, const Castable &c)
 Arithmetics: addition.
 
template<class T >
T & operator/= (T &x, const Castable &c)
 Arithmetics: subtraction.
 
std::ostream & operator<< (std::ostream &ostr, const CastableIterator &it)
 
template<>
void Caster::updateType< std::string > ()
 
template<>
void Caster::put< std::string > (void *p, const std::string &x) const
 
template<>
std::string Caster::get< std::string > (const void *p) const
 Note: there is no conversion for const char * !
 
template<class T >
ostream & operator<< (ostream &ostr, const vector< T > &n)
 Risk of conflicts?
 
template<class T >
ostream & operator<< (ostream &ostr, const Kernel< T > &n)
 
 DRAIN_TYPENAME_DEF (Crit)
 
 DRAIN_TYPENAME_DEF (Oper)
 
 DRAIN_TYPENAME_DEF (CritFlagger)
 
 DRAIN_TYPENAME_DEF (OperFlagger)
 
template<class T >
ostream & operator<< (ostream &ostr, const Neuron< T > &n)
 
template<class T >
ostream & operator<< (ostream &ostr, const Layer< T > &n)
 
 DRAIN_TYPENAME_DEF (FlexibleVariable)
 
 DRAIN_TYPENAME (FlexibleVariable)
 
template<>
std::ostream & drain::Sprinter::toStream< drain::image::ImageFrame > (std::ostream &ostr, const drain::image::ImageFrame &src, const SprinterLayout &layout)
 
 DRAIN_TYPENAME_DEF (drain::image::ImageFrame)
 
 DRAIN_TYPENAME (drain::image::ImageFrame)
 
std::ostream & operator<< (const LegendEntry &entry, std::ostream &ostr)
 
 DRAIN_TYPENAME_DEF (image::NodeSVG)
 
 DRAIN_TYPENAME (image::NodeSVG)
 
 DRAIN_TYPENAME_DEF (image::NodeGDAL)
 
 DRAIN_TYPENAME_DEF (image::NodeGDAL::tag_t)
 
std::ostream & operator<< (std::ostream &ostr, const image::TreeGDAL &tree)
 Write tree using XML notation. More...
 
 DRAIN_TYPENAME (image::NodeGDAL)
 
 DRAIN_TYPENAME (image::NodeGDAL::tag_t)
 
LoggetLog ()
 
NotificationgetNotif (Logger::level_t level)
 
std::ostream & operator<< (std::ostream &ostr, const Command &cmd)
 
CommandBankgetCommandBank ()
 Global program command registry. Optional utility.
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const CommandSequence< T > &commands)
 
std::ostream & operator<< (std::ostream &ostr, const drain::RegExp &r)
 
std::ostream & operator<< (std::ostream &ostr, const SprinterLayout &layout)
 
template<class T , class L >
std::ostream & operator<< (std::ostream &ostr, const Sprintlet< T, L > &sp)
 
template<class T >
Sprintlet< T > sprinter (const T &x, const char *arrayCaps, const char *mapCaps="{,}", const char *pairCaps="(:)", const char *stringCaps="\"")
 
template<class T >
Sprintlet< T > sprinter (const T &x, const SprinterLayout &layout=SprinterLayout())
 
 DRAIN_TYPENAME_DEF (TextStyle)
 
 DRAIN_TYPENAME_DEF (TextStyle::Colour)
 
 DRAIN_TYPENAME_DEF (TextStyle::Line)
 
 DRAIN_TYPENAME_DEF (TextStyle::Style)
 
 DRAIN_TYPENAME (TextStyle)
 
 DRAIN_TYPENAME (TextStyle::Colour)
 
 DRAIN_TYPENAME (TextStyle::Line)
 
 DRAIN_TYPENAME (TextStyle::Style)
 
std::ostream & operator<< (std::ostream &ostr, const TextStyle &t)
 
 DRAIN_TYPENAME_DEF (TextStyleVT100)
 
std::ostream & operator<< (std::ostream &ostr, const TextStyleVT100 &t)
 
 DRAIN_TYPENAME (TextStyleVT100)
 
template<class S , size_t N>
std::ostream & operator<< (std::ostream &ostr, const TupleBase< S, N > &tuple)
 
 DRAIN_TYPENAME_DEF (void)
 
 DRAIN_TYPENAME_DEF (bool)
 
 DRAIN_TYPENAME_DEF (char)
 
 DRAIN_TYPENAME_DEF (unsigned char)
 
 DRAIN_TYPENAME_DEF (short)
 
 DRAIN_TYPENAME_DEF (unsigned short)
 
 DRAIN_TYPENAME_DEF (int)
 
 DRAIN_TYPENAME_DEF (unsigned int)
 
 DRAIN_TYPENAME_DEF (long)
 
 DRAIN_TYPENAME_DEF (unsigned long)
 
 DRAIN_TYPENAME_DEF (float)
 
 DRAIN_TYPENAME_DEF (double)
 
 DRAIN_TYPENAME_DEF (char *)
 
 DRAIN_TYPENAME_DEF (const char *)
 
 DRAIN_TYPENAME_DEF (std::string)
 
std::ostream & operator<< (std::ostream &ostr, const Type &t)
 Dumps information.
 
 DRAIN_TYPENAME (void)
 Add a specialization for each type of those you want to support.
 
 DRAIN_TYPENAME (bool)
 
 DRAIN_TYPENAME (char)
 
 DRAIN_TYPENAME (unsigned char)
 
 DRAIN_TYPENAME (short)
 
 DRAIN_TYPENAME (unsigned short)
 
 DRAIN_TYPENAME (int)
 
 DRAIN_TYPENAME (unsigned int)
 
 DRAIN_TYPENAME (long)
 
 DRAIN_TYPENAME (unsigned long)
 
 DRAIN_TYPENAME (float)
 
 DRAIN_TYPENAME (double)
 
 DRAIN_TYPENAME (char *)
 
 DRAIN_TYPENAME (const char *)
 
 DRAIN_TYPENAME (std::string)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const Bank< T > &bank)
 
std::ostream & operator<< (std::ostream &ostr, const BeanLike &bean)
 
template<class K , class V >
std::ostream & operator<< (std::ostream &ostr, const Dictionary< K, V > &dict)
 
std::ostream & operator<< (std::ostream &ostr, const DotNode &node)
 
std::ostream & operator<< (std::ostream &ostr, const DotHeader &header)
 
std::ostream & operator<< (std::ostream &ostr, const DotComment &comment)
 
std::ostream & operator<< (std::ostream &ostr, const DotLink &link)
 
std::ostream & operator<< (std::ostream &ostr, const DotRank &rank)
 
Registry< FileInfo > & getFileInfoRegistry ()
 
std::ostream & operator<< (std::ostream &ostr, const FilePath &p)
 
template<typename E >
std::ostream & operator<< (std::ostream &ostr, const drain::FlaggerBase< E > &flagger)
 
template<typename E >
std::ostream & operator<< (std::ostream &ostr, const drain::SingleFlagger< E > &flagger)
 
template<typename E >
std::ostream & operator<< (std::ostream &ostr, const drain::MultiFlagger< E > &flagger)
 
std::ostream & operator<< (std::ostream &ostr, const drain::Flagger &flags)
 
 DRAIN_TYPENAME_T (Frame2D, T)
 
 DRAIN_TYPENAME_T (Box, T)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const drain::Box< T > &box)
 
FunctorBankgetFunctorBank ()
 
UnaryFunctorgetFunctor (const std::string &nameAndParams, char separator=',')
 Returns functor the parameters of which have been set. More...
 
const double DEG2RAD (M_PI/180.0)
 
const double RAD2DEG (180.0/M_PI)
 
const int EARTH_RADIUSi (6371000)
 
const double EARTH_RADIUS (6371000.0)
 
std::ostream & operator<< (std::ostream &ostr, const Histogram &h)
 
std::ostream & operator<< (std::ostream &ostr, const IosFormat &iosformat)
 
template<class T >
void polynomialFit2nd (const T &src, const T &weight, std::vector< double > &coeff)
 Fits a 2nd order polynomial to a curve. More...
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const Matrix< T > &m)
 
template<class T >
Outputoperator<< (Output &output, const T &value)
 
std::ostream & operator<< (std::ostream &ostr, const PathSeparatorPolicy &policy)
 
template<class T , char SEP = '/', bool ALEAD = true, bool AREPEAT = false, bool ATRAIL = true>
std::ostream & operator<< (std::ostream &ostr, const Path< T, SEP, ALEAD, AREPEAT, ATRAIL > &p)
 
template<class T , char SEP = '/', bool ALEAD = true, bool AREPEAT = false, bool ATRAIL = true>
std::istream & operator>> (std::istream &istr, Path< T, SEP, ALEAD, AREPEAT, ATRAIL > &p)
 
 DRAIN_TYPENAME_T (Point2D, T)
 
 DRAIN_TYPENAME_T (Point3D, T)
 
std::ostream & operator<< (std::ostream &ostr, const Proj6 &p)
 
 DRAIN_TYPENAME_DEF (Proj6)
 
 DRAIN_TYPENAME (Proj6)
 
 DRAIN_TYPENAME_T (Range, T)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const drain::Rectangle< T > &r)
 
 DRAIN_TYPENAME_T (Rectangle, T)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const SmartMap< T > &m)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const SmartMapFoo< T > &m)
 
template<class T >
double euclideanDistance2 (const T &x1, const T &x2)
 
template<class T >
void vectorMix (const T &x1, const T &x2, double coeff, T &m)
 
template<class T >
void uniformRandomVector256 (std::vector< T > &x)
 For initialising vector Soms.
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const std::vector< T > &n)
 Risk of conflicts?
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const Som< T > &som)
 
template<class T >
void somToImage (const Som< T > &som, drain::image::Image &image, int width=0, int height=0, const std::vector< int > &channels=std::vector< int >())
 Squared Euclidean distance for vectors and similar. More...
 
std::ostream & operator<< (std::ostream &ostr, const Stringlet &s)
 
std::ostream & operator<< (std::ostream &ostr, const StringMapper &strmap)
 
 DRAIN_TYPENAME_DEF (StringMatcher)
 
std::ostream & operator<< (std::ostream &ostr, const StringMatcher &m)
 
 DRAIN_TYPENAME (StringMatcher)
 
 DRAIN_TYPENAME_DEF (KeySelector)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const StringMatcherList< T > &selector)
 
 DRAIN_TYPENAME (KeySelector)
 
std::ostream & operator<< (std::ostream &ostr, const TextDecorator &decorator)
 
 DRAIN_TYPENAME_DEF (NodeHTML)
 
 DRAIN_TYPENAME_DEF (BaseHTML::tag_t)
 
std::ostream & operator<< (std::ostream &ostr, const NodeHTML &node)
 
std::ostream & operator<< (std::ostream &ostr, const TreeHTML &tree)
 
 DRAIN_TYPENAME (NodeHTML)
 
 DRAIN_TYPENAME (BaseHTML::tag_t)
 
std::ostream & operator<< (std::ostream &ostr, const StyleXML &style)
 
std::ostream & operator<< (std::ostream &ostr, const ClassListXML &cls)
 
template<class N >
std::ostream & operator<< (std::ostream &ostr, const NodeXML< N > &node)
 Note: Not designed for XML output, this is more for debugging (in tree dumps),.
 
std::ostream & operator<< (std::ostream &ostr, const TreeXML &t)
 
std::ostream & operator<< (std::ostream &ostr, const drain::ValueScaling &s)
 
template<class T >
std::ostream & operator<< (std::ostream &ostr, const WeightedVector< T > &WeightedVector)
 
 DRAIN_TYPENAME_DEF (Variable)
 
 DRAIN_TYPENAME (Variable)
 
 DRAIN_TYPENAME_DEF (rack::RadarDataPicker< rack::PolarODIM >)
 
 DRAIN_TYPENAME_DEF (rack::RadarDataPicker< rack::CartesianODIM >)
 
 DRAIN_TYPENAME (rack::RadarDataPicker< rack::PolarODIM >)
 
 DRAIN_TYPENAME (rack::RadarDataPicker< rack::CartesianODIM >)
 

Variables

const double DEG2RAD
 
const double RAD2DEG
 
const int EARTH_RADIUSi
 
const double EARTH_RADIUS
 

Detailed Description

See also radar::Compositor

See also radar::Composite

Part of Rack development has been done in the BALTRAD projects part-financed by the European Union (European Regional Development Fund and European Neighbourhood Partnership Instrument, Baltic Sea Region Programme 2007-2013)

Copyright 2001 - 2010 Markus Peura, Finnish Meteorological Institute (First.nosp@m..Las.nosp@m.t@fmi.nosp@m..fi)

This file is part of Rack for C++.

Rack is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

Rack is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser Public License for more details.

You should have received a copy of the GNU General Public License along with Rack. If not, see http://www.gnu.org/licenses/.

Typedef Documentation

◆ FlexibleVariable

Value container supporting dynamic type with own memory and optional linking (referencing) of external variables.

 drain::FlexibleVariable combines properties of drain::Variable and drain::Reference : it has memory of its own but
 can also be linked to external variables.

FlexibleVariable constructors

FlexibleVariable
FlexibleVariable
Default constructor
V variable; null
Copy constructor
bool b=true; V var(b); V variable(var); true
char c='Y'; V var(c); V variable(var); Y
int i=123; V var(i); V variable(var); 123
double d=45.678; V var(d); V variable(var); 45.678
std::string str("Test"); V var(str); V variable(var); "Test" ©
UniTuple2i uni2i(INIT_2i); V var(uni2i); V variable(var); 12,34
UniTuple3d uni3d(INIT_3d); V var(uni3d); V variable(var); 5.6,7.8,9
Copy constructor variants
int i=123; Variable var(i); V variable(var); 123
int i=123; FlexibleVariable var(i); V variable(var); 123
int i=123; FlexibleVariable var; var.link(i); V variable(var); 123 ®
int i=123; Reference var(i); V variable(var); 123 ®
std::string str("Test"); Variable var(str); V variable(var); "Test" ©
std::string str("Test"); FlexibleVariable var(str); V variable(var); "Test" ©
std::string str("Test"); FlexibleVariable var; var.link(str); V variable(var); "Test" ®
std::string str("Test"); Reference var(str); V variable(var); "Test" ®
UniTuple3d uni3d(INIT_3d); Variable var(uni3d); V variable(var); 5.6,7.8,9
UniTuple3d uni3d(INIT_3d); FlexibleVariable var(uni3d); V variable(var); 5.6,7.8,9
UniTuple3d uni3d(INIT_3d); FlexibleVariable var; var.link(uni3d); V variable(var); 5.6,7.8,9 ®
UniTuple3d uni3d(INIT_3d); Reference var(uni3d); V variable(var); 5.6,7.8,9 ®
Non-const variable arg
bool b=true; V variable(b); true
char c='Y'; V variable(c); Y
int i=123; V variable(i); 123
double d=45.678; V variable(d); 45.678
std::string str("Test"); V variable(str); "Test" ©
UniTuple2i uni2i(INIT_2i) V variable(uni2i); 12,34
UniTuple3d uni3d(INIT_3d) V variable(uni3d); 5.6,7.8,9
Type initialisation
V variable(typeid(bool)); null
V variable(typeid(char)); null
V variable(typeid(int)); null
V variable(typeid(double)); null
Initial value
V variable(false); false
V variable('X'); X
V variable(12345); 12345
V variable(56.789); 56.789
V variable("Hello!"); "Hello!" ©
V variable(std::string("Test")); "Test" ©
V variable(UniTuple2i(INIT_2i)); 12,34
V variable(UniTuple3d(INIT_3d)); 5.6,7.8,9
Const variable
const bool b=true; V variable(b); true
const char c='Y'; V variable(c); Y
const int i=123; V variable(i); 123
const double d=45.678; V variable(d); 45.678
const std::string str("Test"); V variable(str); "Test" ©
const char *s="123abc"; V variable(s); "123abc" ©
UniTuple2i ut(INIT_2i); V variable(ut); 12,34
UniTuple3d ut(INIT_3d); V variable(ut); 5.6,7.8,9
Constructor with assignment
V variable = true; true
V variable = 'Z'; Z
V variable = 1234; 1234
V variable = 345.67; 345.67
V variable = "12.34567"; "12.34567" ©
V variable = INIT_2i; 12,34
V variable = UniTuple3d(INIT_3d); 5.6,7.8,9

FlexibleVariable assignments

FlexibleVariable - assignments
input FlexibleVariable
type value bool unsigned char char short int unsigned long float double char-array
bool false false 0 0 0 0 0 "0" ©
bool true true   1 1 1 1 1 "1" ©
int 123 true { { 123 123 123 123 123 "123" ©
float 12.345f true 12 12 12 12.345 12.345 "12.345" ©
double 3.14159265358979323846 true   3 3 3 3.14159 3.14159 "3.14159" ©
double 314.15926E-02 true   3 3 3 3.14159 3.14159 "3.14159" ©
std::string "Hello!" false H 0 0 0 0 0 "Hello!" ©
std::string "true" true t 0 0 0 0 0 "true" ©
std::string "false" false f 0 0 0 0 0 "false" ©
std::string "3141592E-6" true Ø 3 -4136 3141592 3141592 3.14159 3.14159 "3141592E-6" ©
const char * "Test" false T 0 0 0 0 0 "Test" ©
const char * "true" true t 0 0 0 0 0 "true" ©
const char * "false" false f 0 0 0 0 0 "false" ©
UniTuple<2,int> uni2i true,true ," ," 12,34 12,34 12,34 12,34 12,34 "12,34" ©
UniTuple<3,double> uni3d true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©
void * nullptr false n 0 0 0 0 0 "nullptr" ©
Variables...
int i=123 Variable(i) true { { 123 123 123 123 123 "123" ©
int i=123 FlexibleVariable(i) true { { 123 123 123 123 123 "123" ©
int i=123 Reference(i) true { { 123 123 123 123 123 "123" ©
std::string s("test") Variable(s) false t 0 0 0 0 0 "test" ©
std::string s("test") FlexibleVariable(s) false t 0 0 0 0 0 "test" ©
std::string s("test") Reference(s) false t 0 0 0 0 0 "test" ©
UniTuple Variable(uni3d) true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©
UniTuple FlexibleVariable(uni3d) true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©
UniTuple Reference(uni3d) true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©

Variable

See the combined review of drain::Variable, drain::Reference and drain::FlexibleVariable in the documentation of template drain::VariableT .

See also
VariableT
Reference
Variable

◆ Reference

Variable-like that is linked to a standard variable: double, int, std::string . Supports multi-element arrays through drain::UniTuple.

drain::Reference does not have memory of its own. The type of reference cannot be changed – it is that of the referenced variable.

The only character string type supported is std::string .

Currently, the only multi-element structure supported is drain::UniTuple<>, which has a fixed start address for its elements. In future, STL Sequences like std::vectors may be supported.

Reference does not support STL containers.

This class is best illustrated together with its counterparts supporting own memory, Variable and FlexibleVariable

Reference constructors

Reference
Reference
Default constructor
V variable; null
Copy constructor
bool b=true; V var(b); V variable(var); true ®
char c='Y'; V var(c); V variable(var); Y ®
int i=123; V var(i); V variable(var); 123 ®
double d=45.678; V var(d); V variable(var); 45.678 ®
std::string str("Test"); V var(str); V variable(var); "Test" ®
UniTuple2i uni2i(INIT_2i); V var(uni2i); V variable(var); 12,34 ®
UniTuple3d uni3d(INIT_3d); V var(uni3d); V variable(var); 5.6,7.8,9 ®
Copy constructor variants
int i=123; Variable var(i); V variable(var); null
int i=123; FlexibleVariable var(i); V variable(var); null
int i=123; FlexibleVariable var; var.link(i); V variable(var); 123 ®
int i=123; Reference var(i); V variable(var); 123 ®
std::string str("Test"); Variable var(str); V variable(var); null
std::string str("Test"); FlexibleVariable var(str); V variable(var); null
std::string str("Test"); FlexibleVariable var; var.link(str); V variable(var); "Test" ®
std::string str("Test"); Reference var(str); V variable(var); "Test" ®
UniTuple3d uni3d(INIT_3d); Variable var(uni3d); V variable(var); null
UniTuple3d uni3d(INIT_3d); FlexibleVariable var(uni3d); V variable(var); null
UniTuple3d uni3d(INIT_3d); FlexibleVariable var; var.link(uni3d); V variable(var); 5.6,7.8,9 ®
UniTuple3d uni3d(INIT_3d); Reference var(uni3d); V variable(var); 5.6,7.8,9 ®
Non-const variable arg
bool b=true; V variable(b); true ®
char c='Y'; V variable(c); Y ®
int i=123; V variable(i); 123 ®
double d=45.678; V variable(d); 45.678 ®
std::string str("Test"); V variable(str); "Test" ®
UniTuple2i uni2i(INIT_2i) V variable(uni2i); 12,34 ®
UniTuple3d uni3d(INIT_3d) V variable(uni3d); 5.6,7.8,9 ®

Reference assignments

Reference - assignments
input Reference
type value bool unsigned char char short int unsigned long float double std::string
bool false false ® ® ® 0 ® 0 ® 0 ® 0 ® 0 ® "0" ®
bool true true ®  ®  ® 1 ® 1 ® 1 ® 1 ® 1 ® "1" ®
int 123 true ® { ® { ® 123 ® 123 ® 123 ® 123 ® 123 ® "123" ®
float 12.345f true ® ® ® 12 ® 12 ® 12 ® 12.345 ® 12.345 ® "12.345" ®
double 3.14159265358979323846 true ®  ®  ® 3 ® 3 ® 3 ® 3.14159 ® 3.14159 ® "3.14159" ®
double 314.15926E-02 true ®  ®  ® 3 ® 3 ® 3 ® 3.14159 ® 3.14159 ® "3.14159" ®
std::string "Hello!" false ® ® H ® 0 ® 0 ® 0 ® 0 ® 0 ® "Hello!" ®
std::string "true" true ® ® t ® 0 ® 0 ® 0 ® 0 ® 0 ® "true" ®
std::string "false" false ® ® f ® 0 ® 0 ® 0 ® 0 ® 0 ® "false" ®
std::string "3141592E-6" true ® Ø Â® 3 ® -4136 ® 3141592 ® 3141592 ® 3.14159 ® 3.14159 ® "3141592E-6" ®
const char * "Test" false ® ® T ® 0 ® 0 ® 0 ® 0 ® 0 ® "Test" ®
const char * "true" true ® ® t ® 0 ® 0 ® 0 ® 0 ® 0 ® "true" ®
const char * "false" false ® ® f ® 0 ® 0 ® 0 ® 0 ® 0 ® "false" ®
UniTuple<2,int> uni2i true ® ® ® 12 ® 12 ® 12 ® 12 ® 12 ® "12,34" ®
UniTuple<3,double> uni3d true ®  ®  ® 5 ® 5 ® 5 ® 5.6 ® 5.6 ® "5.6,7.8,9" ®
void * nullptr false ® ® n ® 0 ® 0 ® 0 ® 0 ® 0 ® "nullptr" ®
Variables...
int i=123 Variable(i) true ® { ® { ® 123 ® 123 ® 123 ® 123 ® 123 ® "123" ®
int i=123 FlexibleVariable(i) true ® { ® { ® 123 ® 123 ® 123 ® 123 ® 123 ® "123" ®
int i=123 Reference(i) true ® { ® { ® 123 ® 123 ® 123 ® 123 ® 123 ® "123" ®
std::string s("test") Variable(s) false ® ® t ® 0 ® 0 ® 0 ® 0 ® 0 ® "test" ®
std::string s("test") FlexibleVariable(s) false ® ® t ® 0 ® 0 ® 0 ® 0 ® 0 ® "test" ®
std::string s("test") Reference(s) false ® ® t ® 0 ® 0 ® 0 ® 0 ® 0 ® "test" ®
UniTuple Variable(uni3d) true ®  ®  ® 5 ® 5 ® 5 ® 5.6 ® 5.6 ® "5.6,7.8,9" ®
UniTuple FlexibleVariable(uni3d) true ®  ®  ® 5 ® 5 ® 5 ® 5.6 ® 5.6 ® "5.6,7.8,9" ®
UniTuple Reference(uni3d) true ®  ®  ® 5 ® 5 ® 5 ® 5.6 ® 5.6 ® "5.6,7.8,9" ®

See the documentation of drain::VariableT template specialized by drain::Variable, drain::Reference and drain::FlexibleVariable .

See also
VariableT
Variable
FlexibleVariable

◆ Variable

typedef DRAIN_VARIABLE Variable

Value container supporting dynamic type.

drain::Variable has memory of its own, and cannot be linked to external variables like drain::Reference and drain::FlexibleVariable .

Reference constructors

Variable
Variable
Default constructor
V variable; null
Copy constructor
bool b=true; V var(b); V variable(var); true
char c='Y'; V var(c); V variable(var); Y
int i=123; V var(i); V variable(var); 123
double d=45.678; V var(d); V variable(var); 45.678
std::string str("Test"); V var(str); V variable(var); "Test" ©
UniTuple2i uni2i(INIT_2i); V var(uni2i); V variable(var); 12,34
UniTuple3d uni3d(INIT_3d); V var(uni3d); V variable(var); 5.6,7.8,9
Copy constructor variants
int i=123; Variable var(i); V variable(var); 123
int i=123; FlexibleVariable var(i); V variable(var); 123
int i=123; FlexibleVariable var; var.link(i); V variable(var); 123
int i=123; Reference var(i); V variable(var); 123
std::string str("Test"); Variable var(str); V variable(var); "Test" ©
std::string str("Test"); FlexibleVariable var(str); V variable(var); "Test" ©
std::string str("Test"); FlexibleVariable var; var.link(str); V variable(var); "Test" ©
std::string str("Test"); Reference var(str); V variable(var); "Test" ©
UniTuple3d uni3d(INIT_3d); Variable var(uni3d); V variable(var); 5.6,7.8,9
UniTuple3d uni3d(INIT_3d); FlexibleVariable var(uni3d); V variable(var); 5.6,7.8,9
UniTuple3d uni3d(INIT_3d); FlexibleVariable var; var.link(uni3d); V variable(var); 5.6,7.8,9
UniTuple3d uni3d(INIT_3d); Reference var(uni3d); V variable(var); 5.6,7.8,9
Non-const variable arg
bool b=true; V variable(b); true
char c='Y'; V variable(c); Y
int i=123; V variable(i); 123
double d=45.678; V variable(d); 45.678
std::string str("Test"); V variable(str); "Test" ©
UniTuple2i uni2i(INIT_2i) V variable(uni2i); 12,34
UniTuple3d uni3d(INIT_3d) V variable(uni3d); 5.6,7.8,9
Type initialisation
V variable(typeid(bool)); null
V variable(typeid(char)); null
V variable(typeid(int)); null
V variable(typeid(double)); null
Initial value
V variable(false); false
V variable('X'); X
V variable(12345); 12345
V variable(56.789); 56.789
V variable("Hello!"); "Hello!" ©
V variable(std::string("Test")); "Test" ©
V variable(UniTuple2i(INIT_2i)); 12,34
V variable(UniTuple3d(INIT_3d)); 5.6,7.8,9
Const variable
const bool b=true; V variable(b); true
const char c='Y'; V variable(c); Y
const int i=123; V variable(i); 123
const double d=45.678; V variable(d); 45.678
const std::string str("Test"); V variable(str); "Test" ©
const char *s="123abc"; V variable(s); "123abc" ©
UniTuple2i ut(INIT_2i); V variable(ut); 12,34
UniTuple3d ut(INIT_3d); V variable(ut); 5.6,7.8,9
Constructor with assignment
V variable = true; true
V variable = 'Z'; Z
V variable = 1234; 1234
V variable = 345.67; 345.67
V variable = "12.34567"; "12.34567" ©
V variable = INIT_2i; 12,34
V variable = UniTuple3d(INIT_3d); 5.6,7.8,9

Reference assignments

Variable - assignments
input Variable
type value bool unsigned char char short int unsigned long float double char-array
bool false false 0 0 0 0 0 "0" ©
bool true true   1 1 1 1 1 "1" ©
int 123 true { { 123 123 123 123 123 "123" ©
float 12.345f true 12 12 12 12.345 12.345 "12.345" ©
double 3.14159265358979323846 true   3 3 3 3.14159 3.14159 "3.14159" ©
double 314.15926E-02 true   3 3 3 3.14159 3.14159 "3.14159" ©
std::string "Hello!" false H 0 0 0 0 0 "Hello!" ©
std::string "true" true t 0 0 0 0 0 "true" ©
std::string "false" false f 0 0 0 0 0 "false" ©
std::string "3141592E-6" true Ø 3 -4136 3141592 3141592 3.14159 3.14159 "3141592E-6" ©
const char * "Test" false T 0 0 0 0 0 "Test" ©
const char * "true" true t 0 0 0 0 0 "true" ©
const char * "false" false f 0 0 0 0 0 "false" ©
UniTuple<2,int> uni2i true,true ," ," 12,34 12,34 12,34 12,34 12,34 "12,34" ©
UniTuple<3,double> uni3d true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©
void * nullptr false n 0 0 0 0 0 "nullptr" ©
Variables...
int i=123 Variable(i) true { { 123 123 123 123 123 "123" ©
int i=123 FlexibleVariable(i) true { { 123 123 123 123 123 "123" ©
int i=123 Reference(i) true { { 123 123 123 123 123 "123" ©
std::string s("test") Variable(s) false t 0 0 0 0 0 "test" ©
std::string s("test") FlexibleVariable(s) false t 0 0 0 0 0 "test" ©
std::string s("test") Reference(s) false t 0 0 0 0 0 "test" ©
UniTuple Variable(uni3d) true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©
UniTuple FlexibleVariable(uni3d) true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©
UniTuple Reference(uni3d) true,true,true ,, ,, 5,7,9 5,7,9 5,7,9 5.6,7.8,9 5.6,7.8,9 "5.6,7.8,9" ©

See the documentation of drain::VariableT template specialized by drain::Variable, drain::Reference and drain::FlexibleVariable .

See also
VariableT
Reference
FlexibleVariable

Function Documentation

◆ DRAIN_TYPENAME_DEF() [1/2]

drain::DRAIN_TYPENAME_DEF ( KeySelector  )

In future, the recommended way to define desired/accepted quantities is a comma-separated list of keys.

◆ DRAIN_TYPENAME_DEF() [2/2]

drain::DRAIN_TYPENAME_DEF ( rack::RadarDataPicker< rack::PolarODIM )

This policy suggests typedef + spacialization for the actual classes, as well.

◆ getFunctor()

UnaryFunctor & getFunctor ( const std::string &  nameAndParams,
char  separator = ',' 
)

Returns functor the parameters of which have been set.

Parameters
separator-

◆ getFunctorBank()

FunctorBank & getFunctorBank ( )

Shared functor bank

◆ operator<<() [1/2]

std::ostream& drain::operator<< ( std::ostream &  ostr,
const CommandSequence< T > &  commands 
)
inline

Array layout: elements (of the Sequence) will be separated by newline. Map layout {,}: unused - or something is going wrong. Pair layout : key=value String layout: plain, because keys are strings but not desired to be hyphenated. (Future extensions of Sprinter will separate keys and values?)

◆ operator<<() [2/2]

std::ostream& drain::operator<< ( std::ostream &  ostr,
const image::TreeGDAL &  tree 
)
inline

Write tree using XML notation.

This function does not write the XML header containing document type info.

See also
NodeXML::toStream()
NodeXML::docToStream()

◆ polynomialFit2nd()

void drain::polynomialFit2nd ( const T &  src,
const T &  weight,
std::vector< double > &  coeff 
)

Fits a 2nd order polynomial to a curve.

If matrix inversion fails (probablt due to undetectValue determinant), the std::runtime_error thrown by inverse() is passed through.

◆ somToImage()

void drain::somToImage ( const Som< T > &  som,
drain::image::Image image,
int  width = 0,
int  height = 0,
const std::vector< int > &  channels = std::vector<int>() 
)

Squared Euclidean distance for vectors and similar.

The Self-Organising Map by Teuvo Kohonen.

The template

The coordinates of the map apply matrix convention ie. map[i][j] refers to element j on row i. The map is implemented a std::vector<vector<T> > . Generates a vector with values 0...255 sampled from uniform distribution. Utility to write contents of a vector SOM to a graylevel or RGB image.