IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Classes | Namespaces | Macros
MeasureInfoHdrMacros.h File Reference

Header part of macro set used for shape measure information class declaration. More...

#include <IPSDKBaseShapeAnalysis/Measure/Info/BaseMeasureInfo.h>
#include <IPSDKBaseShapeAnalysis/Measure/Result/MeasureResultTypes.h>
#include <IPSDKBaseData/ToolTip/ToolTipHdrMacros.h>
#include <IPSDKBaseData/DataItem/DataItemTypes.h>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/seq.hpp>
#include <boost/preprocessor/if.hpp>
#include <boost/preprocessor/dec.hpp>
#include <boost/preprocessor/comparison/equal.hpp>
#include <boost/smart_ptr/make_shared_object.hpp>
#include <boost/make_shared.hpp>

Go to the source code of this file.

Classes

struct  ipsdk::shape::analysis::ShapeMeasureInfoRegistrator< T >
 registrator class for shape measure information objects More...
 

Namespaces

 ipsdk
 Main namespace for IPSDK library.
 
 ipsdk::shape::analysis
 Namespace aggregating basic shape analysis components.
 

Macros

#define IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, msrProcessingPolicy, msrShapeRequirements, msrUnitFormat)
 [Internal] macro allowing to declare measure information body
 
#define IPSDK_DECLARE_MEASURE_PARAMS(msrName)
 [Internal] macro allowing to declare measure parameters More...
 
#define IPSDK_DECLARE_MEASURE_NO_PARAMS()
 [Internal] macro allowing to declare measure without parameters More...
 
#define IPSDK_DECLARE_MEASURE_DEPENDENCY(msrInfo)
 [Internal] macro allowing to declare a measure dependency More...
 
#define IPSDK_DECLARE_MEASURE_DEPENDENCIES_MACRO(r, _, i, msrInfo)   BOOST_PP_IF(i, IPSDK_DECLARE_MEASURE_DEPENDENCY(msrInfo), )
 [Internal] macro allowing to declare dependencies for a measure
 
#define IPSDK_DECLARE_MEASURE_DEPENDENCIES(msrInfoSeq, _)
 [Internal] macro allowing to declare dependencies for a measure More...
 
#define IPSDK_MEASURE_NO_DEPENDENCY
 macro allowing to declare a measure without dependency
 
#define IPSDK_DECLARE_INDIVISIBLE_MEASURE_INFO_WITHOUT_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrUnitFormat)
 macro allowing to declare a indivisible measure information More...
 
#define IPSDK_DECLARE_GENERIC_MEASURE_INFO_WITHOUT_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrUnitFormat)
 macro allowing to declare a generic measure information More...
 
#define IPSDK_DECLARE_GEOMETRY2D_MEASURE_INFO_WITHOUT_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrShapeRequirements, msrUnitFormat)
 macro allowing to declare a geometry 2d measure information More...
 
#define IPSDK_DECLARE_GEOMETRY3D_MEASURE_INFO_WITHOUT_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrShapeRequirements, msrUnitFormat)
 macro allowing to declare a geometry 3d measure information More...
 
#define IPSDK_DECLARE_INTENSITY_MEASURE_INFO_WITHOUT_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrUnitFormat)
 macro allowing to declare an intensity measure information More...
 
#define IPSDK_DECLARE_INDIVISIBLE_MEASURE_INFO_WITH_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrUnitFormat)
 macro allowing to declare a indivisible measure information More...
 
#define IPSDK_DECLARE_GENERIC_MEASURE_INFO_WITH_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrUnitFormat)
 macro allowing to declare a generic measure information More...
 
#define IPSDK_DECLARE_GEOMETRY2D_MEASURE_INFO_WITH_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrShapeRequirements, msrUnitFormat)
 macro allowing to declare a geometry 2d measure information More...
 
#define IPSDK_DECLARE_GEOMETRY3D_MEASURE_INFO_WITH_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrShapeRequirements, msrUnitFormat)
 macro allowing to declare a geometry 3d measure information More...
 
#define IPSDK_DECLARE_INTENSITY_MEASURE_INFO_WITH_PARAMS(libraryName, msrName, msrResultType, msrDependSeq, msrUnitFormat)
 macro allowing to declare an intensity measure information More...
 

Detailed Description

Header part of macro set used for shape measure information class declaration.

Author
E. Noirfalise
Date
2015/07/01

Macro Definition Documentation

◆ IPSDK_DECLARE_MEASURE_PARAMS

