15 #ifndef __IPSDKGEOMETRY_TRIANGLE3D_H__ 16 #define __IPSDKGEOMETRY_TRIANGLE3D_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 24 #include <IPSDKGeometry/Entity/3d/BaseTypedGeometryEntity3d.h> 25 #include <IPSDKGeometry/Entity/3d/Point/Point3dData.h> 26 #include <IPSDKGeometry/Entity/3d/Vector/Vector3d.h> 88 inline void getUnitNormal(
ipReal64& nx,
124 template <
typename T>
128 return g_coordinateSystem3dType;
131 template <
typename T>
135 return g_entity3dType;
138 template <
typename T>
149 template <
typename T>
156 template <
typename T>
163 template <
typename T>
170 template <
typename T>
177 template <
typename T>
184 template <
typename T>
191 template <
typename T>
198 template <
typename T>
205 template <
typename T>
212 template <
typename T>
219 _pt1._x, _pt1._y, _pt1._z,
220 _pt2._x, _pt2._y, _pt2._z,
224 template <
typename T>
231 _pt1._x, _pt1._y, _pt1._z,
232 _pt2._x, _pt2._y, _pt2._z,
236 template <
typename T>
241 _pt1._x, _pt1._y, _pt1._z,
242 _pt2._x, _pt2._y, _pt2._z);
245 template <
typename T>
250 _pt1._x, _pt1._y, _pt1._z,
251 _pt2._x, _pt2._y, _pt2._z);
260 #pragma warning (pop) 262 #endif // __IPSDKGEOMETRY_TRIANGLE3D_H__ Point3dData< T > & getPoint1()
access to the triangle parameters
Definition: Triangle3d.h:179
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eCoordinateSystem3dType
Enumerate describing coordinate system 3d type.
Definition: GeometryEntity3dTypes.h:74
IPSDK_FORCEINLINE bool triangleUnitNormal(const ipReal64 x0, const ipReal64 y0, const ipReal64 z0, const ipReal64 x1, const ipReal64 y1, const ipReal64 z1, const ipReal64 x2, const ipReal64 y2, const ipReal64 z2, ipReal64 &nx, ipReal64 &ny, ipReal64 &nz)
computation of triangle unit normal from its vertives coordinates
Definition: Triangle3d.h:68
eCoordinateSystem3dType getCoordinateSystem3dType() const
method allowing to retrieve coordinate system 3d type
Definition: Triangle3d.h:126
IPSDK_FORCEINLINE ipReal64 triangleArea(const ipReal64 x0, const ipReal64 y0, const ipReal64 z0, const ipReal64 x1, const ipReal64 y1, const ipReal64 z1, const ipReal64 x2, const ipReal64 y2, const ipReal64 z2)
computation of triangle area from its vertives coordinates
Definition: Triangle3d.h:40
ipReal64 perimeter() const
retrieve triangle perimeter
Definition: Triangle3d.h:238
IPSDK_FORCEINLINE void triangleNormal(const ipReal64 x0, const ipReal64 y0, const ipReal64 z0, const ipReal64 x1, const ipReal64 y1, const ipReal64 z1, const ipReal64 x2, const ipReal64 y2, const ipReal64 z2, ipReal64 &nx, ipReal64 &ny, ipReal64 &nz)
computation of triangle normal from its vertives coordinates
Definition: Triangle3d.h:54
#define IPSDK_DECLARE_GEOMETRY_ENTITY_3D(libraryName, className)
Macro allowing to declare a geometry entity 3d.
Definition: GeometryEntity3dHdrMacros.h:131
Point3dData< T > _pt2
points associated to triangle
Definition: Triangle3d.h:117
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Utility functions used to handle triangle 3d.
void setCoords(const Point3dData< T > &pt0, const Point3dData< T > &pt1, const Point3dData< T > &pt2)
access to the triangle parameters
Definition: Triangle3d.h:140
Vector class associated to spherical 3d coordinates.
Definition: Vector3d.h:32
Point3dData< T > _pt0
points associated to triangle
Definition: Triangle3d.h:115
Point3dData< T > & getPoint0()
access to the triangle parameters
Definition: Triangle3d.h:158
void setPoint1(const Point3dData< T > &pt1)
access to the triangle parameters
Definition: Triangle3d.h:172
Definition of import/export macro for library.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
void setPoint0(const Point3dData< T > &pt0)
access to the triangle parameters
Definition: Triangle3d.h:151
IPSDK_FORCEINLINE ipReal64 trianglePerimeter(const ipReal64 x0, const ipReal64 y0, const ipReal64 z0, const ipReal64 x1, const ipReal64 y1, const ipReal64 z1, const ipReal64 x2, const ipReal64 y2, const ipReal64 z2)
computation of triangle perimeter from its vertives coordinates
Definition: Triangle3d.h:29
3d triangle associated to cartesian 3d coordinates
Definition: Triangle3d.h:37
void setPoint2(const Point3dData< T > &pt2)
access to the triangle parameters
Definition: Triangle3d.h:193
ipReal64 area() const
retrieve triangle area
Definition: Triangle3d.h:247
eEntity3dType getEntity3dType() const
method allowing to retrieve entity 3d type
Definition: Triangle3d.h:133
eEntity3dType
Enumerate describing entity 3d type.
Definition: GeometryEntity3dTypes.h:38
Point3dData< T > _pt1
points associated to triangle
Definition: Triangle3d.h:116
Vector3d getUnitNormal() const
retrieve triangle unit normal (computes unit cross product of pt1-pt0 and pt2-pt0) ...
Base class for typed 3d geometry entities.
Definition: BaseTypedGeometryEntity3d.h:27
Cartesian coordinate system.
Definition: GeometryEntity3dTypes.h:76
Vector3d getNormal() const
retrieve triangle normal (computes cross product of pt1-pt0 and pt2-pt0)
Lightweight structure used to store Point3d data.
Definition: GeometryEntity3dTypes.h:27
Point3dData< T > & getPoint2()
access to the triangle parameters
Definition: Triangle3d.h:200
Triangle.
Definition: GeometryEntity3dTypes.h:66
Basic operators used for triangle 3d management.