15 #ifndef __IPSDKGEOMETRY_CIRCLE2D_H__ 16 #define __IPSDKGEOMETRY_CIRCLE2D_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 24 #include <IPSDKGeometry/Entity/2d/BaseTypedGeometryEntity2d.h> 25 #include <IPSDKGeometry/Entity/2d/Point/Point2d.h> 55 Circle2d(
const T xCenter,
const T yCenter,
const T radius);
69 inline void setCoords(
const Point2dData<T>& centerPt,
const T radius);
70 inline void setCoords(
const Point2d<T>& centerPt,
const T radius);
71 inline void setCoords(
const T xCenter,
const T yCenter,
const T radius);
73 inline void setCenter(
const Point2d<T>& centerPt);
74 inline void setCenter(
const T xCenter,
const T yCenter);
75 inline void setRadius(
const T radius);
76 inline T getRadius()
const;
77 inline T centerX()
const;
78 inline T centerY()
const;
114 template <
typename T>
118 return g_coordinateSystem2dType;
121 template <
typename T>
125 return g_entity2dType;
128 template <
typename T>
133 _centerPt = centerPt;
137 template <
typename T>
146 template <
typename T>
151 _centerPt.setCoords(xCenter, yCenter);
155 template <
typename T>
159 _centerPt = centerPt;
162 template <
typename T>
169 template <
typename T>
173 _centerPt.setCoords(xCenter, yCenter);
176 template <
typename T>
183 template <
typename T>
190 template <
typename T>
197 template <
typename T>
204 template <
typename T>
211 template <
typename T>
218 template <
typename T>
222 return std::abs(signedDistance(pt));
225 template <
typename T>
232 template <
typename T>
239 template <
typename T>
252 #pragma warning (pop) 254 #endif // __IPSDKGEOMETRY_CIRCLE2D_H__ void setRadius(const T radius)
access to the circle parameters
Definition: Circle2d.h:178
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
T centerY() const
access to the circle parameters
Definition: Circle2d.h:192
Point2dData< T > _centerPt
center of the circle
Definition: Circle2d.h:104
Point class associated to cartesian 2d coordinates.
Definition: GeometryEntity2dTypes.h:28
Circle.
Definition: GeometryEntity2dTypes.h:54
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
eCoordinateSystem2dType
Enumerate describing coordinate system 2d type.
Definition: GeometryEntity2dTypes.h:76
ipReal64 perimeter() const
retrieve circle perimeter
Definition: Circle2d.h:234
IPSDKGEOMETRY_API ipReal64 distance(const Point2d< T > &pt1, const Point2d< T > &pt2)
compute euclidian distance between two points
void setCenter(const Point2dData< T > ¢erPt)
access to the circle parameters
Definition: Circle2d.h:157
ipReal64 signedDistance(const Point2d< T > &pt) const
retrieve signed orthogonal distance between point and circle (positive value stands for exterior poin...
Definition: Circle2d.h:227
IPSDK_FORCEINLINE ipReal64 circleArea(const ipReal64 radius)
compute circle area
Definition: Circle2d.h:45
Definition of import/export macro for library.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
Base class for typed 3d geometry entities.
Definition: BaseTypedGeometryEntity2d.h:27
T centerX() const
access to the circle parameters
Definition: Circle2d.h:185
#define IPSDK_DECLARE_GEOMETRY_ENTITY_2D(libraryName, className)
Macro allowing to declare a geometry entity 2d.
Definition: GeometryEntity2dHdrMacros.h:131
const Point2dData< T > & center() const
access to the circle parameters
Definition: Circle2d.h:199
eCoordinateSystem2dType getCoordinateSystem2dType() const
method allowing to retrieve coordinate system 2d type
Definition: Circle2d.h:116
Utility functions used to handle circles 2d.
Basic operators used for 2d circle management.
const Point2dData< T > & getCoords() const
access to point coordinates
Definition: Point2d.h:139
ipReal64 area() const
retrieve circle area
Definition: Circle2d.h:241
eEntity2dType
Enumerate describing entity 2d type.
Definition: GeometryEntity2dTypes.h:38
2d circle associated to cartesian 2d coordinates
Definition: Circle2d.h:36
T _radius
radius of the circle
Definition: Circle2d.h:107
ipReal64 distance(const Point2d< T > &pt) const
retrieve orthogonal distance between point and circle
Definition: Circle2d.h:213
T getRadius() const
access to the circle parameters
Definition: Circle2d.h:206
void setCoords(const Point2dData< T > ¢erPt, const T radius)
access to the circle parameters
Definition: Circle2d.h:130
Lightweight structure used to store Point2d data.
Definition: GeometryEntity2dTypes.h:26
eEntity2dType getEntity2dType() const
method allowing to retrieve entity 2d type
Definition: Circle2d.h:123
IPSDK_FORCEINLINE PackT abs(const PackT &in)
returns the absolute value of a pack
Definition: abs.h:41
IPSDK_FORCEINLINE ipReal64 circlePerimeter(const ipReal64 radius)
compute circle perimeter
Definition: Circle2d.h:38
Cartesian coordinate system.
Definition: GeometryEntity2dTypes.h:78