#define IPSDK_DECLARE_MEASURE_PARAMS (   msrName)
Value:
public: \
typedef BOOST_PP_CAT(msrName, MsrParams) MsrParamsType; \
typedef const BOOST_PP_CAT(msrName, MsrParams) MsrParamsConstType; \
typedef boost::shared_ptr<MsrParamsType> MsrParamsStorageType; \
typedef boost::shared_ptr<MsrParamsConstType> MsrParamsConstStorageType; \
ipsdk::DataItemPtr createDefaultParams() const { \
boost::shared_ptr<MsrParamsType> pDefaultParams( \
boost::make_shared<MsrParamsType>()); \
return pDefaultParams; \
} \
void initDerived() { \
_pMsrParams = boost::static_pointer_cast<MsrParamsConstType>(getMsrParams()); \
} \
protected: \
MsrParamsConstStorageType _pMsrParams;
boost::shared_ptr< BaseDataItem > DataItemPtr
shared pointer to DataItem
Definition: DataItemTypes.h:146

[Internal] macro allowing to declare measure parameters

◆ IPSDK_DECLARE_MEASURE_NO_PARAMS

#define IPSDK_DECLARE_MEASURE_NO_PARAMS ( )
Value:
public: \
typedef ipsdk::BaseDataItem MsrParamsType; \
typedef const ipsdk::BaseDataItem MsrParamsConstType; \
typedef boost::shared_ptr<MsrParamsType> MsrParamsStorageType; \
typedef boost::shared_ptr<MsrParamsConstType> MsrParamsConstStorageType; \
void initDerived() { \
}
Base class for data items.
Definition: BaseDataItem.h:27

[Internal] macro allowing to declare measure without parameters

◆ IPSDK_DECLARE_MEASURE_DEPENDENCY

#define IPSDK_DECLARE_MEASURE_DEPENDENCY (   msrInfo)
Value:
{ \
ipsdk::shape::analysis::eMsrVolumePolicy::BOOST_PP_SEQ_ELEM(0, msrInfo); \
if ((b2dMsrMode == true && volumePolicy != ipsdk::shape::analysis::eMsrVolumePolicy::eMVP_3d) || \
(b2dMsrMode == false && volumePolicy != ipsdk::shape::analysis::eMsrVolumePolicy::eMVP_2d)) { \
std::string dependencyName = BOOST_PP_STRINGIZE(BOOST_PP_SEQ_ELEM(1, msrInfo)); \
std::string dependencyDefaultName = \
BOOST_PP_STRINGIZE(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(2, msrInfo), Msr)); \
pDependencyConfig = BOOST_PP_IF(BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(msrInfo), 5), \
BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(msrInfo))), msrInfo), \
getMsrConfig()); \
ipsdk::DataItemConstPtr pDependencyParams; \
BOOST_PP_IF(BOOST_PP_GREATER_EQUAL(BOOST_PP_SEQ_SIZE(msrInfo), 4), \
pDependencyParams = BOOST_PP_SEQ_ELEM( \
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(msrInfo)), msrInfo), ); \
addDependency(dependencyName, dependencyDefaultName, \
pDependencyConfig, pDependencyParams); \
} \
}
measure can only be used in 3d case
Definition: MeasureInfoTypes.h:64
boost::shared_ptr< const MeasureConfig > MeasureConfigConstPtr
shared pointer to const MeasureConfig object
Definition: MeasureConfigTypes.h:89
boost::shared_ptr< const BaseDataItem > DataItemConstPtr
shared pointer to const DataItem
Definition: DataItemTypes.h:149
eMsrVolumePolicy
Enumerate describing measure volume policy.
Definition: MeasureInfoTypes.h:60
measure can only be used in 2d case
Definition: MeasureInfoTypes.h:62

[Internal] macro allowing to declare a measure dependency

IPSDK_DECLARE_MEASURE_DEPENDENCY(msrInfo)

◆ IPSDK_DECLARE_MEASURE_DEPENDENCIES

#define IPSDK_DECLARE_MEASURE_DEPENDENCIES (   msrInfoSeq,
 
)
Value:
protected: \
void createDependencies(const bool b2dMsrMode) { \
BOOST_PP_SEQ_FOR_EACH_I(IPSDK_DECLARE_MEASURE_DEPENDENCIES_MACRO, \
_, ((_)(_)(_))msrInfoSeq) \
}
#define IPSDK_DECLARE_MEASURE_DEPENDENCIES_MACRO(r, _, i, msrInfo)
[Internal] macro allowing to declare dependencies for a measure
Definition: MeasureInfoHdrMacros.h:149

[Internal] macro allowing to declare dependencies for a measure

with sequence format : (volumePolicy)(msrName)(msrDefaultName)(optionalParams)

◆ IPSDK_DECLARE_INDIVISIBLE_MEASURE_INFO_WITHOUT_PARAMS

#define IPSDK_DECLARE_INDIVISIBLE_MEASURE_INFO_WITHOUT_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_NO_PARAMS() \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
generic measure using no input data for processing and requesting a single pass processing ...
Definition: MeasureInfoTypes.h:44
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39
measure do not need any data from shape
Definition: MeasureInfoTypes.h:88

macro allowing to declare a indivisible measure information

◆ IPSDK_DECLARE_GENERIC_MEASURE_INFO_WITHOUT_PARAMS

