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

Source part of macros for geometry transform 2d management. More...

#include <IPSDKSerialization/Engine/SerializationSrcMacro.h>
#include <IPSDKGeometry/Entity/2d/Point/Point2d.h>
#include <IPSDKGeometry/Entity/2d/Vector/Vector2d.h>
#include <IPSDKGeometry/Entity/2d/BoundingBox/BoundingBox2d.h>
#include <IPSDKGeometry/Entity/2d/PointCloud/PointCloud2d.h>
#include <IPSDKGeometry/Entity/2d/Polygon/Polygon2d.h>
#include <IPSDKGeometry/Entity/2d/PolygonWithHoles/PolygonWithHoles2d.h>
#include <IPSDKGeometry/Entity/2d/Shape/Shape2d.h>
#include <IPSDKGeometry/Entity/2d/Circle/Circle2d.h>
#include <IPSDKGeometry/Entity/2d/Ellipse/Ellipse2d.h>
#include <IPSDKGeometry/Entity/2d/Square/Square2d.h>
#include <IPSDKGeometry/Entity/2d/Rectangle/Rectangle2d.h>
#include <IPSDKGeometry/Entity/2d/Line/Line2d.h>
#include <IPSDKGeometry/Entity/2d/Parabola/Parabola2d.h>
#include <IPSDKGeometry/Entity/2d/Segment/Segment2d.h>

Go to the source code of this file.

Macros

#define IPSDK_IMPLEMENT_GEOMETRY_TRANSFORM_2D(libraryName, namespaceSeq, className, version)
 Macro allowing to implement a geometry transform 2d. More...
 
#define IPSDK_IMPLEMENT_INSITU_GEOMETRY_TRANSFORM_2D(libraryName, namespaceSeq, className, version)
 Macro allowing to implement an in situ geometry transform 2d. More...
 
#define IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D_MACRO(r, classInfo, type)
 Macro allowing to register a insitu geometry transform 2d method. More...
 
#define IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D(className, entityType, typeSeq)
 Macro allowing to register a insitu geometry transform 2d method. More...
 
#define IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D_MACRO(r, classInfo, type)
 Macro allowing to register a insitu geometry transform 2d method. More...
 
#define IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D(className, entityType, typeSeq)
 Macro allowing to register a insitu geometry transform 2d method. More...
 

Detailed Description

Source part of macros for geometry transform 2d management.

Author
E. Noirfalise
Date
2015/04/22

Macro Definition Documentation

◆ IPSDK_IMPLEMENT_GEOMETRY_TRANSFORM_2D

#define IPSDK_IMPLEMENT_GEOMETRY_TRANSFORM_2D (   libraryName,
  namespaceSeq,
  className,
  version 
)
Value:
IPSDK_IMPLEMENT_SERIAL_WITH_COPY(libraryName, namespaceSeq, className, version) \
bool className::applyInSitu(BaseGeometryEntity2d& entity) const \
{ \
return entity.visitInSitu(*this); \
} \
GeometryEntity2dPtr className::apply(const BaseGeometryEntity2d& entity) const \
{ \
return entity.visitNonInSitu(*this); \
}
#define IPSDK_IMPLEMENT_SERIAL_WITH_COPY(libraryName, namespaceSeq, className, version)
macro enabling class serialization in library class
Definition: SerializationSrcMacro.h:51
IPSDKGEOMETRY_API bool apply(const BaseGeometryTransform2d &transform, BaseGeometryEntity2d &entity)
function allowing to apply in situ a given transformation on an entity

Macro allowing to implement a geometry transform 2d.

◆ IPSDK_IMPLEMENT_INSITU_GEOMETRY_TRANSFORM_2D

#define IPSDK_IMPLEMENT_INSITU_GEOMETRY_TRANSFORM_2D (   libraryName,
  namespaceSeq,
  className,
  version 
)
Value:
IPSDK_IMPLEMENT_SERIAL_WITH_COPY(libraryName, namespaceSeq, className, version) \
bool className::applyInSitu(BaseGeometryEntity2d& entity) const \
{ \
return entity.visitInSitu(*this); \
} \
GeometryEntity2dPtr className::apply(const BaseGeometryEntity2d& entity) const \
{ \
GeometryEntity2dPtr pResultEntity(static_cast<BaseGeometryEntity2d*>(entity.duplicate())); \
if (applyInSitu(*pResultEntity) == true) \
return pResultEntity; \
else \
return GeometryEntity2dPtr(); \
}
#define IPSDK_IMPLEMENT_SERIAL_WITH_COPY(libraryName, namespaceSeq, className, version)
macro enabling class serialization in library class
Definition: SerializationSrcMacro.h:51
IPSDKGEOMETRY_API bool apply(const BaseGeometryTransform2d &transform, BaseGeometryEntity2d &entity)
function allowing to apply in situ a given transformation on an entity
boost::shared_ptr< BaseGeometryEntity2d > GeometryEntity2dPtr
shared pointer to BaseGeometryEntity2d
Definition: GeometryEntity2dTypes.h:88

Macro allowing to implement an in situ geometry transform 2d.

◆ IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D_MACRO

#define IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D_MACRO (   r,
  classInfo,
  type 
)
Value:
template IPSDKGEOMETRY_API bool \
BOOST_PP_SEQ_ELEM(0, classInfo)::processInSitu<type>( \
BOOST_PP_SEQ_ELEM(1, classInfo)<type>&) const;
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25

Macro allowing to register a insitu geometry transform 2d method.

◆ IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D

#define IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D (   className,
  entityType,
  typeSeq 
)
Value:
(className)(entityType), typeSeq);
#define IPSDK_REGISTER_INSITU_GEOMETRY_TRANSFORM_2D_MACRO(r, classInfo, type)
Macro allowing to register a insitu geometry transform 2d method.
Definition: GeometryTransform2dSrcMacros.h:72

Macro allowing to register a insitu geometry transform 2d method.

◆ IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D_MACRO

#define IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D_MACRO (   r,
  classInfo,
  type 
)
Value:
template IPSDKGEOMETRY_API GeometryEntity2dPtr \
BOOST_PP_SEQ_ELEM(0, classInfo)::process<type>( \
const BOOST_PP_SEQ_ELEM(1, classInfo)<type>&) const;
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25

Macro allowing to register a insitu geometry transform 2d method.

◆ IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D

#define IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D (   className,
  entityType,
  typeSeq 
)
Value:
(className)(entityType), typeSeq);
#define IPSDK_REGISTER_NONINSITU_GEOMETRY_TRANSFORM_2D_MACRO(r, classInfo, type)
Macro allowing to register a insitu geometry transform 2d method.
Definition: GeometryTransform2dSrcMacros.h:88

Macro allowing to register a insitu geometry transform 2d method.