IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Macros
MeasureHdrMacros.h File Reference

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

#include <IPSDKBaseShapeAnalysis/Measure/BaseIndivisibleMeasure.h>
#include <IPSDKBaseShapeAnalysis/Measure/BaseGenericMeasure.h>
#include <IPSDKBaseShapeAnalysis/Measure/BaseGeometry2dMeasure.h>
#include <IPSDKBaseShapeAnalysis/Measure/BaseGeometry3dMeasure.h>
#include <IPSDKBaseShapeAnalysis/Measure/BaseIntensityMeasure.h>
#include <IPSDKBaseShapeAnalysis/Measure/Result/ValueMeasureResult.h>
#include <IPSDKBaseShapeAnalysis/Measure/Result/CollMeasureResult.h>
#include <IPSDKUtil/Tools/ProcessingResult.h>
#include <boost/type_traits/is_same.hpp>
#include <boost/static_assert.hpp>

Go to the source code of this file.

Macros

#define IPSDK_DECLARE_MEASURE_BODY(libraryName, msrName)
 macro allowing to declare measure body More...
 
#define IPSDK_DECLARE_INDIVISIBLE_MEASURE(libraryName, msrName)
 macro allowing to declare a indivisible measure More...
 
#define IPSDK_DECLARE_GENERIC_MEASURE(libraryName, msrName)
 macro allowing to declare a generic measure More...
 
#define IPSDK_DECLARE_GEOMETRY2D_MEASURE(libraryName, msrName)
 macro allowing to declare a geometry 2d measure More...
 
#define IPSDK_DECLARE_GEOMETRY3D_MEASURE(libraryName, msrName)
 macro allowing to declare a geometry 3d measure More...
 
#define IPSDK_DECLARE_INTENSITY_MEASURE(libraryName, msrName)
 macro allowing to declare a intensity measure
 

Detailed Description

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

Author
E. Noirfalise
Date
2015/07/01

Macro Definition Documentation

◆ IPSDK_DECLARE_MEASURE_BODY

#define IPSDK_DECLARE_MEASURE_BODY (   libraryName,
  msrName 
)
Value:
IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, BOOST_PP_CAT(msrName, Msr)) \
friend boost::shared_ptr<BOOST_PP_CAT(msrName, Msr)> \
boost::make_shared<BOOST_PP_CAT(msrName, Msr)>(); \
protected: \
BOOST_PP_CAT(msrName, Msr)(); \
public: \
~BOOST_PP_CAT(msrName, Msr)(); \
typedef BOOST_PP_CAT(msrName, MsrInfo) MsrInfoType; \
typedef MsrInfoType::MsrResultType MsrResultType; \
typedef MsrResultType::CollType MsrResultCollType; \
typedef MsrInfoType::MsrParamsType MsrParamsType; \
typedef MsrInfoType::MsrParamsConstType MsrParamsConstType; \
typedef MsrInfoType::MsrParamsStorageType MsrParamsStorageType; \
typedef MsrInfoType::MsrParamsConstStorageType MsrParamsConstStorageType; \
private: \
static void internalValidateMsrInfo() { \
BOOST_STATIC_ASSERT_MSG((boost::is_same<BaseClassType, \
BOOST_PP_CAT(msrName, MsrInfo)::g_msrProcessingPolicy>::Type> \
::value), \
"Information and measure class type mismatch"); \
} \
ipsdk::shape::analysis::MeasureResultPtr \
startProcessingDerived(const ipsdk::ipUInt64 defaultNbColorPlans, \
const ipsdk::ipUInt64 nbEntities, \
const bool bForceNbColorPlans, \
const bool bWithIgnoredFirstElement); \
const MsrParamsConstStorageType& getMsrParams() const; \
mutable MsrParamsConstStorageType _pMsrDerivedParams;
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
structure allowing to retrieve base measure class given a processing measure policy ...
Definition: MeasureTypes.h:65

macro allowing to declare measure body

◆ IPSDK_DECLARE_INDIVISIBLE_MEASURE

#define IPSDK_DECLARE_INDIVISIBLE_MEASURE (   libraryName,
  msrName 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, Msr) : \
public: \
IPSDK_DECLARE_MEASURE_BODY(libraryName, msrName) \
protected: \
ipsdk::BoolResult \
processMeasure(const ipsdk::ipUInt64 cPlanIdx, \
MsrResultCollType& resultColl); \
ipsdk::BoolResult \
measureDerived(const ipsdk::ipUInt64 cPlanIdx);
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for shape analysis indivisible measurement (generic measure using no input data for proces...
Definition: BaseIndivisibleMeasure.h:29

macro allowing to declare a indivisible measure

◆ IPSDK_DECLARE_GENERIC_MEASURE

#define IPSDK_DECLARE_GENERIC_MEASURE (   libraryName,
  msrName 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, Msr) : \
public: \
IPSDK_DECLARE_MEASURE_BODY(libraryName, msrName) \
public: \
typedef MsrResultType::ValueType MsrResultValueType; \
protected: \
ipsdk::BoolResult \
processMeasure(const ipsdk::ipUInt64 cPlanIdx, \
const ipsdk::ipUInt64 shapeIdx, \
MsrResultValueType& result); \
ipsdk::BoolResult \
measureShapeDerived(const ipsdk::ipUInt64 cPlanIdx, \
const ipsdk::ipUInt64 shapeIdx);
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for shape analysis generic measurement (generic measure using no input data for processing...
Definition: BaseGenericMeasure.h:28

macro allowing to declare a generic measure

◆ IPSDK_DECLARE_GEOMETRY2D_MEASURE

#define IPSDK_DECLARE_GEOMETRY2D_MEASURE (   libraryName,
  msrName 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, Msr) : \
public: \
IPSDK_DECLARE_MEASURE_BODY(libraryName, msrName) \
public: \
typedef MsrResultType::ValueType MsrResultValueType; \
protected: \
ipsdk::BoolResult \
processMeasure(const ipsdk::ipUInt64 shapeIdx, \
const ipsdk::geom::Shape2d& shape2d, \
MsrResultValueType& result); \
ipsdk::BoolResult \
measureShapeDerived(const ipsdk::ipUInt64 shapeIdx, \
const ipsdk::geom::Shape2d& shape2d);
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for shape analysis geometry 2d measurement (geometry measure using shape 2d data for proce...
Definition: BaseGeometry2dMeasure.h:28
Shape 2d associated to one or more closed polygon 2d.
Definition: Shape2d.h:35

macro allowing to declare a geometry 2d measure

◆ IPSDK_DECLARE_GEOMETRY3D_MEASURE

#define IPSDK_DECLARE_GEOMETRY3D_MEASURE (   libraryName,
  msrName 
)
Value:
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(msrName, Msr) : \
public: \
IPSDK_DECLARE_MEASURE_BODY(libraryName, msrName) \
public: \
typedef MsrResultType::ValueType MsrResultValueType; \
protected: \
ipsdk::BoolResult \
processMeasure(const ipsdk::ipUInt64 shapeIdx, \
const ipsdk::geom::Shape3d& shape3d, \
MsrResultValueType& result); \
ipsdk::BoolResult \
measureShapeDerived(const ipsdk::ipUInt64 shapeIdx, \
const ipsdk::geom::Shape3d& shape3d);
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for shape analysis geometry 3d measurement (geometry measure using shape 3d data for proce...
Definition: BaseGeometry3dMeasure.h:28
Shape 3d associated to one or more closed mesh 3d.
Definition: Shape3d.h:34

macro allowing to declare a geometry 3d measure