#define IPSDK_DECLARE_GENERIC_MEASURE_INFO_WITHOUT_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_NO_PARAMS() \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
generic measure using no input data for processing
Definition: MeasureInfoTypes.h:46
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39
measure do not need any data from shape
Definition: MeasureInfoTypes.h:88

macro allowing to declare a generic measure information

◆ IPSDK_DECLARE_GEOMETRY2D_MEASURE_INFO_WITHOUT_PARAMS

#define IPSDK_DECLARE_GEOMETRY2D_MEASURE_INFO_WITHOUT_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrShapeRequirements,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_NO_PARAMS() \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
eMPP_Geometry2d, msrShapeRequirements, msrUnitFormat)
geometry measure using shape 2d data for processing
Definition: MeasureInfoTypes.h:48
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39

macro allowing to declare a geometry 2d measure information

◆ IPSDK_DECLARE_GEOMETRY3D_MEASURE_INFO_WITHOUT_PARAMS

#define IPSDK_DECLARE_GEOMETRY3D_MEASURE_INFO_WITHOUT_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrShapeRequirements,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_NO_PARAMS() \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
eMPP_Geometry3d, msrShapeRequirements, msrUnitFormat)
geometry measure using shape 3d data for processing
Definition: MeasureInfoTypes.h:50
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39

macro allowing to declare a geometry 3d measure information

◆ IPSDK_DECLARE_INTENSITY_MEASURE_INFO_WITHOUT_PARAMS

#define IPSDK_DECLARE_INTENSITY_MEASURE_INFO_WITHOUT_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_NO_PARAMS() \
bool requiresInputImage() const {return true;} \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
measure requires row intersection data from shape
Definition: MeasureInfoTypes.h:90
virtual bool requiresInputImage() const
check whether measure requires input image
Definition: BaseMeasureInfo.h:95
geometry measure using image data for processing
Definition: MeasureInfoTypes.h:52
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39

macro allowing to declare an intensity measure information

◆ IPSDK_DECLARE_INDIVISIBLE_MEASURE_INFO_WITH_PARAMS

#define IPSDK_DECLARE_INDIVISIBLE_MEASURE_INFO_WITH_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_PARAMS(msrName) \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
generic measure using no input data for processing and requesting a single pass processing ...
Definition: MeasureInfoTypes.h:44
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39
measure do not need any data from shape
Definition: MeasureInfoTypes.h:88

macro allowing to declare a indivisible measure information

◆ IPSDK_DECLARE_GENERIC_MEASURE_INFO_WITH_PARAMS

#define IPSDK_DECLARE_GENERIC_MEASURE_INFO_WITH_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_PARAMS(msrName) \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
generic measure using no input data for processing
Definition: MeasureInfoTypes.h:46
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39
measure do not need any data from shape
Definition: MeasureInfoTypes.h:88

macro allowing to declare a generic measure information

◆ IPSDK_DECLARE_GEOMETRY2D_MEASURE_INFO_WITH_PARAMS

#define IPSDK_DECLARE_GEOMETRY2D_MEASURE_INFO_WITH_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrShapeRequirements,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_PARAMS(msrName) \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
eMPP_Geometry2d, msrShapeRequirements, msrUnitFormat)
geometry measure using shape 2d data for processing
Definition: MeasureInfoTypes.h:48
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39

macro allowing to declare a geometry 2d measure information

◆ IPSDK_DECLARE_GEOMETRY3D_MEASURE_INFO_WITH_PARAMS

#define IPSDK_DECLARE_GEOMETRY3D_MEASURE_INFO_WITH_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrShapeRequirements,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_PARAMS(msrName) \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
eMPP_Geometry3d, msrShapeRequirements, msrUnitFormat)
geometry measure using shape 3d data for processing
Definition: MeasureInfoTypes.h:50
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39

macro allowing to declare a geometry 3d measure information

◆ IPSDK_DECLARE_INTENSITY_MEASURE_INFO_WITH_PARAMS

#define IPSDK_DECLARE_INTENSITY_MEASURE_INFO_WITH_PARAMS (   libraryName,
  msrName,
  msrResultType,
  msrDependSeq,
  msrUnitFormat 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, MsrInfo) : \
IPSDK_DECLARE_MEASURE_PARAMS(msrName) \
bool requiresInputImage() const {return true;} \
IPSDK_DECLARE_MEASURE_INFO_BODY(libraryName, msrName, msrResultType, msrDependSeq, \
msrUnitFormat)
measure requires row intersection data from shape
Definition: MeasureInfoTypes.h:90
virtual bool requiresInputImage() const
check whether measure requires input image
Definition: BaseMeasureInfo.h:95
geometry measure using image data for processing
Definition: MeasureInfoTypes.h:52
Base class for shape analysis measurement informations.
Definition: BaseMeasureInfo.h:39

macro allowing to declare an intensity measure information