CTL  0.6.1
Computed Tomography Library
Classes | Typedefs | Functions
abstractdatamodel.h File Reference
#include "io/serializationinterface.h"
#include "copyableuniqueptr.h"
Include dependency graph for abstractdatamodel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CTL::AbstractDataModel
 The AbstractDataModel class is the base class for basic data models. More...
 
class  CTL::AbstractIntegrableDataModel
 The AbstractIntegrableDataModel class is the base class for data models that provide a means to integrate the contained data. More...
 

Typedefs

template<class ModelType , class = typename std::enable_if<std::is_convertible<ModelType*, AbstractDataModel*>::value>::type>
using CTL::DataModelPtr = CopyableUniquePtr< ModelType >
 
using CTL::AbstractDataModelPtr = DataModelPtr< AbstractDataModel >
 

Functions

std::shared_ptr< AbstractDataModel > CTL::operator+ (std::shared_ptr< AbstractDataModel > lhs, std::shared_ptr< AbstractDataModel > rhs)
 
std::shared_ptr< AbstractDataModel > CTL::operator- (std::shared_ptr< AbstractDataModel > lhs, std::shared_ptr< AbstractDataModel > rhs)
 
std::shared_ptr< AbstractDataModel > CTL::operator * (std::shared_ptr< AbstractDataModel > lhs, std::shared_ptr< AbstractDataModel > rhs)
 
std::shared_ptr< AbstractDataModel > CTL::operator/ (std::shared_ptr< AbstractDataModel > lhs, std::shared_ptr< AbstractDataModel > rhs)
 
std::shared_ptr< AbstractDataModel > CTL::operator| (std::shared_ptr< AbstractDataModel > lhs, std::shared_ptr< AbstractDataModel > rhs)
 
std::shared_ptr< AbstractDataModel > & CTL::operator+= (std::shared_ptr< AbstractDataModel > &lhs, const std::shared_ptr< AbstractDataModel > &rhs)
 
std::shared_ptr< AbstractDataModel > & CTL::operator-= (std::shared_ptr< AbstractDataModel > &lhs, const std::shared_ptr< AbstractDataModel > &rhs)
 
std::shared_ptr< AbstractDataModel > & CTL::operator *= (std::shared_ptr< AbstractDataModel > &lhs, const std::shared_ptr< AbstractDataModel > &rhs)
 
std::shared_ptr< AbstractDataModel > & CTL::operator/= (std::shared_ptr< AbstractDataModel > &lhs, const std::shared_ptr< AbstractDataModel > &rhs)
 
std::shared_ptr< AbstractDataModel > & CTL::operator|= (std::shared_ptr< AbstractDataModel > &lhs, const std::shared_ptr< AbstractDataModel > &rhs)
 
std::shared_ptr< AbstractIntegrableDataModel > CTL::operator+ (std::shared_ptr< AbstractIntegrableDataModel > lhs, std::shared_ptr< AbstractIntegrableDataModel > rhs)
 
std::shared_ptr< AbstractIntegrableDataModel > CTL::operator- (std::shared_ptr< AbstractIntegrableDataModel > lhs, std::shared_ptr< AbstractIntegrableDataModel > rhs)
 
std::shared_ptr< AbstractIntegrableDataModel > & CTL::operator+= (std::shared_ptr< AbstractIntegrableDataModel > &lhs, const std::shared_ptr< AbstractIntegrableDataModel > &rhs)
 
std::shared_ptr< AbstractIntegrableDataModel > & CTL::operator-= (std::shared_ptr< AbstractIntegrableDataModel > &lhs, const std::shared_ptr< AbstractIntegrableDataModel > &rhs)
 
template<typename DataModel1 , typename DataModel2 >
auto CTL::operator+ (std::shared_ptr< DataModel1 > lhs, std::shared_ptr< DataModel2 > rhs) -> typename std::enable_if< std::is_convertible< DataModel1 *, AbstractIntegrableDataModel * >::value &&std::is_convertible< DataModel2 *, AbstractIntegrableDataModel * >::value, std::shared_ptr< AbstractIntegrableDataModel >>::type
 
template<typename DataModel1 , typename DataModel2 >
auto CTL::operator- (std::shared_ptr< DataModel1 > lhs, std::shared_ptr< DataModel2 > rhs) -> typename std::enable_if< std::is_convertible< DataModel1 *, AbstractIntegrableDataModel * >::value &&std::is_convertible< DataModel2 *, AbstractIntegrableDataModel * >::value, std::shared_ptr< AbstractIntegrableDataModel >>::type
 
template<typename ModelType , typename... ConstructorArguments>
auto CTL::makeDataModel (ConstructorArguments &&... arguments) -> typename std::enable_if< std::is_convertible< ModelType *, AbstractDataModel * >::value, std::unique_ptr< ModelType >>::type